perfsonar-dev - perfsonar: r2885 - in branches/perfsonarui: jars/xml src/org/perfsonar/perfsonarui/config src/org/perfsonar/perfsonarui/lookingglass src/org/perfsonar/perfsonarui/lookingglass/model src/org/perfsonar/perfsonarui/lookingglass/support src/org/perfsonar/perfsonarui/ui
Subject: perfsonar development work
List archive
perfsonar: r2885 - in branches/perfsonarui: jars/xml src/org/perfsonar/perfsonarui/config src/org/perfsonar/perfsonarui/lookingglass src/org/perfsonar/perfsonarui/lookingglass/model src/org/perfsonar/perfsonarui/lookingglass/support src/org/perfsonar/perfsonarui/ui
Chronological Thread
- From:
- To:
- Subject: perfsonar: r2885 - in branches/perfsonarui: jars/xml src/org/perfsonar/perfsonarui/config src/org/perfsonar/perfsonarui/lookingglass src/org/perfsonar/perfsonarui/lookingglass/model src/org/perfsonar/perfsonarui/lookingglass/support src/org/perfsonar/perfsonarui/ui
- Date: Tue, 2 Oct 2007 05:56:00 -0400
Author: melis
Date: 2007-10-02 05:55:59 -0400 (Tue, 02 Oct 2007)
New Revision: 2885
Added:
branches/perfsonarui/jars/xml/xercesImpl.jar
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/InfiniteProgressPanel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/Command.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/DeviceComboboxModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/DeviceListModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/FunctionComboboxModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/LatestResultListModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/LinkedWebserviceComboboxModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/LookingGlassClientModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/ParameterListModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/QueriedDeviceComboboxModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/WebserviceComboboxModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/WebservicesTableModel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/support/
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/support/CommandComboboxRenderer.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/support/StringComparator.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/support/TextHighlighter.java
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/config/MA.conf
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LGRequest.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassMainPanel.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassTab.java
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/PerfSonarApp.java
Log:
Added some classes for the LookingGlass Tab (still in development)
Added: branches/perfsonarui/jars/xml/xercesImpl.jar
Property changes on: branches/perfsonarui/jars/xml/xercesImpl.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/perfsonarui/src/org/perfsonar/perfsonarui/config/MA.conf
===================================================================
--- branches/perfsonarui/src/org/perfsonar/perfsonarui/config/MA.conf
2007-10-01 14:20:42 UTC (rev 2884)
+++ branches/perfsonarui/src/org/perfsonar/perfsonarui/config/MA.conf
2007-10-02 09:55:59 UTC (rev 2885)
@@ -37,4 +37,4 @@
;PIONIER-LS,http://ls.perfsonar.pionier.net.pl:8080/XML-LS-1.1.1/services/LookupService,ls,"",ls,ls
;SWITCH-LS,http://ls.sonar.net.switch.ch:8180/XML-LS-1.1.1/services/LookupService,ls,"",ls,ls
;REDIRIS-Test-AS,http://homer.rediris.es:8080/perfSONAR-AS/services/AuthService,as,"",as,as
-;TelnetSSH,http://chaos169.test.atlantis.ugent.be:8080/axis/services/TelnetSSH,lg,"",lg,lg
\ No newline at end of file
+;TelnetSSH,http://chaos169.test.atlantis.ugent.be:8080/JAVA-SSHTELNET-MP-1.2/services/TelnetSSH,lg,"",lg,lg
\ No newline at end of file
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/InfiniteProgressPanel.java
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LGRequest.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LGRequest.java
2007-10-01 14:20:42 UTC (rev 2884)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LGRequest.java
2007-10-02 09:55:59 UTC (rev 2885)
@@ -1,8 +1,8 @@
/*
-Copyright (C) 2005-2006
-
+Copyright (C) 2005-2006
+
Contact:
-
+
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1
@@ -11,16 +11,16 @@
- but is not limited to - adding the above copyright notice to the beginning
of your source code files, and to any copyright notice that you may
distribute
with programs based on this work.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
-
+
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-*/
+ */
package org.perfsonar.perfsonarui.lookingglass;
@@ -36,108 +36,136 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+/**
+ * @author Stijn Melis
+ * @author Nina Jeliazkova (skeleton framework)
+ */
public class LGRequest extends AbstractMARequest {
-
- /**
- * uData.getEndpoint is the service address to be queried, use
messagetype if necessary to distinguish between different types of messages
(metadatarequest, setupdatarequest)
- */
- @Override
- public Document createRequest(IUserData uData, String messageType)
- throws Exception {
- Document doc = null;
-
- if
(IPerfsonarRequest.MA_MetadataKeyRequest.equals(messageType)) {
-
- DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- DocumentBuilder builder = factory.newDocumentBuilder();
- doc = builder.newDocument();
-
- Element msg = doc.createElementNS(NMWG2,"nmwg:message");
- msg.setAttribute("id", "msg1");
- msg.setAttribute("type", messageType);
-
- doc.appendChild(msg);
-
- Element metadata =
doc.createElementNS(NMWG2,"nmwg:metadata");
- metadata.setAttribute("id", "meta1");
- msg.appendChild(metadata);
-
- Element subject = doc.createElementNS(NMWG2,"nmwg:subject");
- subject.setAttribute("id", "server");
- metadata.appendChild(subject);
-
- Element params =
doc.createElementNS(NMWG2,"nmwg:parameters");
- params.setAttribute("id", "params1");
- subject.appendChild(params);
-
- Element param = doc.createElementNS(NMWG2,"nmwg:parameter");
- param.setAttribute("id", "param1");
- params.appendChild(param);
-
- //here comes the data entered in by the user
-
param.appendChild(doc.createTextNode(uData.getQuery("param1")));
-
- //create the relevant Document, get parameters from
udata
+
+ /**
+ * uData.getEndpoint is the service address to be queried, use
messagetype if necessary to distinguish between different types of messages
(metadatarequest, setupdatarequest)
+ */
+ @Override
+ public Document createRequest(IUserData uData, String messageType)
+ throws Exception {
+ Document doc = null;
+
+ if (IPerfsonarRequest.MA_MetadataKeyRequest.equals(messageType)) {
+ DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ doc = builder.newDocument();
+
+ Element msg = doc.createElementNS(NMWG2,"nmwg:message");
+ msg.setAttribute("id", "msg1");
+ msg.setAttribute("type", messageType);
+
+ doc.appendChild(msg);
+
+ Element metadata = doc.createElementNS(NMWG2,"nmwg:metadata");
+ metadata.setAttribute("id", "meta1");
+ msg.appendChild(metadata);
+
+ Element subject = doc.createElementNS(NMWG2,"nmwg:subject");
+ subject.setAttribute("id", "server");
+ metadata.appendChild(subject);
+
+ Element params = doc.createElementNS(NMWG2,"nmwg:parameters");
+ params.setAttribute("id", "params1");
+ subject.appendChild(params);
+
+ Element param = doc.createElementNS(NMWG2,"nmwg:parameter");
+ param.setAttribute("id", "param1");
+ params.appendChild(param);
+
+ //here comes the data entered in by the user
+ param.appendChild(doc.createTextNode(uData.getQuery("param1")));
+
+
+ } else if (IPerfsonarRequest.MA_SetupDataRequest.equals(messageType))
{
+ DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ doc = builder.newDocument();
+
+ Element msg = doc.createElementNS(NMWG2,"nmwg:message");
+ msg.setAttribute("id", "msg1");
+ msg.setAttribute("type", messageType);
+
+ doc.appendChild(msg);
+
+ Element metadata = doc.createElementNS(NMWG2,"nmwg:metadata");
+ metadata.setAttribute("id", "meta1");
+ msg.appendChild(metadata);
+
+ Element subject = doc.createElementNS(NMWG2,"nmwg:subject");
+ subject.setAttribute("id", "server");
+ metadata.appendChild(subject);
+
+ Element params = doc.createElementNS(NMWG2,"nmwg:parameters");
+ params.setAttribute("id", "params1");
+ subject.appendChild(params);
+
+ Element param = doc.createElementNS(NMWG2,"nmwg:parameter");
+ param.setAttribute("id", "param1");
+ params.appendChild(param);
+
+ //here comes the data entered in by the user
+ param.appendChild(doc.createTextNode(uData.getQuery("param1")));
+
+ //create the relevant Document, get parameters from udata
/*
<?xml version='1.0' encoding='UTF-8'?>
-
- <nmwg:message id="msg1" type="MetadataKeyRequest"
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" >
-
- <nmwg:metadata id="meta1">
- <nmwg:subject id="server">
- <nmwg:parameters id="params1">
- <nmwg:parameter
name="param1">SES</nmwg:parameter>
- </nmwg:parameters>
- </nmwg:subject>
- </nmwg:metadata>
-
- <nmwg:data id="data1" metadataIdRef="meta1">
- </nmwg:data>
-
+ <nmwg:message id="msg1" type="SetupDataRequest"
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/">
+ <nmwg:metadata id="meta1">
+ <nmwg:subject id="subject1">
+ <nmwgtopo:endPoint type="hostname"
xmlns:nmwgtopo="http://ggf.org/ns/nmwg/topology/2.0/">cisco</nmwgtopo:endPoint>
+ </nmwg:subject>
+ <nmwg:parameters id="params1"/>
+
<nmwg:eventType>STATUS_SHOW_ENVIRONMENT</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="data1" metadataIdRef="meta1"/>
</nmwg:message>
- */
-
- } else if
(IPerfsonarRequest.MA_SetupDataRequest.equals(messageType)) {
- //create the relevant Document
- }
- return doc;
+
+ */
}
-
- @Override
- public Document createRequest(MAEndpoint endpoint, MetaDataList query,
- String messageType) throws Exception {
- // endpoint is the service address to be queried, query is a
list of IUserData entries
- //This is if you need to send several simultaneous request
for each entries in query - not sure if relevant for LG
- System.out.println(query);
- return null;
- }
-
- @Override
- public String getMessageNamespace() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String[] getNamespaces() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String getRequestType() {
- return "lg";
- }
-
- /**
- * This is normally invoked after response is received
- */
- public void process(IUserData uData, Document response,
- IPerfsonarResponse listener) throws Exception {
- // TODO Auto-generated method stub
-
- }
+ return doc;
+ }
+
+ @Override
+ public Document createRequest(MAEndpoint endpoint, MetaDataList query,
+ String messageType) throws Exception {
+ // endpoint is the service address to be queried, query is a list of
IUserData entries
+ //This is if you need to send several simultaneous request for each
entries in query - not sure if relevant for LG
+ System.out.println(query);
+ return null;
+ }
+
+ @Override
+ public String getMessageNamespace() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String[] getNamespaces() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getRequestType() {
+ return "lg";
+ }
+
+ /**
+ * This is normally invoked after response is received
+ */
+ public void process(IUserData uData, Document response,
+ IPerfsonarResponse listener) throws Exception {
+ // TODO Auto-generated method stub
-
+ }
+
+
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassMainPanel.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassMainPanel.java
2007-10-01 14:20:42 UTC (rev 2884)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassMainPanel.java
2007-10-02 09:55:59 UTC (rev 2885)
@@ -1,8 +1,8 @@
/*
-Copyright (C) 2005-2006
-
+Copyright (C) 2005-2006
+
Contact:
-
+
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1
@@ -11,56 +11,959 @@
- but is not limited to - adding the above copyright notice to the beginning
of your source code files, and to any copyright notice that you may
distribute
with programs based on this work.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
-
+
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-*/
+ */
package org.perfsonar.perfsonarui.lookingglass;
-import java.awt.BorderLayout;
import java.awt.Component;
-
-import javax.swing.BorderFactory;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.EventListenerList;
+import javax.swing.text.DefaultCaret;
+import org.perfsonar.perfsonarui.lookingglass.model.Command;
+import org.w3c.dom.Document;
+import org.perfsonar.perfsonarui.lookingglass.model.DeviceComboboxModel;
+import org.perfsonar.perfsonarui.lookingglass.model.DeviceListModel;
+import org.perfsonar.perfsonarui.lookingglass.model.FunctionComboboxModel;
+import org.perfsonar.perfsonarui.lookingglass.model.LatestResultListModel;
+import
org.perfsonar.perfsonarui.lookingglass.model.LinkedWebserviceComboboxModel;
+import org.perfsonar.perfsonarui.lookingglass.model.LookingGlassClientModel;
+import org.perfsonar.perfsonarui.lookingglass.model.ParameterListModel;
+import
org.perfsonar.perfsonarui.lookingglass.model.QueriedDeviceComboboxModel;
+import org.perfsonar.perfsonarui.lookingglass.model.WebserviceComboboxModel;
+import org.perfsonar.perfsonarui.lookingglass.model.WebservicesTableModel;
+import
org.perfsonar.perfsonarui.lookingglass.support.CommandComboboxRenderer;
+import org.perfsonar.perfsonarui.lookingglass.support.TextHighlighter;
import org.perfsonar.perfsonarui.plugins.IPerfsonarTab;
import org.perfsonar.perfsonarui.ui.PluginMainPanel;
-import org.perfsonar.perfsonarui.ui.panels.UserDataPanel;
-public class LookingGlassMainPanel extends PluginMainPanel {
- protected JTextArea demo;
- /**
- *
- */
- private static final long serialVersionUID = -9200520537475864945L;
- public LookingGlassMainPanel(Component parentFrame, IPerfsonarTab
model) {
- super(parentFrame, model);
+/**
+ * @author Stijn Melis
+ * @author Nina Jeliazkova (skeleton framework)
+ */
+public class LookingGlassMainPanel extends PluginMainPanel
+ implements ChangeListener{
+ protected JTextArea demo;
+ /**
+ *
+ */
+ private static final long serialVersionUID = -9200520537475864945L;
+
+
+ private JPanel jPanel2;
+ private JScrollPane jScrollPane2;
+ private JTextArea resultTextArea;
+ private JLabel jLabel32;
+ private JTextField statusTextField;
+ private JLabel jLabel35;
+ private JTextField searchTextField;
+ private JButton highlightButton;
+
+ private JPanel jPanel1;
+ private JLabel jLabel1;
+ private JComboBox webserviceCombobox;
+ private JLabel jLabel2;
+ private JComboBox deviceCombobox;
+ private JLabel jLabel3;
+ private JComboBox functionCombobox;
+ private JButton clearButton;
+ private JButton sendButton;
+ private JLabel jLabel27;
+ private JProgressBar progressBar;
+ private JList deviceList;
+ private JScrollPane jScrollPane8;
+ private JButton addDeviceButton;
+ private JButton removeDeviceButton;
+ private JLabel jLabel28;
+ private JPanel jPanel3;
+ private JLabel jLabel29;
+ private JLabel jLabel30;
+ private JLabel jLabel31;
+ private JTextField descriptionTextField;
+ private JTextField syntaxTextField;
+ private JTextField commandTextField;
+ private JLabel parameterLabel;
+ private JTextField parameterStringTextField;
+
+ private LookingGlassClientModel model;
+ private WebserviceComboboxModel webserviceComboboxModel = null;
+ private boolean busy = false;
+ private InfiniteProgressPanel infiniteProgressPanel;
+ private ChangeEvent changeEvent;
+ private LinkedWebserviceComboboxModel linkedWebserviceComboboxModel;
+ private DeviceComboboxModel deviceComboboxModel;
+ private FunctionComboboxModel functionComboboxModel;
+ private ParameterListModel parameterListModel;
+ private DeviceListModel deviceListModel;
+ private WebservicesTableModel webservicesTableModel;
+ private LatestResultListModel latestResultListModel;
+ private QueriedDeviceComboboxModel queriedDeviceComboboxModel1;
+ private QueriedDeviceComboboxModel queriedDeviceComboboxModel2;
+
+
+ private IPerfsonarTab iperftab;
+
+ public LookingGlassMainPanel(Component parentFrame, IPerfsonarTab
iperftab) {
+ super(parentFrame, iperftab);
+ this.iperftab = iperftab;
+ }
+
+ @Override
+ protected void addWidgets() {
+ model = new LookingGlassClientModel();
+ model.addChangeListener(this);
+
+ infiniteProgressPanel = new InfiniteProgressPanel();
+
+ listenerList = new EventListenerList();
+ changeEvent = new ChangeEvent("webservicesAlteration");
+
+ webserviceComboboxModel = new WebserviceComboboxModel(model);
+ linkedWebserviceComboboxModel =
+ new LinkedWebserviceComboboxModel(model);
+ deviceComboboxModel = new DeviceComboboxModel(model);
+ functionComboboxModel = new FunctionComboboxModel(model);
+
+ parameterListModel = new ParameterListModel(model);
+ deviceListModel = new DeviceListModel(model);
+ webservicesTableModel = new WebservicesTableModel();
+ latestResultListModel = new LatestResultListModel(model);
+
+ queriedDeviceComboboxModel1 = new QueriedDeviceComboboxModel();
+ queriedDeviceComboboxModel2 = new QueriedDeviceComboboxModel();
+
+ addChangeListener(webserviceComboboxModel);
+ addChangeListener(linkedWebserviceComboboxModel);
+
+ JSplitPane split = new
JSplitPane(JSplitPane.VERTICAL_SPLIT,addTopPane(), addBottomPane());
+
+ add(split);
+ }
+
+ private JPanel addTopPane() {
+ jPanel1 = new JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ webserviceCombobox = new javax.swing.JComboBox();
+ jLabel2 = new javax.swing.JLabel();
+ deviceCombobox = new javax.swing.JComboBox();
+ jLabel3 = new javax.swing.JLabel();
+ functionCombobox = new javax.swing.JComboBox();
+ clearButton = new javax.swing.JButton();
+ sendButton = new javax.swing.JButton();
+ jLabel27 = new javax.swing.JLabel();
+ progressBar = new javax.swing.JProgressBar();
+ jScrollPane8 = new javax.swing.JScrollPane();
+ deviceList = new javax.swing.JList();
+ addDeviceButton = new javax.swing.JButton();
+ removeDeviceButton = new javax.swing.JButton();
+ jLabel28 = new javax.swing.JLabel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel29 = new javax.swing.JLabel();
+ jLabel30 = new javax.swing.JLabel();
+ jLabel31 = new javax.swing.JLabel();
+ descriptionTextField = new javax.swing.JTextField();
+ syntaxTextField = new javax.swing.JTextField();
+ commandTextField = new javax.swing.JTextField();
+ parameterLabel = new javax.swing.JLabel();
+ parameterStringTextField = new javax.swing.JTextField();
+
+
+
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Request"));
+ jLabel1.setText("Telnet / SSH Measurement Point:");
+
+
+ webserviceCombobox.setModel(webserviceComboboxModel);
+ webserviceCombobox.setToolTipText("Select the desired configured
webserver");
+ webserviceCombobox.addActionListener(new
java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ webserviceComboboxActionperformedHandler(evt);
+ }
+ });
+
+ jLabel2.setText("Device:");
+
+ deviceCombobox.setModel(deviceComboboxModel);
+ deviceCombobox.setToolTipText("Select the device the earlier selected
webserver supports");
+ deviceCombobox.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ deviceComboboxHandler(evt);
+ }
+ });
+
+ jLabel3.setText("Command:");
+
+ functionCombobox.setModel(functionComboboxModel);
+ functionCombobox.setToolTipText("Select the requested function");
+ functionCombobox.setRenderer(new CommandComboboxRenderer(this));
+ functionCombobox.addActionListener(new
java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ functionComboboxActionPerformed(evt);
+ }
+ });
+
+ clearButton.setText("Clear All");
+ clearButton.setToolTipText("Clear all fields");
+ clearButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clearButtonActionPerformed(evt);
+ }
+ });
+
+ sendButton.setText("Query");
+ sendButton.setToolTipText("Contact the webserver with the stated
request");
+ sendButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ sendButtonActionPerformed(evt);
+ }
+ });
+
+ jLabel27.setText("Working");
+
+ progressBar.setForeground(new java.awt.Color(0, 153, 153));
+ progressBar.setEnabled(false);
+ progressBar.setString("");
+
+ deviceList.setModel(deviceListModel);
+
deviceList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+ deviceList.setToolTipText("This list represents a set of devices to
which the same command will be sent. It can also be used to select the
appropriate result to be displayed in the large box below.");
+ jScrollPane8.setViewportView(deviceList);
+
+ addDeviceButton.setText("Add Device");
+ addDeviceButton.setEnabled(false);
+ addDeviceButton.addActionListener(new java.awt.event.ActionListener()
{
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ addDeviceButtonActionPerformed(evt);
+ }
+ });
+
+ removeDeviceButton.setText("Remove Selected Device");
+ removeDeviceButton.setEnabled(false);
+ removeDeviceButton.addActionListener(new
java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ removeDeviceButtonActionPerformed(evt);
+ }
+ });
+
+ jLabel28.setText("Devices to be contacted:");
+
+
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Command
Information"));
+ jLabel29.setText("Description:");
+
+ jLabel30.setText("Syntax:");
+
+ jLabel31.setText("Device OS Command:");
+
+ descriptionTextField.setEditable(false);
+ descriptionTextField.setFont(new java.awt.Font("Tahoma", 1, 11));
+ descriptionTextField.setForeground(new java.awt.Color(0, 153, 51));
+ descriptionTextField.setToolTipText("Gives a tectual description of
the selected command");
+
+ syntaxTextField.setEditable(false);
+ syntaxTextField.setFont(new java.awt.Font("Tahoma", 1, 11));
+ syntaxTextField.setForeground(new java.awt.Color(0, 153, 51));
+ syntaxTextField.setToolTipText("Gives the syntax of the parameters
(if applicable)");
+
+ commandTextField.setEditable(false);
+ commandTextField.setFont(new java.awt.Font("Tahoma", 1, 11));
+ commandTextField.setForeground(new java.awt.Color(204, 102, 0));
+ commandTextField.setToolTipText("Gives as information the
device-specific command that will be executed");
+
+ org.jdesktop.layout.GroupLayout jPanel3Layout = new
org.jdesktop.layout.GroupLayout(jPanel3);
+ jPanel3.setLayout(jPanel3Layout);
+ jPanel3Layout.setHorizontalGroup(
+
jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel3Layout.createSequentialGroup()
+ .addContainerGap()
+
.add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel3Layout.createSequentialGroup()
+ .add(jLabel31)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(commandTextField,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 88, Short.MAX_VALUE))
+ .add(jPanel3Layout.createSequentialGroup()
+ .add(jLabel29)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(descriptionTextField,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE))
+ .add(jPanel3Layout.createSequentialGroup()
+ .add(jLabel30)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(syntaxTextField,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE)))
+ .addContainerGap())
+ );
+ jPanel3Layout.setVerticalGroup(
+
jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel3Layout.createSequentialGroup()
+ .addContainerGap()
+
.add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel29)
+ .add(descriptionTextField,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel30)
+ .add(syntaxTextField,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel31)
+ .add(commandTextField,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(0, 0, Short.MAX_VALUE))
+ );
+
+ parameterLabel.setText("Parameterstring:");
+
+ parameterStringTextField.setEnabled(false);
+
+ org.jdesktop.layout.GroupLayout jPanel1Layout = new
org.jdesktop.layout.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(jPanel1Layout.createSequentialGroup()
+ .add(jLabel3)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(functionCombobox, 0, 176, Short.MAX_VALUE))
+ .add(jPanel1Layout.createSequentialGroup()
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+ .add(org.jdesktop.layout.GroupLayout.LEADING,
jPanel1Layout.createSequentialGroup()
+ .add(jLabel1)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(webserviceCombobox, 0, 69, Short.MAX_VALUE))
+ .add(org.jdesktop.layout.GroupLayout.LEADING,
jPanel1Layout.createSequentialGroup()
+ .add(jLabel2)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(deviceCombobox, 0, 191, Short.MAX_VALUE)))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))
+ .add(jPanel1Layout.createSequentialGroup()
+ .add(parameterLabel)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(parameterStringTextField,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+ .add(org.jdesktop.layout.GroupLayout.LEADING,
jPanel1Layout.createSequentialGroup()
+ .add(jLabel27)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(progressBar,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 201, Short.MAX_VALUE))
+ .add(jPanel1Layout.createSequentialGroup()
+ .add(addDeviceButton,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(removeDeviceButton))
+ .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane8,
0, 0, Short.MAX_VALUE)
+ .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel28)
+ .add(jPanel1Layout.createSequentialGroup()
+ .add(sendButton,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 136, Short.MAX_VALUE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(clearButton,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 102,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+ .add(253, 253, 253))
+ );
+ jPanel1Layout.setVerticalGroup(
+
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel1Layout.createSequentialGroup()
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel1)
+ .add(webserviceCombobox,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel27))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel2)
+ .add(deviceCombobox,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel3)
+ .add(functionCombobox,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(parameterLabel)
+ .add(parameterStringTextField,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
108, Short.MAX_VALUE))
+ .add(jPanel1Layout.createSequentialGroup()
+ .add(progressBar,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 22,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(jLabel28)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(removeDeviceButton)
+ .add(addDeviceButton))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(jScrollPane8,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(clearButton)
+ .add(sendButton))))
+ .addContainerGap())
+ );
+
+ return jPanel1;
+ }
+
+
+ private JPanel addBottomPane() {
+ jPanel2 = new JPanel();
+ jScrollPane2 = new JScrollPane();
+ resultTextArea = new JTextArea();
+ jLabel32 = new JLabel();
+ statusTextField = new JTextField();
+ jLabel35 = new JLabel();
+ searchTextField = new JTextField();
+ highlightButton = new JButton();
+
+
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Response"));
+
jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+ resultTextArea.setColumns(10);
+ resultTextArea.setEditable(false);
+ resultTextArea.setLineWrap(true);
+ resultTextArea.setRows(5);
+ resultTextArea.setToolTipText("Response of the webserver to the given
request");
+ resultTextArea.setAutoscrolls(false);
+ DefaultCaret caret = new DefaultCaret();
+ caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
+ resultTextArea.setCaret(caret);
+ jScrollPane2.setViewportView(resultTextArea);
+
+ jLabel32.setText("Status Result String:");
+
+ statusTextField.setEditable(false);
+ statusTextField.setFont(new java.awt.Font("Tahoma", 3, 11));
+ statusTextField.setForeground(new java.awt.Color(0, 0, 255));
+ statusTextField.setToolTipText("Displays the resultstring containing
status information concerning you request");
+
+ jLabel35.setText("Search:");
+
+ searchTextField.setToolTipText("Enter a search string here");
+ searchTextField.setEnabled(false);
+
+ highlightButton.setText("Highlight");
+ highlightButton.setToolTipText("Highlight the search string from the
textfield to the left into the textarea above.");
+ highlightButton.setEnabled(false);
+ highlightButton.addActionListener(new java.awt.event.ActionListener()
{
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ highlightButtonActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout jPanel2Layout = new
org.jdesktop.layout.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING,
jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
+ .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane2,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 724, Short.MAX_VALUE)
+ .add(jPanel2Layout.createSequentialGroup()
+ .add(jLabel32)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(statusTextField,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 621, Short.MAX_VALUE))
+ .add(org.jdesktop.layout.GroupLayout.LEADING,
jPanel2Layout.createSequentialGroup()
+ .add(jLabel35)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(searchTextField,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(highlightButton)))
+ .addContainerGap())
+ );
+ jPanel2Layout.setVerticalGroup(
+
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel2Layout.createSequentialGroup()
+
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel32)
+ .add(statusTextField,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(jScrollPane2,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+
.add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel35)
+ .add(highlightButton)
+ .add(searchTextField,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
+ );
+
+
+ jPanel2.add(new JLabel("bottom"));
+
+ return jPanel2;
+ }
+
+ private void highlightButtonActionPerformed(java.awt.event.ActionEvent
evt) {
+
+ String toBeHighlighted = searchTextField.getText();
+
+ if (toBeHighlighted != null &&
+ !toBeHighlighted.equalsIgnoreCase("")) {
+
+ TextHighlighter textHighlighter = new TextHighlighter();
+ textHighlighter.highlight(resultTextArea, toBeHighlighted, false,
false);
+
+ //goto highlighted area
+ // -> done in the TextHighlighter class
}
-
- @Override
- protected void addWidgets() {
- demo = new JTextArea("Looking glass main panel ");
- setLayout(new BorderLayout());
- add(new JScrollPane(demo),BorderLayout.CENTER);
- UserDataPanel p = new UserDataPanel(
- getModel().getUserData(),
- new String[][] {{"param1","Parameter 1"}},
- true
- );
- p.setBorder(BorderFactory.createTitledBorder("Query
parameters"));
- add(p,BorderLayout.NORTH);
+
+ }
+
+
+ public void stateChanged(ChangeEvent event) {
+
+ //System.out.println(System.currentTimeMillis());
+ busy = false;
+ if (deviceList.getSelectedIndex() > -1) {
+
+ String result = model.getResult((String)deviceList.
+ getSelectedValue());
+ resultTextArea.setText(result.replaceAll("@@@", "\n"));
+
+ String status = model.getStatus((String)deviceList.
+ getSelectedValue());
+ statusTextField.setText(status);
+
+ parameterListModel.removeAllElements();
+
+
+
+ } else {
+ String result = "Please select the device in the list above " +
+ "of which the result has to be displayed.";
+ resultTextArea.setText(result.replaceAll("@@@","\n"));
+
+ statusTextField.setText("Please select the device in the list " +
+ "above of which the result has to be displayed.");
+
+ parameterListModel.removeAllElements();
+
+
+ commandTextField.setText(model.getCommand(
+ (String)functionCombobox.getSelectedItem(),
+ (String)deviceCombobox.getSelectedItem()));
+
+ Iterator it = parameterListModel.getAllElements().iterator();
+ while (it.hasNext())
+ commandTextField.setText(commandTextField.getText()
+ + " " + (String)it.next());
}
-
-
+
+ searchTextField.setEnabled(true);
+ highlightButton.setEnabled(true);
+
+ queriedDeviceComboboxModel1.initComboBox
+ (deviceListModel.getAllElements());
+
+ queriedDeviceComboboxModel2.initComboBox
+ (deviceListModel.getAllElements());
+
+
+
+ }
+
+ /**
+ * Code for the handling when a MP has been chosen from the
+ * Combobox
+ **/
+ private void
webserviceComboboxActionperformedHandler(java.awt.event.ActionEvent evt) {
+
+ parameterStringTextField.setText("");
+
+ this.deviceCombobox.removeAllItems();
+ this.deviceComboboxModel.removeAllElements();
+ this.functionCombobox.removeAllItems();
+ this.functionComboboxModel.removeAllElements();
+
+ //Code for the infite Progress Panel
+ SwingUtilities.invokeLater(new Runnable() { //execute our task
+
+ public void run() {
+
+ try {
+
+ //infiniteProgressPanel.start();
+ progressBar.setString("Contacting MP ...");
+ progressBar.setStringPainted(true);
+ progressBar.setIndeterminate(true);
+ Thread performer = new Thread(new Runnable(){
+
+ public void run() {
+
+ if (webserviceComboboxModel.getSelectedItem() !=
null) {
+
+ String url =
webserviceComboboxModel.getUrl((String)webserviceComboboxModel.getSelectedItem());
+ deviceComboboxModel.initComboBox(url);
+ deviceCombobox.setEnabled(true);
+
+ } else {
+
+ deviceComboboxModel.removeAllElements();
+ deviceCombobox.setEnabled(false);
+
+ }
+
+ //infiniteProgressPanel.stop();
+ progressBar.setString("");
+ progressBar.setStringPainted(false);
+ progressBar.setIndeterminate(false);
+
+
+ }
+
+ });
+
+ performer.start();
+
+ } catch (Exception e) {
+
+ }}});
+
+ }
+
+ /**
+ * Code for the handling when a device has been chosen from the
+ * Combobox
+ **/
+ private void deviceComboboxHandler(java.awt.event.ActionEvent evt) {
+
+ parameterStringTextField.setText("");
+
+ if (deviceComboboxModel.getSelectedItem() != null) {
+
+ functionComboboxModel.initComboBox
+ ((String)deviceCombobox.getSelectedItem());
+ functionCombobox.setEnabled(true);
+ addDeviceButton.setEnabled(true);
+
+ } else {
+
+ functionComboboxModel.initComboBox
+ ((String)deviceCombobox.getSelectedItem());
+ functionCombobox.setEnabled(false);
+ addDeviceButton.setEnabled(false);
+
+ }
+
+ }
+
+ /**
+ * Code to be executed when a specific function has been selected
+ **/
+ private void functionComboboxActionPerformed(java.awt.event.ActionEvent
evt) {
+
+ if (this.functionCombobox.getSelectedIndex() > -1) {
+
model.setSelectedCommand((String)functionCombobox.getSelectedItem());
+ this.sendButton.setEnabled(true);
+
+ this.parameterStringTextField.setEnabled(true);
+
+ descriptionTextField.setText(model.getDescription(
+ (String)functionCombobox.getSelectedItem(),
+ (String)deviceCombobox.getSelectedItem()));
+ syntaxTextField.setText(model.getSyntax(
+ (String)functionCombobox.getSelectedItem(),
+ (String)deviceCombobox.getSelectedItem()));
+ commandTextField.setText(model.getCommand(
+ (String)functionCombobox.getSelectedItem(),
+ (String)deviceCombobox.getSelectedItem()));
+
+
+ } else {
+ this.sendButton.setEnabled(false);
+
+ this.parameterStringTextField.setEnabled(false);
+
+
+ descriptionTextField.setText("N/A");
+ syntaxTextField.setText("N/A");
+ commandTextField.setText("N/A");
+ parameterStringTextField.setText("");
+
+ }
+ deviceList.repaint();
+ }
+
+ /**
+ * Code for the clearance of all the input and output fields in the
application
+ **/
+ private void clearButtonActionPerformed(java.awt.event.ActionEvent evt) {
+
+ parameterListModel.removeAllElements();
+ deviceListModel.removeAllElements();
+
+
+ functionCombobox.setEnabled(false);
+ functionComboboxModel.removeAllElements();
+
+ deviceCombobox.setEnabled(false);
+ deviceComboboxModel.removeAllElements();
+
+ webserviceComboboxModel.setSelectedItem(null);
+
+ resultTextArea.setText(null);
+
+ statusTextField.setText(null);
+
+ addDeviceButton.setEnabled(false);
+ removeDeviceButton.setEnabled(false);
+
+ parameterStringTextField.setEnabled(false);
+ parameterStringTextField.setText("");
+
+ searchTextField.setEnabled(false);
+ highlightButton.setEnabled(false);
+
+ }
+
+
+ /**
+ * Code for the executing of a query to the webservice. It used the input
+ * from the different comboboxes and parameterList
+ **/
+ private void sendButtonActionPerformed(java.awt.event.ActionEvent evt) {
+
+ if (!(deviceListModel.
+ contains((String)deviceCombobox.getSelectedItem()))) {
+
+ deviceListModel.
+ addElement((String)deviceCombobox.getSelectedItem());
+
+ }
+
+ if (deviceListModel.getSize() > 0) {
+
+ removeDeviceButton.setEnabled(true);
+
+ }
+
+ //ProgressPanel code
+ SwingUtilities.invokeLater(new Runnable() { //execute our task
+
+ public void run() {
+
+ try {
+
+ progressBar.setString("Contacting MP ...");
+ progressBar.setStringPainted(true);
+ progressBar.setIndeterminate(true);
+
+ Thread performer = new Thread(new Runnable(){
+
+ public void run() {
+
+ busy = true;
+
+ if (webserviceComboboxModel != null &&
+ webserviceComboboxModel.getSelectedItem()
+ != null &&
+ deviceComboboxModel.getSelectedItem()
+ != null &&
+ functionComboboxModel.getSelectedItem()
+ != null) {
+ /**
+ * Document request = SOAPBuilder.
+ * createRequestDocument(deviceListModel.
+ * getAllElements(),
+ * (String)functionCombobox.
+ * getSelectedItem(), parameterListModel.
+ * getAllElements());
+ */
+ Document request = null;
+ if (functionComboboxModel.isSymbolic()) {
+ //request =
SOAPBuilder.createRequestDocument(
+ // deviceListModel.getAllElements(),
+ //
(String)functionCombobox.getSelectedItem(),
+ //
parameterStringTextField.getText());
+ JOptionPane.showMessageDialog(null,
+ "Sending a request ",
+ "Sending...",
+ JOptionPane.INFORMATION_MESSAGE);
+ } else {
+ //System.out.println("TEST: " +
functionComboboxModel.getSymbolic((String)functionCombobox.getSelectedItem(),
(String)deviceCombobox.getSelectedItem()));
+ //request =
SOAPBuilder.createRequestDocument(
+ //
deviceListModel.getAllElements(),
+ //
functionComboboxModel.getSymbolic((String)functionCombobox.getSelectedItem(),
(String)deviceCombobox.getSelectedItem()),
+ //
parameterStringTextField.getText());
+ JOptionPane.showMessageDialog(null,
+ "Sending a request ",
+ "Sending...",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+
+ try {
+
//System.out.println(System.currentTimeMillis());
+ model.send(request,
webserviceComboboxModel.getUrl((String)webserviceComboboxModel.getSelectedItem()),deviceListModel.getSize()*2);
// request eventType + resultcode for every device
+ } catch (Exception ex) {
+ JOptionPane.showMessageDialog(null,
+ "An error occured while executing
" +
+ "your task!",
+ "Sending ---- Error",
+ JOptionPane.ERROR_MESSAGE);
+ resultTextArea.setText("An error occured
" +
+ "-- probably too many requests!");
+ ex.printStackTrace();
+ }
+
+ }
+
+ while (busy) {
+
+ try {
+
+ Thread.sleep(1000);
+
+ } catch (InterruptedException ex) {
+
+ ex.printStackTrace();
+
+ }
+
+ }
+
+ progressBar.setString("");
+ progressBar.setStringPainted(false);
+ progressBar.setIndeterminate(false);
+
+ }
+
+ });
+
+ performer.start();
+
+ } catch (Exception e) {
+
+ }}});
+
+ }
+
+ private void addDeviceButtonActionPerformed(java.awt.event.ActionEvent
evt) {
+
+ if (deviceCombobox.getSelectedIndex() > -1) {
+
+ if (!deviceListModel.getAllElements().contains
+ ((String)deviceCombobox.getSelectedItem())) {
+
+ deviceListModel.addElement
+ ((String)deviceCombobox.getSelectedItem());
+
+ resultTextArea.setText(null);
+ statusTextField.setText(null);
+
+ }
+ }
+
+ if (deviceListModel.getSize() > 0) {
+
+ removeDeviceButton.setEnabled(true);
+
+ }
+ }
+
+ private void
removeDeviceButtonActionPerformed(java.awt.event.ActionEvent evt) {
+
+ if (deviceList.getSelectedIndex() > -1) {
+
+ deviceListModel.remove(deviceList.getSelectedIndex());
+
+ }
+
+ if (deviceListModel.getSize() <= 0) {
+
+ removeDeviceButton.setEnabled(false);
+ resultTextArea.setText(null);
+ statusTextField.setText(null);
+
+ }
+ }
+
+ public boolean selectedCommandIsSupportedBySelectedDevices(String value)
{
+
+ boolean supported = true;
+
+ // selected devices
+ List selectedDevices = deviceListModel.getAllElements();
+ Iterator it = selectedDevices.iterator();
+
+ // all devices which are supported by the MP
+ List devices = model.getDevices();
+
+ Vector functions = null;
+ Iterator commands = null;
+ Command comm = null;
+
+ if (!selectedDevices.isEmpty()){
+ while (it.hasNext() && supported){
+ // the functions supported by one of the selected devices
+ String device = (String) it.next();
+ functions = model.getFunctions(device);
+ commands = functions.iterator();
+
+ boolean supportedByDevice = false;
+ while (commands.hasNext() && !supportedByDevice){
+ comm = (Command) commands.next();
+ //System.out.println("Description: " +
comm.getDescription() + " and value: "+value);
+ //System.out.println("Function: " + comm.getFunction() +
" and value: "+value);
+ if (value.startsWith(comm.getFunction()) ||
value.equals(comm.getDescription()))
+ supportedByDevice = true;
+ }
+ if (!supportedByDevice)
+ supported = false;
+ }
+
+ }
+
+ return supported;
+
+ }
+
+
+ /**
+ * Housekeeping code for ChangeListeners
+ **/
+ public void addChangeListener(ChangeListener l) {
+
+ listenerList.add(ChangeListener.class, l);
+
+ }
+
+ public void removeChangeListener(ChangeListener l) {
+
+ listenerList.remove(ChangeListener.class, l);
+
+ }
+
+ public void fireStateChanged() {
+
+ Object[] listeners = listenerList.getListenerList();
+ for (int i=listeners.length-2; i >= 0; i-=2) {
+
+ if (listeners[i] == ChangeListener.class)
+ ((ChangeListener)listeners[i+1])
+ .stateChanged(changeEvent);
+
+ }
+
+ }
}
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassTab.java
===================================================================
---
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassTab.java
2007-10-01 14:20:42 UTC (rev 2884)
+++
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/LookingGlassTab.java
2007-10-02 09:55:59 UTC (rev 2885)
@@ -40,6 +40,10 @@
import org.perfsonar.perfsonarui.ui.actions.MetadataRequestAction;
import org.perfsonar.perfsonarui.ui.actions.PerfsonarRequestAction;
+/**
+ * @author Stijn Melis
+ * @author Nina Jeliazkova (skeleton framework)
+ */
public class LookingGlassTab extends PerfsonarModel {
@Override
@@ -80,7 +84,7 @@
}
@Override
public String toString() {
- return "Looking glass";
+ return "Looking Glass";
}
@Override
public ITimeValueResponse createTimeValueResponseListener() {
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/Command.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/DeviceComboboxModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/DeviceListModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/FunctionComboboxModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/LatestResultListModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/LinkedWebserviceComboboxModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/LookingGlassClientModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/ParameterListModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/QueriedDeviceComboboxModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/WebserviceComboboxModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/model/WebservicesTableModel.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/support/CommandComboboxRenderer.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/support/StringComparator.java
Added:
branches/perfsonarui/src/org/perfsonar/perfsonarui/lookingglass/support/TextHighlighter.java
Modified:
branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/PerfSonarApp.java
===================================================================
--- branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/PerfSonarApp.java
2007-10-01 14:20:42 UTC (rev 2884)
+++ branches/perfsonarui/src/org/perfsonar/perfsonarui/ui/PerfSonarApp.java
2007-10-02 09:55:59 UTC (rev 2885)
@@ -49,7 +49,7 @@
import org.perfsonar.perfsonarui.AbstractMARequest;
import org.perfsonar.perfsonarui.PSLogger;
import org.perfsonar.perfsonarui.SmartMARequest;
-import org.perfsonar.perfsonarui.bwctl.BWCTLPerfsonarTab;
+//import org.perfsonar.perfsonarui.bwctl.BWCTLPerfsonarTab;
import org.perfsonar.perfsonarui.demo.DemoPlugin;
import org.perfsonar.perfsonarui.demo.DemoPluginMainPanel;
import org.perfsonar.perfsonarui.ippm.IPPMPerfsonarModel;
- perfsonar: r2885 - in branches/perfsonarui: jars/xml src/org/perfsonar/perfsonarui/config src/org/perfsonar/perfsonarui/lookingglass src/org/perfsonar/perfsonarui/lookingglass/model src/org/perfsonar/perfsonarui/lookingglass/support src/org/perfsonar/perfsonarui/ui, svnlog, 10/02/2007
Archive powered by MHonArc 2.6.16.