ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/conient/uk/org/iscream/cms/conient/datacomponents/ServiceDataComponent.java
Revision: 1.11
Committed: Sun Aug 1 10:40:10 2004 UTC (19 years, 9 months ago) by tdb
Branch: MAIN
CVS Tags: HEAD
Changes since 1.10: +3 -3 lines
Log Message:
Catch a lot of old URL's and update them. Also remove a couple of old files
that aren't used.

File Contents

# User Rev Content
1 tdb 1.8 /*
2     * i-scream central monitoring system
3 tdb 1.11 * http://www.i-scream.org
4 tdb 1.8 * Copyright (C) 2000-2002 i-scream
5     *
6     * This program is free software; you can redistribute it and/or
7     * modify it under the terms of the GNU General Public License
8     * as published by the Free Software Foundation; either version 2
9     * of the License, or (at your option) any later version.
10     *
11     * This program is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with this program; if not, write to the Free Software
18     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19     */
20    
21 ajm 1.1 //---PACKAGE DECLARATION---
22 tdb 1.7 package uk.org.iscream.cms.conient.datacomponents;
23 ajm 1.1
24     //---IMPORTS---
25     import javax.swing.JLabel;
26     import javax.swing.JTextField;
27     import java.awt.Color;
28     import java.awt.GridLayout;
29     import javax.swing.SwingUtilities;
30 tdb 1.10 import uk.org.iscream.cms.util.XMLPacket;
31 ajm 1.1
32     /**
33     * This is the most basic of DataComponents.
34     *
35     * It simply displays the value as a String
36     * in a JTextField.
37     *
38 tdb 1.8 * @author $Author: tdb $
39 tdb 1.11 * @version $Id: ServiceDataComponent.java,v 1.10 2003/02/05 19:35:04 tdb Exp $
40 ajm 1.1 */
41     public class ServiceDataComponent extends VisibleDataComponent {
42    
43     //---FINAL ATTRIBUTES---
44    
45     /**
46     * The current CVS revision of this class
47     */
48 tdb 1.11 public final String REVISION = "$Revision: 1.10 $";
49 ajm 1.1
50     /**
51     * The default length of the JTextField
52     */
53     protected final int DEFAULT_TEXT_LENGTH = 20;
54    
55     //---STATIC METHODS---
56    
57     //---CONSTRUCTORS---
58    
59     /**
60     * Creates the component with a friendly name to be
61     * used as label
62     *
63     * @param name the friendly name
64     * @param attribute the data attribute we look after
65     */
66 ajm 1.3 public ServiceDataComponent(String name, String attribute, String statusAttribute) {
67 ajm 1.1 _name = name;
68 ajm 1.3 _statusAttribute = statusAttribute;
69 ajm 1.1 _attribute = attribute;
70 ajm 1.6 setLayout(new GridLayout(1,2));
71     _label = new JLabel(_name + ": ");
72     _label.setHorizontalAlignment(JLabel.RIGHT);
73 ajm 1.1 _item = new JTextField("", DEFAULT_TEXT_LENGTH);
74 ajm 1.5 _item.setHorizontalAlignment(JTextField.LEFT);
75 ajm 1.1 _item.setEditable(false);
76     _item.setText("-uninitialised-");
77 ajm 1.6 add(_label);
78 ajm 1.1 add(_item);
79 ajm 1.4 setVisible(false);
80 ajm 1.1 }
81    
82     //---PUBLIC METHODS---
83    
84     /**
85     * This run method updates any Swing components
86     * The setValue() method adds this component
87     * to the Swing Event Dispatching Queue to
88     * run this method.
89     */
90     public void run() {
91 ajm 1.4 if(!isVisible()) {
92     setVisible(true);
93     }
94 ajm 1.3 if (_statusCache.equals("0")) {
95 ajm 1.5 _item.setForeground(Color.black);
96 ajm 1.6 _item.setText("[OK] : " + _cache);
97 ajm 1.1 } else {
98 ajm 1.5 _item.setForeground(Color.red);
99 ajm 1.6 _item.setText("[FAILED] : " + _cache);
100 ajm 1.1 }
101 ajm 1.5 _item.setCaretPosition(0);
102 ajm 1.1 }
103    
104     /**
105     * Overrides the {@link java.lang.Object#toString() Object.toString()}
106     * method to provide clean logging (every class should have this).
107     *
108     * @return the name of this class and its CVS revision
109     */
110     public String toString() {
111     return _name + "(" + _attribute + ")";
112     }
113    
114     //---PRIVATE METHODS---
115    
116     //---ACCESSOR/MUTATOR METHODS---
117    
118     /**
119 ajm 1.3 * This takes the packet to obtain the value from, it then performs all
120 ajm 1.1 * approriate conversions and adds this class to the Swing Event
121     * Dispatching queue.
122     *
123 ajm 1.3 * @param packet the XMLPacket to get the data from
124 ajm 1.1 * @throws DataFormatException if there was a problem converting the data for display
125     */
126 ajm 1.3 public void setValue(XMLPacket packet) throws DataFormatException {
127     String value = packet.getParam(_attribute);
128     String statusvalue = packet.getParam(_statusAttribute);
129 ajm 1.1 try {
130 ajm 1.3 if(!_cache.equals(value) || !_statusCache.equals(statusvalue)) {
131 ajm 1.1 _cache = value;
132 ajm 1.3 _statusCache = statusvalue;
133 ajm 1.1 SwingUtilities.invokeLater(this);
134     }
135     } catch (Exception e) {
136     throw new DataFormatException(value + " is an invalid data type for " + toString());
137     }
138     }
139    
140     /**
141     * Returns the string showing the packet
142     * attribute that the component is looking after
143     *
144     * @return the packet reference
145     */
146     public String getPacketAttribute() {
147     return _attribute;
148     }
149    
150     //---ATTRIBUTES---
151    
152     /**
153     * The friendly name of this component
154     */
155     protected String _name;
156    
157     /**
158     * The attribute that this component is concerned with
159     */
160     protected String _attribute;
161    
162     /**
163 ajm 1.3 * The service status attribute that this component is concerned with
164     */
165     protected String _statusAttribute;
166    
167     /**
168 ajm 1.1 * The friendly label for this component
169     */
170     protected JLabel _label;
171    
172     /**
173 ajm 1.3 * Remembers what the last value was, so we
174 ajm 1.1 * only update if we have to.
175     */
176 ajm 1.3 protected String _cache = "";
177    
178     /**
179     * Remembers what the last value was, so we
180     * only update if we have to.
181     */
182     protected String _statusCache = "";
183 ajm 1.1
184     /**
185     * The length of the JTextField
186     */
187     protected int _displayLength;
188    
189     /**
190     * Just a normal label to display our value as a String
191     */
192     protected JTextField _item;
193    
194     //---STATIC ATTRIBUTES---
195    
196     }