svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.swing / org.gvsig.fmap.dal.swing.impl / src / main / java / org / gvsig / fmap / dal / swing / impl / searchpanel / AdvancedAttributeSelectionTreeCellRenderer.java @ 44297
History | View | Annotate | Download (2.61 KB)
1 | 44262 | jjdelcerro | package org.gvsig.fmap.dal.swing.impl.searchpanel; |
---|---|---|---|
2 | |||
3 | import java.awt.Component; |
||
4 | 44263 | jjdelcerro | import java.awt.FlowLayout; |
5 | import javax.swing.Icon; |
||
6 | 44262 | jjdelcerro | import javax.swing.JLabel; |
7 | 44263 | jjdelcerro | import javax.swing.JPanel; |
8 | 44262 | jjdelcerro | import javax.swing.JTree; |
9 | 44263 | jjdelcerro | import javax.swing.border.EmptyBorder; |
10 | 44262 | jjdelcerro | import javax.swing.tree.DefaultTreeCellRenderer; |
11 | 44263 | jjdelcerro | import javax.swing.tree.TreeCellRenderer; |
12 | 44262 | jjdelcerro | import org.gvsig.fmap.dal.swing.impl.searchpanel.AdvancedAttributeSelectionTreeModel.Node; |
13 | import org.gvsig.tools.swing.api.ToolsSwingLocator; |
||
14 | import org.gvsig.tools.swing.icontheme.IconTheme; |
||
15 | |||
16 | /**
|
||
17 | *
|
||
18 | * @author jjdelcerro
|
||
19 | */
|
||
20 | 44263 | jjdelcerro | public class AdvancedAttributeSelectionTreeCellRenderer |
21 | // extends DefaultTreeCellRenderer
|
||
22 | implements TreeCellRenderer |
||
23 | { |
||
24 | 44262 | jjdelcerro | |
25 | 44263 | jjdelcerro | private final Icon iconTable; |
26 | private final Icon iconColumn; |
||
27 | private final Icon iconForeingKey; |
||
28 | private final JPanel panel; |
||
29 | private final JLabel icon; |
||
30 | private final DefaultTreeCellRenderer label; |
||
31 | private final IconTheme iconTheme; |
||
32 | 44262 | jjdelcerro | |
33 | public AdvancedAttributeSelectionTreeCellRenderer() {
|
||
34 | 44263 | jjdelcerro | this.iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
|
35 | this.iconTable = iconTheme.get("featurestore-table"); |
||
36 | this.iconColumn = iconTheme.get("featurestore-column"); |
||
37 | this.iconForeingKey = iconTheme.get("featurestore-foreing-key"); |
||
38 | |||
39 | this.panel = new JPanel(); |
||
40 | this.panel.setLayout(new FlowLayout(FlowLayout.LEADING, 3, 2)); |
||
41 | this.icon = new JLabel(); |
||
42 | this.label = new DefaultTreeCellRenderer(); |
||
43 | this.panel.add(this.icon); |
||
44 | this.panel.add(this.label); |
||
45 | this.panel.setBorder(new EmptyBorder(0, 0, 0, 0)); |
||
46 | this.panel.setOpaque(false); |
||
47 | |||
48 | 44262 | jjdelcerro | } |
49 | |||
50 | @Override
|
||
51 | public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { |
||
52 | 44263 | jjdelcerro | JLabel theLabel = (JLabel) this.label.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); |
53 | 44262 | jjdelcerro | if( !(value instanceof Node) ) { |
54 | 44263 | jjdelcerro | return theLabel;
|
55 | 44262 | jjdelcerro | } |
56 | Node node = (Node) value; |
||
57 | 44263 | jjdelcerro | Icon iconElement = node.isRoot()? this.iconTable: leaf? this.iconColumn: this.iconForeingKey; |
58 | Icon iconDataType = null; |
||
59 | try {
|
||
60 | if( !node.isRoot() ) {
|
||
61 | String iconName = node.getValue().getDataType().getIconName();
|
||
62 | iconDataType = this.iconTheme.get(iconName);
|
||
63 | } |
||
64 | } catch(Exception ex) { |
||
65 | |||
66 | 44262 | jjdelcerro | } |
67 | 44263 | jjdelcerro | this.label.setIcon(iconDataType);
|
68 | this.label.setText(node.getLabel());
|
||
69 | this.icon.setIcon(iconElement);
|
||
70 | return this.panel; |
||
71 | 44262 | jjdelcerro | } |
72 | |||
73 | |||
74 | } |