svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.impl / src / main / java / org / gvsig / export / swing / impl / panels / SelectAttributesPanel.java @ 44419
History | View | Annotate | Download (18.1 KB)
1 | 44270 | omartinez | package org.gvsig.export.swing.impl.panels; |
---|---|---|---|
2 | |||
3 | import java.awt.Component; |
||
4 | import java.awt.Font; |
||
5 | 44408 | jjdelcerro | import java.awt.event.ActionEvent; |
6 | import java.awt.event.ActionListener; |
||
7 | import java.awt.event.KeyAdapter; |
||
8 | import java.awt.event.KeyEvent; |
||
9 | import java.net.URL; |
||
10 | 44270 | omartinez | import java.util.ArrayList; |
11 | import java.util.Comparator; |
||
12 | 44408 | jjdelcerro | import java.util.Iterator; |
13 | 44270 | omartinez | import java.util.List; |
14 | 44408 | jjdelcerro | import java.util.Objects; |
15 | 44270 | omartinez | import javax.swing.DefaultCellEditor; |
16 | import javax.swing.DefaultComboBoxModel; |
||
17 | 44408 | jjdelcerro | import javax.swing.DefaultListCellRenderer; |
18 | import javax.swing.ImageIcon; |
||
19 | import javax.swing.JButton; |
||
20 | import javax.swing.JCheckBox; |
||
21 | 44270 | omartinez | import javax.swing.JComboBox; |
22 | import javax.swing.JComponent; |
||
23 | import javax.swing.JLabel; |
||
24 | import javax.swing.JList; |
||
25 | import javax.swing.JOptionPane; |
||
26 | import javax.swing.JTable; |
||
27 | 44408 | jjdelcerro | import javax.swing.table.AbstractTableModel; |
28 | import javax.swing.table.TableCellRenderer; |
||
29 | import javax.swing.table.TableColumnModel; |
||
30 | 44270 | omartinez | import javax.swing.table.TableModel; |
31 | 44408 | jjdelcerro | import javax.swing.text.JTextComponent; |
32 | import org.apache.commons.io.FilenameUtils; |
||
33 | 44395 | omartinez | import org.apache.commons.lang.StringUtils; |
34 | 44270 | omartinez | import org.gvsig.export.ExportAttributes; |
35 | 44408 | jjdelcerro | import org.gvsig.export.ExportAttributes.ExportAttribute; |
36 | 44270 | omartinez | import org.gvsig.export.ExportParameters; |
37 | import org.gvsig.export.swing.JExportProcessPanel; |
||
38 | import org.gvsig.export.swing.spi.ExportPanel; |
||
39 | import org.gvsig.export.swing.spi.ExportPanelValidationException; |
||
40 | import org.gvsig.export.swing.spi.ExportPanelsManager; |
||
41 | import org.gvsig.fmap.dal.DataTypes; |
||
42 | 44408 | jjdelcerro | import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
43 | import org.gvsig.fmap.dal.feature.FeatureType; |
||
44 | 44270 | omartinez | import org.gvsig.tools.ToolsLocator; |
45 | 44408 | jjdelcerro | import org.gvsig.tools.dataTypes.DataType; |
46 | 44270 | omartinez | import org.gvsig.tools.dataTypes.DataTypesManager; |
47 | import org.gvsig.tools.i18n.I18nManager; |
||
48 | 44408 | jjdelcerro | import org.gvsig.tools.swing.api.FilteredTableModel; |
49 | 44270 | omartinez | import org.gvsig.tools.swing.api.ListElement; |
50 | 44395 | omartinez | import org.gvsig.tools.swing.api.ToolsSwingLocator; |
51 | import org.gvsig.tools.swing.api.ToolsSwingManager; |
||
52 | 44408 | jjdelcerro | import org.gvsig.tools.swing.icontheme.IconTheme; |
53 | 44270 | omartinez | import org.slf4j.Logger; |
54 | import org.slf4j.LoggerFactory; |
||
55 | |||
56 | /**
|
||
57 | *
|
||
58 | * @author jjdelcerro
|
||
59 | */
|
||
60 | 44408 | jjdelcerro | @SuppressWarnings("UseSpecificCatch") |
61 | 44270 | omartinez | public class SelectAttributesPanel |
62 | extends SelectAttributesPanelView
|
||
63 | implements ExportPanel {
|
||
64 | |||
65 | 44408 | jjdelcerro | private static final Logger LOGGER = LoggerFactory.getLogger(SelectAttributesPanel.class); |
66 | 44270 | omartinez | |
67 | 44408 | jjdelcerro | private static final int COLUMN_FIELD_EXPORT = 0; |
68 | private static final int COLUMN_FIELD_TYPE = 1; |
||
69 | private static final int COLUMN_FIELD_SIZE = 2; |
||
70 | private static final int COLUMN_FIELD_NAME = 3; |
||
71 | private static final int COLUMN_FIELD_NEW_NAME = 4; |
||
72 | 44270 | omartinez | |
73 | 44408 | jjdelcerro | private static final int COLUMN_FIELD_COUNT = 5; |
74 | |||
75 | private static class AttributesTableModel |
||
76 | extends AbstractTableModel |
||
77 | implements TableModel { |
||
78 | |||
79 | final private ExportAttributes attributes; |
||
80 | private final String[] columnNames = new String[COLUMN_FIELD_COUNT]; |
||
81 | private final Class[] columnClases = new Class[COLUMN_FIELD_COUNT]; |
||
82 | private final DataTypesManager dataManager; |
||
83 | |||
84 | public AttributesTableModel(ExportAttributes attributes) {
|
||
85 | this.attributes = attributes;
|
||
86 | this.dataManager = ToolsLocator.getDataTypesManager();
|
||
87 | I18nManager i18nManager = ToolsLocator.getI18nManager(); |
||
88 | columnNames[COLUMN_FIELD_NAME] = i18nManager.getTranslation("_name");
|
||
89 | columnNames[COLUMN_FIELD_NEW_NAME] = i18nManager.getTranslation("_new_name");
|
||
90 | columnNames[COLUMN_FIELD_TYPE] = i18nManager.getTranslation("_type");
|
||
91 | columnNames[COLUMN_FIELD_SIZE] = i18nManager.getTranslation("_size");
|
||
92 | columnNames[COLUMN_FIELD_EXPORT] = "";
|
||
93 | |||
94 | columnClases[COLUMN_FIELD_NAME] = String.class;
|
||
95 | columnClases[COLUMN_FIELD_NEW_NAME] = String.class;
|
||
96 | columnClases[COLUMN_FIELD_TYPE] = String.class;
|
||
97 | columnClases[COLUMN_FIELD_SIZE] = Integer.class;
|
||
98 | columnClases[COLUMN_FIELD_EXPORT] = Boolean.class;
|
||
99 | } |
||
100 | |||
101 | @Override
|
||
102 | public int getRowCount() { |
||
103 | return this.attributes.size(); |
||
104 | } |
||
105 | |||
106 | @Override
|
||
107 | public int getColumnCount() { |
||
108 | return COLUMN_FIELD_COUNT;
|
||
109 | } |
||
110 | |||
111 | @Override
|
||
112 | public String getColumnName(int columnIndex) { |
||
113 | return this.columnNames[columnIndex]; |
||
114 | } |
||
115 | |||
116 | @Override
|
||
117 | public Class<?> getColumnClass(int columnIndex) { |
||
118 | return this.columnClases[columnIndex]; |
||
119 | } |
||
120 | |||
121 | @Override
|
||
122 | public boolean isCellEditable(int rowIndex, int columnIndex) { |
||
123 | switch (columnIndex) {
|
||
124 | case COLUMN_FIELD_NAME:
|
||
125 | return false; |
||
126 | default:
|
||
127 | return true; |
||
128 | } |
||
129 | } |
||
130 | |||
131 | @Override
|
||
132 | public Object getValueAt(int rowIndex, int columnIndex) { |
||
133 | ExportAttribute attr = this.attributes.get(rowIndex);
|
||
134 | switch (columnIndex) {
|
||
135 | case COLUMN_FIELD_NAME:
|
||
136 | return attr.getName();
|
||
137 | case COLUMN_FIELD_NEW_NAME:
|
||
138 | return attr.getNewName();
|
||
139 | case COLUMN_FIELD_TYPE:
|
||
140 | return dataManager.getTypeName(attr.getNewDataType());
|
||
141 | case COLUMN_FIELD_SIZE:
|
||
142 | return attr.getSize();
|
||
143 | case COLUMN_FIELD_EXPORT:
|
||
144 | return attr.isExported();
|
||
145 | default:
|
||
146 | return null; |
||
147 | } |
||
148 | } |
||
149 | |||
150 | @Override
|
||
151 | public void setValueAt(Object aValue, int rowIndex, int columnIndex) { |
||
152 | ExportAttribute attr = this.attributes.get(rowIndex);
|
||
153 | switch (columnIndex) {
|
||
154 | case COLUMN_FIELD_NAME:
|
||
155 | break;
|
||
156 | case COLUMN_FIELD_NEW_NAME:
|
||
157 | attr.setNewName(Objects.toString(aValue, attr.getName())); |
||
158 | break;
|
||
159 | case COLUMN_FIELD_TYPE:
|
||
160 | attr.setNewType(dataManager.getType(Objects.toString(aValue))); |
||
161 | break;
|
||
162 | case COLUMN_FIELD_SIZE:
|
||
163 | try {
|
||
164 | attr.setSize(Integer.parseInt(Objects.toString(aValue)));
|
||
165 | } catch (Exception ex) { |
||
166 | LOGGER.warn("Not been able to set size value of attribute " + attr.getName() + " (" + Objects.toString(aValue) + ").", ex); |
||
167 | } |
||
168 | break;
|
||
169 | case COLUMN_FIELD_EXPORT:
|
||
170 | try {
|
||
171 | attr.setExported((boolean) dataManager.get(DataTypes.BOOLEAN).coerce(aValue));
|
||
172 | } catch (Exception ex) { |
||
173 | LOGGER.warn("Not been able to set exported value of attribute " + attr.getName() + " (" + Objects.toString(aValue) + ").", ex); |
||
174 | } |
||
175 | break;
|
||
176 | default:
|
||
177 | break;
|
||
178 | } |
||
179 | this.fireTableCellUpdated(rowIndex, columnIndex);
|
||
180 | } |
||
181 | } |
||
182 | |||
183 | private static class TableFilterController { |
||
184 | |||
185 | private final JTable jtable; |
||
186 | private final JTextComponent jtext; |
||
187 | private final JButton btnFilter; |
||
188 | private final int filterColumn; |
||
189 | |||
190 | private FilteredTableModel tableModel;
|
||
191 | |||
192 | public TableFilterController(JTable jtable, JTextComponent jtext, JButton btnFilter, int filterColumn) { |
||
193 | this.jtable = jtable;
|
||
194 | this.filterColumn = filterColumn;
|
||
195 | this.btnFilter = btnFilter;
|
||
196 | this.jtext = jtext;
|
||
197 | this.tableModel = null; |
||
198 | ToolsSwingLocator.getToolsSwingManager().setDefaultPopupMenu(jtext); |
||
199 | ToolsSwingLocator.getToolsSwingManager().addClearButton(jtext, new ActionListener() { |
||
200 | @Override
|
||
201 | public void actionPerformed(ActionEvent e) { |
||
202 | if (tableModel != null) { |
||
203 | tableModel.setFilter(null);
|
||
204 | jtext.setText("");
|
||
205 | } |
||
206 | } |
||
207 | }); |
||
208 | this.jtext.addKeyListener(new KeyAdapter() { |
||
209 | @Override
|
||
210 | public void keyPressed(KeyEvent e) { |
||
211 | if (e.getKeyChar() == '\n') { |
||
212 | if (tableModel != null) { |
||
213 | tableModel.setFilter(jtext.getText()); |
||
214 | } |
||
215 | } |
||
216 | } |
||
217 | }); |
||
218 | this.btnFilter.addActionListener(new ActionListener() { |
||
219 | @Override
|
||
220 | public void actionPerformed(ActionEvent e) { |
||
221 | if (tableModel != null) { |
||
222 | tableModel.setFilter(jtext.getText()); |
||
223 | } |
||
224 | } |
||
225 | }); |
||
226 | } |
||
227 | |||
228 | public void setModel(TableModel tableModel) { |
||
229 | this.tableModel = ToolsSwingLocator.getToolsSwingManager().createFilteredTableModel(
|
||
230 | tableModel, |
||
231 | this.filterColumn
|
||
232 | ); |
||
233 | this.jtable.setModel(this.tableModel); |
||
234 | } |
||
235 | } |
||
236 | |||
237 | private class DataTypeCellRenderer |
||
238 | extends JLabel |
||
239 | implements TableCellRenderer { |
||
240 | |||
241 | public DataTypeCellRenderer() {
|
||
242 | } |
||
243 | |||
244 | @Override
|
||
245 | public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { |
||
246 | if (value != null) { |
||
247 | String name = (String) table.getModel().getValueAt(row, COLUMN_FIELD_NAME); |
||
248 | this.setText(value.toString());
|
||
249 | Font f = this.getFont(); |
||
250 | if (isOriginalType(row, value.toString())) {
|
||
251 | this.setFont(f.deriveFont(f.getStyle() & ~Font.BOLD)); |
||
252 | } else {
|
||
253 | this.setFont(f.deriveFont(f.getStyle() | Font.BOLD)); |
||
254 | } |
||
255 | } else {
|
||
256 | this.setText(""); |
||
257 | } |
||
258 | return this; |
||
259 | } |
||
260 | } |
||
261 | |||
262 | private class DataTypeCellEditor extends DefaultCellEditor { |
||
263 | |||
264 | private int currentRow = -1; |
||
265 | |||
266 | private class DataTypeListCellRenderer extends DefaultListCellRenderer { |
||
267 | |||
268 | @Override
|
||
269 | public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { |
||
270 | JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); |
||
271 | if (value != null) { |
||
272 | label.setText(value.toString()); |
||
273 | Font f = label.getFont();
|
||
274 | if (isOriginalType(currentRow, value.toString())) {
|
||
275 | label.setFont(f.deriveFont(f.getStyle() | Font.BOLD));
|
||
276 | } else {
|
||
277 | label.setFont(f.deriveFont(f.getStyle() & ~Font.BOLD));
|
||
278 | } |
||
279 | } |
||
280 | return label;
|
||
281 | } |
||
282 | } |
||
283 | |||
284 | public DataTypeCellEditor() {
|
||
285 | super(new JComboBox()); |
||
286 | JComboBox combo = (JComboBox) this.getComponent(); |
||
287 | combo.setRenderer(new DataTypeListCellRenderer());
|
||
288 | combo.setModel(this.getDataTypeComboModel());
|
||
289 | } |
||
290 | |||
291 | @Override
|
||
292 | public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { |
||
293 | this.currentRow = row;
|
||
294 | JComboBox combo = (JComboBox) super.getTableCellEditorComponent(table, value, isSelected, row, column); |
||
295 | ListElement.setSelected(combo, value); |
||
296 | return combo;
|
||
297 | } |
||
298 | |||
299 | private DefaultComboBoxModel getDataTypeComboModel() { |
||
300 | DataTypesManager dataManager = ToolsLocator.getDataTypesManager(); |
||
301 | List<ListElement<Integer>> fieldTypes = new ArrayList<>(); |
||
302 | Iterator<DataType> it = dataManager.iterator();
|
||
303 | while (it.hasNext()) {
|
||
304 | DataType dataType = it.next(); |
||
305 | fieldTypes.add( new ListElement<>(dataType.getName(), dataType.getType()) );
|
||
306 | } |
||
307 | fieldTypes.sort(new Comparator<ListElement<Integer>>() { |
||
308 | @Override
|
||
309 | public int compare(ListElement<Integer> o1, ListElement<Integer> o2) { |
||
310 | return o1.toString().compareTo(o2.toString());
|
||
311 | } |
||
312 | }); |
||
313 | |||
314 | DefaultComboBoxModel<ListElement<Integer>> model = new DefaultComboBoxModel<>(); |
||
315 | for (ListElement<Integer> element : fieldTypes) { |
||
316 | model.addElement(element); |
||
317 | } |
||
318 | return model;
|
||
319 | } |
||
320 | } |
||
321 | |||
322 | 44270 | omartinez | private final ExportParameters parameters; |
323 | private final JExportProcessPanel processPanel; |
||
324 | |||
325 | 44408 | jjdelcerro | // private Map<String, String> fieldAttributeTypes;
|
326 | // private FilteredTableModel filteredTableModel;
|
||
327 | private TableModel tableModel; |
||
328 | private TableFilterController tableFilterController;
|
||
329 | private FeatureType targetFeatureType ;
|
||
330 | |||
331 | 44270 | omartinez | public SelectAttributesPanel(
|
332 | JExportProcessPanel processPanel, |
||
333 | ExportParameters parameters |
||
334 | ) { |
||
335 | this.processPanel = processPanel;
|
||
336 | this.parameters = parameters;
|
||
337 | 44395 | omartinez | this.parameters.getExportAttributes().setActive(true); |
338 | 44270 | omartinez | this.initComponents();
|
339 | } |
||
340 | |||
341 | @Override
|
||
342 | public String getIdPanel() { |
||
343 | return ExportPanelsManager.PANEL_ATTRIBUTES_SELECTION;
|
||
344 | } |
||
345 | |||
346 | @Override
|
||
347 | public String getTitlePanel() { |
||
348 | I18nManager i18n = ToolsLocator.getI18nManager(); |
||
349 | return i18n.getTranslation("_Attribute_Selection"); |
||
350 | } |
||
351 | |||
352 | @Override
|
||
353 | public boolean validatePanel() throws ExportPanelValidationException { |
||
354 | 44408 | jjdelcerro | ExportAttributes expAttrs = this.parameters.getExportAttributes();
|
355 | 44300 | omartinez | if (!expAttrs.isAttributeNamesValid()) {
|
356 | I18nManager i18nManager = ToolsLocator.getI18nManager(); |
||
357 | int as = JOptionPane.showConfirmDialog( |
||
358 | this,
|
||
359 | i18nManager.getTranslation("_Not_valid_attribute_names_Do_you_want_a_suggest_names?"),
|
||
360 | i18nManager.getTranslation("_Not_valid_attriute_names"),
|
||
361 | JOptionPane.YES_NO_OPTION
|
||
362 | ); |
||
363 | if (as == JOptionPane.YES_OPTION) { |
||
364 | expAttrs.fixAttributeNames(); |
||
365 | this.fillTableWithAttributes();
|
||
366 | } else if (as == JOptionPane.NO_OPTION) { |
||
367 | |||
368 | } |
||
369 | return false; |
||
370 | } |
||
371 | return true; |
||
372 | 44270 | omartinez | } |
373 | |||
374 | @Override
|
||
375 | 44300 | omartinez | public void enterPanel() { |
376 | this.fillTableWithAttributes();
|
||
377 | } |
||
378 | |||
379 | @Override
|
||
380 | public void previousPanel() { |
||
381 | this.fillTableWithAttributes();
|
||
382 | } |
||
383 | |||
384 | @Override
|
||
385 | public void nextPanel() { |
||
386 | //get params are in the validate method
|
||
387 | } |
||
388 | |||
389 | @Override
|
||
390 | 44270 | omartinez | public JComponent asJComponent() { |
391 | return this; |
||
392 | } |
||
393 | |||
394 | 44408 | jjdelcerro | private boolean isOriginalType(int row, String type) { |
395 | try {
|
||
396 | if( this.targetFeatureType==null ) { |
||
397 | return true; |
||
398 | 44270 | omartinez | } |
399 | 44408 | jjdelcerro | TableModel model = this.tblAttributes.getModel(); |
400 | String name = (String) model.getValueAt(row, COLUMN_FIELD_NAME); |
||
401 | FeatureAttributeDescriptor attr = this.targetFeatureType.getAttributeDescriptor(name);
|
||
402 | if (attr == null) { |
||
403 | return true; |
||
404 | } |
||
405 | return StringUtils.equalsIgnoreCase(type, attr.getDataTypeName());
|
||
406 | } catch (Exception ex) { |
||
407 | return true; |
||
408 | 44270 | omartinez | } |
409 | |||
410 | 44408 | jjdelcerro | } |
411 | 44270 | omartinez | |
412 | 44408 | jjdelcerro | private ExportAttributes getExportAttributes() {
|
413 | ExportAttributes attributes = this.parameters.getExportAttributes();
|
||
414 | return attributes;
|
||
415 | } |
||
416 | 44270 | omartinez | |
417 | 44408 | jjdelcerro | private void fillTableWithAttributes() { |
418 | ExportAttributes attributes = this.getExportAttributes();
|
||
419 | if( this.targetFeatureType == null ) { |
||
420 | this.targetFeatureType = this.getExportAttributes().getTargetFeatureType(); |
||
421 | 44270 | omartinez | } |
422 | |||
423 | 44408 | jjdelcerro | |
424 | this.tableModel = new AttributesTableModel(attributes); |
||
425 | this.tblAttributes.setModel(this.tableModel); |
||
426 | this.tableFilterController.setModel(this.tableModel); |
||
427 | 44270 | omartinez | |
428 | 44408 | jjdelcerro | TableColumnModel columnModel = this.tblAttributes.getColumnModel(); |
429 | columnModel.getColumn(COLUMN_FIELD_TYPE).setCellEditor(new DataTypeCellEditor());
|
||
430 | columnModel.getColumn(COLUMN_FIELD_TYPE).setCellRenderer(new DataTypeCellRenderer());
|
||
431 | |||
432 | columnModel.getColumn(COLUMN_FIELD_EXPORT).setPreferredWidth( new JCheckBox().getPreferredSize().width*2); |
||
433 | columnModel.getColumn(COLUMN_FIELD_TYPE).setPreferredWidth( new JLabel("XXIntegerXX").getPreferredSize().width); |
||
434 | columnModel.getColumn(COLUMN_FIELD_SIZE).setPreferredWidth( new JLabel("00000").getPreferredSize().width); |
||
435 | 44270 | omartinez | |
436 | 44408 | jjdelcerro | } |
437 | 44270 | omartinez | |
438 | 44408 | jjdelcerro | private void initComponents() { |
439 | |||
440 | this.tblAttributes.setAutoCreateRowSorter(true); |
||
441 | this.tblAttributes.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); |
||
442 | |||
443 | this.tableFilterController = new TableFilterController( |
||
444 | this.tblAttributes,
|
||
445 | this.txtFilter,
|
||
446 | this.btnFilter,
|
||
447 | COLUMN_FIELD_NAME |
||
448 | ); |
||
449 | this.btnCheckAll.addActionListener(new ActionListener() { |
||
450 | 44281 | jjdelcerro | @Override
|
451 | 44408 | jjdelcerro | public void actionPerformed(ActionEvent e) { |
452 | doCheckAll(); |
||
453 | 44270 | omartinez | } |
454 | 44408 | jjdelcerro | }); |
455 | this.btnUncheckAll.addActionListener(new ActionListener() { |
||
456 | 44270 | omartinez | @Override
|
457 | 44408 | jjdelcerro | public void actionPerformed(ActionEvent e) { |
458 | doUncheckAll(); |
||
459 | 44270 | omartinez | } |
460 | 44408 | jjdelcerro | }); |
461 | 44270 | omartinez | |
462 | this.translate();
|
||
463 | } |
||
464 | |||
465 | 44408 | jjdelcerro | private void doUncheckAll() { |
466 | TableModel model = this.tblAttributes.getModel(); |
||
467 | for (int row = 0; row < model.getRowCount(); row++) { |
||
468 | model.setValueAt(false, row, COLUMN_FIELD_EXPORT);
|
||
469 | } |
||
470 | } |
||
471 | 44270 | omartinez | |
472 | 44408 | jjdelcerro | private void doCheckAll() { |
473 | TableModel model = this.tblAttributes.getModel(); |
||
474 | for (int row = 0; row < model.getRowCount(); row++) { |
||
475 | model.setValueAt(true, row, COLUMN_FIELD_EXPORT);
|
||
476 | } |
||
477 | 44270 | omartinez | } |
478 | |||
479 | 44300 | omartinez | private void translate() { |
480 | 44395 | omartinez | ToolsSwingManager manager = ToolsSwingLocator.getToolsSwingManager(); |
481 | manager.translate(this.lblHeader);
|
||
482 | 44270 | omartinez | } |
483 | 44300 | omartinez | |
484 | 44408 | jjdelcerro | @Override
|
485 | public ImageIcon loadImage(String imageName) { |
||
486 | String name = FilenameUtils.getBaseName(imageName);
|
||
487 | IconTheme theme = ToolsSwingLocator.getIconThemeManager().getDefault(); |
||
488 | if (theme.exists(name)) {
|
||
489 | return theme.get(name);
|
||
490 | } |
||
491 | URL url = this.getClass().getResource(name + ".png"); |
||
492 | if (url == null) { |
||
493 | return null; |
||
494 | } |
||
495 | return new ImageIcon(url); |
||
496 | } |
||
497 | |||
498 | 44270 | omartinez | } |