Revision 727 org.gvsig.topology/trunk/org.gvsig.topology/org.gvsig.topology.swing/org.gvsig.topology.swing.impl/src/main/java/org/gvsig/topology/swing/impl/CreateRuleDialog.java
CreateRuleDialog.java | ||
---|---|---|
5 | 5 |
*/ |
6 | 6 |
package org.gvsig.topology.swing.impl; |
7 | 7 |
|
8 |
import java.awt.Component; |
|
8 | 9 |
import java.awt.Dimension; |
9 | 10 |
import java.awt.event.ItemEvent; |
10 | 11 |
import java.awt.event.ItemListener; |
12 |
import java.util.Objects; |
|
11 | 13 |
import javax.swing.DefaultComboBoxModel; |
14 |
import javax.swing.DefaultListCellRenderer; |
|
15 |
import javax.swing.ImageIcon; |
|
16 |
import javax.swing.JLabel; |
|
17 |
import javax.swing.JList; |
|
18 |
import javax.swing.ListCellRenderer; |
|
12 | 19 |
import javax.swing.event.DocumentEvent; |
13 | 20 |
import javax.swing.event.DocumentListener; |
21 |
import org.gvsig.fmap.dal.DataStore; |
|
22 |
import org.gvsig.fmap.dal.exception.DataException; |
|
23 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
24 |
import org.gvsig.fmap.geom.Geometry; |
|
25 |
import org.gvsig.fmap.geom.GeometryUtils; |
|
14 | 26 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
15 | 27 |
import org.gvsig.tools.swing.api.ToolsSwingManager; |
16 | 28 |
import org.gvsig.tools.swing.api.windowmanager.Dialog; |
17 | 29 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2; |
30 |
import org.gvsig.tools.swing.icontheme.IconTheme; |
|
18 | 31 |
import org.gvsig.topology.lib.api.TopologyDataSet; |
19 | 32 |
import org.gvsig.topology.lib.api.TopologyLocator; |
20 | 33 |
import org.gvsig.topology.lib.api.TopologyManager; |
... | ... | |
29 | 42 |
@SuppressWarnings("UseSpecificCatch") |
30 | 43 |
public class CreateRuleDialog extends CreateRuleDialogView { |
31 | 44 |
|
45 |
private class DataSetListCellRenderer extends DefaultListCellRenderer { |
|
46 |
|
|
47 |
private ImageIcon pointIcon; |
|
48 |
private ImageIcon lineIcon; |
|
49 |
private ImageIcon polygonIcon; |
|
50 |
|
|
51 |
public DataSetListCellRenderer() { |
|
52 |
IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent(); |
|
53 |
if( iconTheme.exists("layer-type-point") ) { |
|
54 |
this.pointIcon = iconTheme.get("layer-type-point"); |
|
55 |
} |
|
56 |
if( iconTheme.exists("layer-type-line") ) { |
|
57 |
this.lineIcon = iconTheme.get("layer-type-line"); |
|
58 |
} |
|
59 |
if( iconTheme.exists("layer-type-polygon") ) { |
|
60 |
this.polygonIcon = iconTheme.get("layer-type-polygon"); |
|
61 |
} |
|
62 |
} |
|
63 |
|
|
64 |
@Override |
|
65 |
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { |
|
66 |
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); |
|
67 |
this.setText(Objects.toString(value, "")); |
|
68 |
this.setIcon(null); |
|
69 |
if( value instanceof TopologyDataSet ) { |
|
70 |
DataStore store = ((TopologyDataSet) value).getStore(); |
|
71 |
if( store instanceof FeatureStore ) { |
|
72 |
try { |
|
73 |
int geomtype = ((FeatureStore) store).getDefaultFeatureType().getDefaultGeometryAttribute().getGeomType().getType(); |
|
74 |
if( GeometryUtils.isSubtype(Geometry.TYPES.POINT, geomtype) ) { |
|
75 |
this.setIcon(this.pointIcon); |
|
76 |
} else if( GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, geomtype) ) { |
|
77 |
this.setIcon(this.polygonIcon); |
|
78 |
} else if( GeometryUtils.isSubtype(Geometry.TYPES.CURVE, geomtype) ) { |
|
79 |
this.setIcon(this.lineIcon); |
|
80 |
} |
|
81 |
} catch (DataException ex) { |
|
82 |
} |
|
83 |
} |
|
84 |
} |
|
85 |
return label; |
|
86 |
} |
|
87 |
|
|
88 |
} |
|
32 | 89 |
private final TopologyPlan plan; |
33 | 90 |
private Dialog dialog; |
34 | 91 |
|
... | ... | |
56 | 113 |
performDataSet1Selected(); |
57 | 114 |
} |
58 | 115 |
}); |
116 |
// this.cboDataSet1.setRenderer(new DataSetListCellRenderer()); |
|
117 |
// this.cboDataSet2.setRenderer(new DataSetListCellRenderer()); |
|
59 | 118 |
this.cboRule.addItemListener(new ItemListener() { |
60 | 119 |
@Override |
61 | 120 |
public void itemStateChanged(ItemEvent e) { |
Also available in: Unified diff