1 /*
2 * Copyright (c) 2005 The University of Reading
3 * All rights 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 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. Neither the name of the University of Reading, nor the names of the
14 * authors or contributors may be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29 package uk.ac.rdg.resc.jstyx.gridservice.client;
30
31 import javax.swing.JPanel;
32 import javax.swing.JLabel;
33 import java.awt.BorderLayout;
34
35 import javax.swing.event.TreeSelectionListener;
36 import javax.swing.event.TreeSelectionEvent;
37
38 import javax.swing.tree.DefaultMutableTreeNode;
39 import javax.swing.tree.TreePath;
40
41 /***
42 * Panel for displaying properties of an SGS server, service or instance
43 *
44 * @author Jon Blower
45 * $Revision: 247 $
46 * $Date: 2005-05-17 19:21:57 +0100 (Tue, 17 May 2005) $
47 * $Log$
48 * Revision 1.2 2005/05/17 18:21:57 jonblower
49 * Improved detection of node type
50 *
51 * Revision 1.1 2005/05/17 15:50:43 jonblower
52 * Initial import
53 *
54 */
55 public class PropertiesPanel extends JPanel implements TreeSelectionListener
56 {
57
58 private JLabel label;
59
60 /*** Creates a new instance of PropertiesPanel */
61 public PropertiesPanel()
62 {
63 this.setLayout(new BorderLayout());
64 this.label = new JLabel("Properties");
65 this.add(this.label, BorderLayout.CENTER);
66 }
67
68 /***
69 * This is called when nodes in the SGSExplorer's tree have been selected
70 * or deselected.
71 */
72 public void valueChanged(TreeSelectionEvent e)
73 {
74 TreePath leadPath = e.getNewLeadSelectionPath();
75 if (leadPath != null)
76 {
77 Object obj = leadPath.getLastPathComponent();
78 if (!(obj instanceof CStyxFileNode))
79 {
80 return;
81 }
82 CStyxFileNode node = (CStyxFileNode)obj;
83 String nodeStr;
84 int nodeType = node.getType();
85 if (nodeType == 0)
86 {
87 // Shouldn't be selectable
88 nodeStr = "root";
89 }
90 else if (nodeType == 1)
91 {
92 nodeStr = "server";
93 }
94 else if (nodeType == 2)
95 {
96 nodeStr = "service";
97 }
98 else if (nodeType == 3)
99 {
100 nodeStr = "instance";
101 }
102 else
103 {
104 // Shoudn't happen
105 nodeStr = "unknown";
106 }
107 this.label.setText(nodeStr + ": " + node.toString());
108 this.repaint();
109 }
110 }
111 }