01: package net.ar.webonswing.tutorial.tree;
02:
03: import java.awt.event.*;
04:
05: import javax.swing.*;
06: import javax.swing.event.*;
07: import javax.swing.tree.*;
08:
09: import net.ar.webonswing.*;
10: import net.ar.webonswing.remote.*;
11: import net.ar.webonswing.swing.components.*;
12:
13: public class Porcentajes extends JFrame {
14: protected JTextField textField;
15:
16: public Porcentajes() {
17: super ("CheckNode TreeExample");
18: String[] strs = { "swing", "platf", "basic", "metal", "JTree" };
19:
20: CheckNode[] nodes = new CheckNode[strs.length];
21: for (int i = 0; i < strs.length; i++)
22: nodes[i] = new CheckNode(strs[i]);
23:
24: nodes[0].add(nodes[1]);
25: nodes[1].add(nodes[2]);
26: nodes[1].add(new CheckNode("leaf1"));
27: nodes[1].add(new CheckNode("leaf2"));
28: nodes[1].add(new CheckNode("leaf3"));
29: nodes[1].add(nodes[3]);
30: nodes[2].add(new CheckNode("leaf4"));
31: nodes[2].add(new CheckNode("leaf5"));
32: nodes[3].add(new CheckNode("leaf6"));
33: nodes[0].add(nodes[4]);
34: nodes[0].add(new CheckNode("leaf7"));
35: nodes[0].add(new CheckNode("leaf8"));
36: nodes[3].setSelected(true);
37:
38: final JTree tree = new JTree(nodes[0]);
39: tree.setCellRenderer(new ComponentStructureCellRenderer(tree));
40: tree.getSelectionModel().setSelectionMode(
41: TreeSelectionModel.SINGLE_TREE_SELECTION);
42: tree.putClientProperty("JTree.lineStyle", "Angled");
43:
44: tree.addTreeSelectionListener(new CheckTreeSelectionListener());
45:
46: tree.setLayout(WosFramework
47: .getTemplateLayoutForName("TreeDemo.JTree"));
48:
49: textField = new JTextField();
50: JButton button = new JButton("Grabar");
51: button.addActionListener(new ActionListener() {
52: public void actionPerformed(ActionEvent aE) {
53: CheckNode node = (CheckNode) tree
54: .getLastSelectedPathComponent();
55: node.setUserObject(textField.getText());
56: }
57: });
58:
59: JPanel thePanel = (JPanel) getContentPane();
60: thePanel.setLayout(WosFramework
61: .getTemplateLayoutForName("TreeDemo.theDemo"));
62: thePanel.add(tree, "theTree");
63: thePanel.add(textField, "theTextField");
64: thePanel.add(button, "theButton");
65: }
66:
67: public class CheckTreeSelectionListener implements
68: TreeSelectionListener, RemoteListener {
69: public void valueChanged(TreeSelectionEvent e) {
70: String theNewWindowName = e.getNewLeadSelectionPath()
71: .getLastPathComponent().toString();
72: textField.setText(theNewWindowName);
73: }
74:
75: public String getRemoteName() {
76: return "PorcentajesTreeSelectionListener";
77: }
78:
79: public Object[] getRemoteParameters() {
80: return new Object[0];
81: }
82: }
83: }
|