Revision 3381 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.swing/org.gvsig.vcsgis.swing.impl/src/main/java/org/gvsig/vcsgis/swing/impl/VCSGisEntitySelectorControllerJTree.java

View differences:

VCSGisEntitySelectorControllerJTree.java
46 46
import javax.swing.event.TreeSelectionEvent;
47 47
import javax.swing.event.TreeSelectionListener;
48 48
import javax.swing.tree.DefaultMutableTreeNode;
49
import javax.swing.tree.DefaultTreeCellEditor;
49 50
import javax.swing.tree.DefaultTreeCellRenderer;
50 51
import javax.swing.tree.DefaultTreeModel;
51 52
import javax.swing.tree.TreeCellEditor;
52
import javax.swing.tree.TreeCellRenderer;
53 53
import javax.swing.tree.TreePath;
54 54
import static javax.swing.tree.TreeSelectionModel.SINGLE_TREE_SELECTION;
55 55
import org.apache.commons.lang3.StringUtils;
......
99 99

  
100 100
    private class EntityCellEditor extends AbstractCellEditor implements TreeCellEditor {
101 101

  
102

  
103
//        private final JCheckBox check;
104
//        private final JLabel icon;
105
//        private final JPanel panel;
106
//        private final JLabel label;
107

  
108
//        public EntityCellEditor() {
109
//            this.check = new JCheckBox();
110
//            this.icon = new JLabel();
111
//            this.label = new JLabel();
112
//            this.panel = new JPanel();
113
//            this.panel.setOpaque(false);
114
//            this.icon.setOpaque(false);
115
//            this.check.setOpaque(false);
116
//            this.panel.setLayout(new FlowLayout(FlowLayout.RIGHT, 2,1));
117
//            this.panel.add(this.icon);
118
//            this.panel.add(this.check);
119
//            this.panel.add(this.label);
120
//        }
121

  
102 122
        @Override
103 123
        public Object getCellEditorValue() {
104 124
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
......
109 129
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
110 130
        }
111 131
        
132

  
112 133
    }
113 134
    
114 135
    private class EntityCellRenderer extends DefaultTreeCellRenderer {
......
135 156
        @Override
136 157
        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
137 158
            JLabel c = (JLabel) super.getTreeCellRendererComponent(tree, value, leaf, expanded, leaf, row, hasFocus);
159
            I18nManager i18n = ToolsLocator.getI18nManager();
138 160
            this.icon.setIcon(c.getIcon());
139 161
            this.label.setText(c.getText());
140 162
            this.label.setForeground(c.getForeground());
......
145 167
                this.check.setBackground(c.getBackground());
146 168
                this.check.setEnabled(false);
147 169
                this.check.setSelected(false);
148
                if( value instanceof LabeledValue ) {
149
                    VCSGisEntity entity = ((LabeledValue<VCSGisEntity>) value).getValue();
150
                    if( entity != null ) {
151
                        this.check.setEnabled(true);
152
                        this.check.setSelected(checkedEntityCodes.contains(entity.getEntityCode()));
170
                if(value instanceof DefaultMutableTreeNode){
171
                    Object userObject = ((DefaultMutableTreeNode) value).getUserObject();
172
                    if( userObject instanceof LabeledValue ) {
173
                        VCSGisEntity entity = ((LabeledValue<VCSGisEntity>) userObject).getValue();
174
                        if( entity != null ) {
175
                            this.check.setEnabled(true);
176
                            this.check.setSelected(checkedEntityCodes.contains(entity.getEntityCode()));
177
                        }
178
                    } else if( userObject instanceof String ) {
179
                        if(StringUtils.isBlank((String)userObject)){
180
                            this.label.setText(i18n.getTranslation("_Others"));
181
                        }
182
                        this.check.setVisible(false);
153 183
                    }
154
                } else if( value instanceof String ) {
155
                    this.check.setVisible(false);
156 184
                }
157 185
            } else {
158 186
                this.check.setVisible(false);
......
160 188
            return this.panel;
161 189
        }
162 190
        
191
        protected JCheckBox getCheckBox() {
192
            return this.check;
193
        }
194
        
163 195
    }
164 196
    
165 197
    public VCSGisEntitySelectorControllerJTree(JTree treeEntities) {
......
205 237
        });
206 238
        treeEntities.setModel(new DefaultTreeModel(new DefaultMutableTreeNode()));
207 239
        filteredTree = toolsSwingManager.createFilteredTreeController(treeEntities, txtFilter, btnEntities);
208
        this.treeEntities.setCellRenderer(new EntityCellRenderer());
209

  
240
        EntityCellRenderer cellRenderer = new EntityCellRenderer();
241
        this.treeEntities.setCellRenderer(cellRenderer);
242
        this.treeEntities.setCellEditor(new EntityCellEditor());
210 243
    }
211 244

  
212 245
    @Override

Also available in: Unified diff