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

View differences:

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