Source code: net/jxta/ext/config/ui/PeerTreeSelectionListener.java
1 /*
2 * Copyright (c) 2001 Sun Microsystems, Inc. All rights
3 * reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and thproe following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. The end-user documentation included with the redistribution,
18 * if any, must include the following acknowledgment:
19 * "This product includes software developed by the
20 * Sun Microsystems, Inc. for Project JXTA."
21 * Alternately, this acknowledgment may appear in the software itself,
22 * if and wherever such third-party acknowledgments normally appear.
23 *
24 * 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA"
25 * must not be used to endorse or promote products derived from this
26 * software without prior written permission. For written
27 * permission, please contact Project JXTA at http://www.jxta.org.
28 *
29 * 5. Products derived from this software may not be called "JXTA",
30 * nor may "JXTA" appear in their name, without prior written
31 * permission of Sun.
32 *
33 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
34 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
36 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
37 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
40 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
42 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
43 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
44 * SUCH DAMAGE.
45 * ====================================================================
46 *
47 * This software consists of voluntary contributions made by many
48 * individuals on behalf of Project JXTA. For more
49 * information on Project JXTA, please see
50 * <http://www.jxta.org/>.
51 *
52 * This license is based on the BSD license adopted by the Apache Foundation.
53 *
54 * $Id: PeerTreeSelectionListener.java,v 1.1 2004/09/16 12:28:09 volkerj Exp $
55 */
56 package net.jxta.ext.config.ui;
57
58 import java.awt.Component;
59
60 import javax.swing.JTree;
61 import javax.swing.event.TreeSelectionEvent;
62 import javax.swing.event.TreeSelectionListener;
63 import javax.swing.tree.DefaultMutableTreeNode;
64
65 import org.swixml.SwingEngine;
66
67 /**
68 * ext:config:ui Tree selection event listener
69 *
70 * @author volker john [volkerj at jxta dot org]
71 * @version
72 * @created May 21, 2004
73 */
74 class PeerTreeSelectionListener implements TreeSelectionListener {
75
76 private static SwingEngine swix;
77 private static JTree tree;
78 private static Component current = null;
79
80
81 /**
82 * @param swix
83 */
84 public PeerTreeSelectionListener(SwingEngine swix) {
85 tree = (JTree) swix.find("id_cfgtree");
86 current = (Component) swix.find("id_cfgbasiccard");
87 PeerTreeSelectionListener.swix = swix;
88 }
89
90
91 /* (non-Javadoc)
92 * @see javax.swing.event.TreeSelectionListener#valueChanged(javax.swing.event.TreeSelectionEvent)
93 */
94 public void valueChanged(TreeSelectionEvent e) {
95 DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
96
97
98 if (node == null) return;
99
100 if (current != null) {
101 current.setVisible(false);
102 }
103
104 // TODO problem is that this code heavily relies on the XML code in Configurator.xml
105 // in terms of component (panel) names etc.
106 // Solution: make tree nodes objects that have the card id as value and use
107 // current = swix.find(node.<VAL>.toString()) to avoid lengthy if statement
108
109 if (node.toString() == "General") {
110 current = swix.find("id_cfgbasiccard");
111 } else if (node.toString() == "Network") {
112 current = swix.find("id_cfgnetworkcard");
113 } else if (node.toString() == "Rendezvous") {
114 current = swix.find("id_cfgrdvcard");
115 } else if (node.toString() == "Relays") {
116 current = swix.find("id_cfgrlycard");
117 } else if (node.toString() == "tcp") {
118 current = swix.find("id_cfgtcpcard");
119 } else if (node.toString() == "http") {
120 current = swix.find("id_cfghttpcard");
121 } else if (node.toString() == "Security") {
122 current = swix.find("id_cfgsecuritycard");
123 } else if (node.toString() == "Services") {
124 current = swix.find("id_cfgservicescard");
125 } else if (node.toString() == "Rendezvous Service") {
126 current = swix.find("id_cfgrdvservicecard");
127 } else if (node.toString() == "Relay Service") {
128 current = swix.find("id_cfgrlyservicecard");
129 } else if (node.toString() == "Endpoint Service") {
130 current = swix.find("id_cfgendpservicecard");
131 } else if (node.toString() == "Proxy Service") {
132 current = swix.find("id_cfgproxyservicecard");
133 }
134
135 if (current != null) {
136 current.setVisible(true);
137 }
138
139
140 }
141
142 }