ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/conient/uk/org/iscream/cms/conient/QueueFrame.java
(Generate patch)

Comparing projects/cms/source/conient/uk/org/iscream/cms/conient/QueueFrame.java (file contents):
Revision 1.6 by ajm, Thu Mar 1 15:48:22 2001 UTC vs.
Revision 1.20 by tdb, Wed Feb 5 19:35:04 2003 UTC

# Line 1 | Line 1
1 + /*
2 + * i-scream central monitoring system
3 + * http://www.i-scream.org.uk
4 + * 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   //---PACKAGE DECLARATION---
22 < package uk.ac.ukc.iscream.conient;
22 > package uk.org.iscream.cms.conient;
23  
24   //---IMPORTS---
25 < import uk.ac.ukc.iscream.util.*;
26 < import uk.ac.ukc.iscream.conient.datacomponents.*;
25 > import uk.org.iscream.cms.util.*;
26 > import uk.org.iscream.cms.conient.datacomponents.*;
27   import javax.swing.*;
28   import javax.swing.border.*;
29   import java.util.*;
# Line 11 | Line 31 | import java.awt.*;
31   import java.awt.event.*;
32  
33   /**
34 + * This class allows a window to be shown which displays
35 + * internel server queue information as sent by the i-scream
36 + * server.
37   *
38 + * This allows a check to be made on the current performance of
39 + * the internal queues.
40 + *
41   * @author  $Author$
42   * @version $Id$
43   */
# Line 29 | Line 55 | public class QueueFrame extends JFrame {
55   //---CONSTRUCTORS---
56  
57      /**
58 <     *
58 >     * Constructs a new frame
59       */
60      public QueueFrame() {
61          super("Server Queue Status");
62 <        //addVisibleDataComponent(_conent, new StringDataComponent("Host Name", "packet.attributes.machine_name"));
63 <        
38 <        getContentPane().add(_content, "Center");
62 >        JScrollPane scrollPane = new JScrollPane(_content,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED , JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
63 >        getContentPane().add(scrollPane, "Center");
64          JButton close = new JButton("Close Window");
65          close.addActionListener(new ActionListener() {
66              public void actionPerformed(ActionEvent e) {
# Line 43 | Line 68 | public class QueueFrame extends JFrame {
68              }
69          });
70          getContentPane().add(close, "South");
71 <        setIconImage((new ImageIcon("./resources/server.gif")).getImage());
71 >        setIconImage((new ImageIcon(getClass().getResource("/resources/server.gif"))).getImage());
72          pack();
73          setVisible(true);
74      }
# Line 81 | Line 106 | public class QueueFrame extends JFrame {
106  
107   //---PRIVATE METHODS---
108  
109 +    /**
110 +     * Constructs and adds a new Queue panel to the
111 +     * current window.  This happens when a new queue packet
112 +     * is detected
113 +     *
114 +     * @param packet the packet to obtain the queue data from
115 +     */
116      private void addQueue(XMLPacket packet) {
117          HashMap newQueue = new HashMap();
118          String queueName = packet.getParam("packet.attributes.name");
119          String queueHashCode = packet.getParam("packet.attributes.hashCode");
120          VisibleDataComponent date = new DateDataComponent("Last timestamp", "packet.attributes.date");
121          VisibleDataComponent total = new StringDataComponent("Total queued to date", "packet.queue.attributes.total");
122 +        VisibleDataComponent max = new StringDataComponent("Maximum queue size", "packet.queue.attributes.maxSize");
123          newQueue.put("packet.attributes.name", new StringDataComponent("Name", "packet.attributes.name"));
124          newQueue.put("packet.queue.attributes.total", total);
125 +        newQueue.put("packet.queue.attributes.maxSize", max);
126          newQueue.put("packet.attributes.date", date);
127 +        
128          JPanel newQueueDisplay = new JPanel();
129          newQueueDisplay.setLayout(new BoxLayout(newQueueDisplay, BoxLayout.Y_AXIS));
130          newQueueDisplay.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 102)), queueName));
131          newQueueDisplay.add(date);
132          newQueueDisplay.add(total);
133 <        _queuesDisplays.put(queueName, newQueueDisplay);
133 >        newQueueDisplay.add(max);
134 >        _queuesDisplays.put(queueHashCode, newQueueDisplay);
135          try {
136              SwingSafeAdd task = new SwingSafeAdd(_content, newQueueDisplay);
137              SwingUtilities.invokeAndWait(task);
# Line 105 | Line 141 | public class QueueFrame extends JFrame {
141          pack();
142          _queues.put(queueHashCode, newQueue);
143      }
144 <        
144 >    
145 >    /**
146 >     * Updates a queue panel with new data
147 >     *
148 >     * @param packet the packet to obtain the new data from
149 >     * @throws DataFormatException if the packet contains invalid data
150 >     */
151      private void updateQueueInformation(XMLPacket packet) throws DataFormatException {
152          String queueHashCode = packet.getParam("packet.attributes.hashCode");
153          
# Line 128 | Line 170 | public class QueueFrame extends JFrame {
170                  // if there are no components looking after this data
171                  // create a new StringDataComponent for it
172                  if(!components.containsKey(dataKey)) {
173 <                    // check if its a disk drive, if it is then we need to deal with it
173 >                    // check if its a queue, if it is then we need to deal with it
174                      if(dataKey.startsWith("packet.queue.attributes.queue")) {
175                          VisibleDataComponent queue = new StringDataComponent("Current length of " + dataKey.substring(dataKey.lastIndexOf('.') + 1), dataKey);
176                          components.put(dataKey, queue);
# Line 136 | Line 178 | public class QueueFrame extends JFrame {
178                              SwingSafeAdd task = new SwingSafeAdd((JPanel)_queuesDisplays.get(queueHashCode), queue);
179                              SwingUtilities.invokeAndWait(task);
180                          } catch (Exception e) {
181 <                            // don't care
181 >                            // if there was a problem
182 >                            System.err.println("ERROR Failed To Add Component - " + e);
183                          }
184                          pack();
185                      }
186                      // note we ignore all other attributes
187                  }
188                  if(components.containsKey(dataKey)) {
189 <                    ((DataComponent) components.get(dataKey)).setValue(packet.getParam(dataKey));
189 >                    ((DataComponent) components.get(dataKey)).setValue(packet);
190                  }
191              }
192          }
# Line 159 | Line 202 | public class QueueFrame extends JFrame {
202       * are stored here.
203       */
204      private HashMap _queues = new HashMap();
205 +    
206 +    /**
207 +     * The Panels on the display hooked to the queue hashid
208 +     */
209      private HashMap _queuesDisplays = new HashMap();
210      
211 +    /**
212 +     * The box to lay queue panels into.
213 +     */
214      private Box _content = Box.createVerticalBox();
215  
216   //---STATIC ATTRIBUTES---

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines