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
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