svn-gvsig-desktop / trunk / libraries / libJCRS / src / org / gvsig / crs / gui / panels / TreePanel.java @ 8711
History | View | Annotate | Download (4.9 KB)
1 |
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 |
|
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 |
} |