svn-gvsig-desktop / trunk / libraries / libJCRS / src / org / gvsig / crs / gui / panels / TreePanel.java @ 8711
History | View | Annotate | Download (4.9 KB)
1 | 8676 | dguerrero | package org.gvsig.crs.gui.panels; |
---|---|---|---|
2 | |||
3 | import java.awt.FlowLayout; |
||
4 | import java.awt.GridBagConstraints; |
||
5 | import java.awt.GridBagLayout; |
||
6 | import java.util.Hashtable; |
||
7 | |||
8 | import javax.swing.JPanel; |
||
9 | import javax.swing.JScrollPane; |
||
10 | import javax.swing.JTextArea; |
||
11 | import javax.swing.JTree; |
||
12 | import javax.swing.tree.DefaultMutableTreeNode; |
||
13 | import javax.swing.tree.DefaultTreeModel; |
||
14 | |||
15 | /**
|
||
16 | *
|
||
17 | * @author Diego Guerrero (diego.guerrero@uclm.es)
|
||
18 | *
|
||
19 | */
|
||
20 | public class TreePanel extends JPanel { |
||
21 | |||
22 | private int wComp = 190; |
||
23 | private int hComp = 360; |
||
24 | private int hTree = (int)Math.floor(hComp * 0.68); |
||
25 | private int hList = hComp - hTree; |
||
26 | private JScrollPane pTree = null; |
||
27 | private JScrollPane pList = null; |
||
28 | private JTree tree = null; |
||
29 | //private JList list = null;
|
||
30 | private JTextArea list = null; |
||
31 | private DefaultMutableTreeNode raiz = null; |
||
32 | private Hashtable map; |
||
33 | String rootName = ""; |
||
34 | |||
35 | public TreePanel(String rootName) { |
||
36 | super();
|
||
37 | this.rootName = rootName;
|
||
38 | initialize(); |
||
39 | } |
||
40 | |||
41 | private void initialize() { |
||
42 | map = new Hashtable(); |
||
43 | raiz = new DefaultMutableTreeNode(rootName); |
||
44 | FlowLayout flowLayout = new FlowLayout(); |
||
45 | flowLayout.setHgap(0);
|
||
46 | flowLayout.setVgap(0);
|
||
47 | this.setLayout(flowLayout);
|
||
48 | |||
49 | GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); |
||
50 | gridBagConstraints1.gridx = 0;
|
||
51 | gridBagConstraints1.gridy = 1;
|
||
52 | GridBagConstraints gridBagConstraints = new GridBagConstraints(); |
||
53 | gridBagConstraints.gridx = 0;
|
||
54 | gridBagConstraints.gridy = 0;
|
||
55 | setLayout(new GridBagLayout()); |
||
56 | setPreferredSize(new java.awt.Dimension(wComp,hComp));
|
||
57 | add(getPTree(), gridBagConstraints); |
||
58 | add(getPList(), gridBagConstraints1); |
||
59 | |||
60 | } |
||
61 | |||
62 | /**
|
||
63 | * This method initializes jPanel
|
||
64 | *
|
||
65 | * @return javax.swing.JPanel
|
||
66 | */
|
||
67 | private JScrollPane getPTree() { |
||
68 | if (pTree == null) { |
||
69 | pTree = new JScrollPane(); |
||
70 | pTree.setPreferredSize(new java.awt.Dimension(wComp, hTree));
|
||
71 | pTree.setViewportBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED)); |
||
72 | pTree.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
||
73 | pTree.setViewportView(getTree()); |
||
74 | } |
||
75 | return pTree;
|
||
76 | } |
||
77 | |||
78 | /**
|
||
79 | * This method initializes jPanel1
|
||
80 | *
|
||
81 | * @return javax.swing.JPanel
|
||
82 | */
|
||
83 | private JScrollPane getPList() { |
||
84 | if (pList == null) { |
||
85 | pList = new JScrollPane(); |
||
86 | pList.setPreferredSize(new java.awt.Dimension(wComp, hList));
|
||
87 | pList.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); |
||
88 | pList.setBackground(java.awt.Color.white); |
||
89 | pList.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
||
90 | pList.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); |
||
91 | pList.setViewportView(getList()); |
||
92 | } |
||
93 | return pList;
|
||
94 | } |
||
95 | |||
96 | /**
|
||
97 | * This method initializes jTree
|
||
98 | *
|
||
99 | * @return javax.swing.JTree
|
||
100 | */
|
||
101 | public JTree getTree() { |
||
102 | if (tree == null) { |
||
103 | tree = new JTree(raiz); |
||
104 | } |
||
105 | return tree;
|
||
106 | } |
||
107 | |||
108 | /**
|
||
109 | * This method initializes jList
|
||
110 | *
|
||
111 | * @return javax.swing.JList
|
||
112 | */
|
||
113 | public JTextArea getList() { |
||
114 | if (list == null) { |
||
115 | list = new JTextArea(); |
||
116 | list.setLineWrap(true);
|
||
117 | list.setWrapStyleWord(true);
|
||
118 | list.setEditable(false);
|
||
119 | } |
||
120 | return list;
|
||
121 | } |
||
122 | |||
123 | public void setPanelSize(int w, int h){ |
||
124 | wComp = w; |
||
125 | hComp = h; |
||
126 | hTree = (int)Math.floor(hComp * 0.68); |
||
127 | hList = hComp - hTree; |
||
128 | this.setPreferredSize(new java.awt.Dimension(wComp, hComp)); |
||
129 | setPreferredSize(new java.awt.Dimension(wComp, hComp));
|
||
130 | pTree.setPreferredSize(new java.awt.Dimension(wComp, hTree));
|
||
131 | pList.setPreferredSize(new java.awt.Dimension(wComp, hList));
|
||
132 | } |
||
133 | |||
134 | /**
|
||
135 | * A?ade una nueva categoria al arbol
|
||
136 | * @param name Etiqueta que aparece en el arbol.
|
||
137 | * @param pos Posici?n en el arbol de la nueva categoria
|
||
138 | */
|
||
139 | public void addClass(String name, int pos){ |
||
140 | DefaultTreeModel model =(DefaultTreeModel)tree.getModel(); |
||
141 | DefaultMutableTreeNode r = new DefaultMutableTreeNode( name ); |
||
142 | model.insertNodeInto(r, raiz, pos); |
||
143 | } |
||
144 | |||
145 | /**
|
||
146 | * A?ade una entrada a una categoria
|
||
147 | * @param name Nombre de la entrada a a?adir
|
||
148 | * @param parentName Categoria a la que a?adimos
|
||
149 | * @param value Valor asociado a la entrada
|
||
150 | */
|
||
151 | public void addEntry(String name, String parentName, String value){ |
||
152 | DefaultTreeModel model =(DefaultTreeModel)tree.getModel(); |
||
153 | for(int i = 0; i < model.getChildCount(raiz); i++){ |
||
154 | if(model.getChild(raiz, i).toString().equals(parentName)){
|
||
155 | DefaultMutableTreeNode node = (DefaultMutableTreeNode)model.getChild(raiz, i); |
||
156 | node.add(new DefaultMutableTreeNode(name)); |
||
157 | if (value!=null) |
||
158 | map.put(name,value); |
||
159 | } |
||
160 | } |
||
161 | } |
||
162 | 8711 | dguerrero | |
163 | public void setRoot(String name){ |
||
164 | DefaultTreeModel model =(DefaultTreeModel)tree.getModel(); |
||
165 | //for (int index = 0; index<model.getChildCount(model.getRoot());index++)
|
||
166 | // model.removeNodeFromParent((DefaultMutableTreeNode)model.getChild(raiz, index));
|
||
167 | rootName=name; |
||
168 | raiz = new DefaultMutableTreeNode(rootName); |
||
169 | model.setRoot(raiz); |
||
170 | map.clear(); |
||
171 | |||
172 | } |
||
173 | 8676 | dguerrero | } |