From b49db633f3c877a0382f269d2b9792e3bee1a0ea Mon Sep 17 00:00:00 2001 From: nifi Date: Thu, 14 Oct 2010 18:13:09 +0000 Subject: [PATCH] Added button to connect to serial in the node control panel --- .../sics/contiki/collect/CollectServer.java | 28 +++++++++++++------ .../sics/contiki/collect/gui/NodeControl.java | 18 ++++++++---- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java b/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java index bf39a061c..9f7ef9ff1 100644 --- a/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java +++ b/examples/sky-shell/src/se/sics/contiki/collect/CollectServer.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: CollectServer.java,v 1.28 2010/10/13 22:55:47 nifi Exp $ + * $Id: CollectServer.java,v 1.29 2010/10/14 18:13:09 nifi Exp $ * * ----------------------------------------------------------------- * @@ -34,8 +34,8 @@ * * Authors : Joakim Eriksson, Niclas Finne * Created : 3 jul 2008 - * Updated : $Date: 2010/10/13 22:55:47 $ - * $Revision: 1.28 $ + * Updated : $Date: 2010/10/14 18:13:09 $ + * $Revision: 1.29 $ */ package se.sics.contiki.collect; @@ -128,12 +128,12 @@ public class CollectServer implements SerialConnectionListener { private JFrame window; private JTabbedPane mainPanel; private HashMap categoryTable = new HashMap(); - private JMenuItem serialItem; private JMenuItem runInitScriptItem; private final Visualizer[] visualizers; private final MapPanel mapPanel; private final SerialConsole serialConsole; + private final ConnectSerialAction connectSerialAction; private final MoteProgramAction moteProgramAction; private JFileChooser fileChooser; @@ -182,6 +182,7 @@ public class CollectServer implements SerialConnectionListener { }); moteProgramAction = new MoteProgramAction("Program Nodes..."); + connectSerialAction = new ConnectSerialAction("Connect to serial"); nodeModel = new DefaultListModel(); nodeModel.addElement(""); @@ -585,9 +586,7 @@ public class CollectServer implements SerialConnectionListener { JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); menuBar.add(fileMenu); - serialItem = new JMenuItem("Connect to serial"); - serialItem.addActionListener(new SerialItemHandler()); - fileMenu.add(serialItem); + fileMenu.add(new JMenuItem(connectSerialAction)); fileMenu.add(new JMenuItem(moteProgramAction)); fileMenu.addSeparator(); @@ -872,6 +871,10 @@ public class CollectServer implements SerialConnectionListener { return moteProgramAction; } + public Action getConnectSerialAction() { + return connectSerialAction; + } + protected void setSystemMessage(final String message) { SwingUtilities.invokeLater(new Runnable() { @@ -882,7 +885,8 @@ public class CollectServer implements SerialConnectionListener { } else { window.setTitle(WINDOW_TITLE + " (" + message + ')'); } - serialItem.setText(isOpen ? "Disconnect from serial" : "Connect to serial"); + connectSerialAction.putValue(ConnectSerialAction.NAME, + isOpen ? "Disconnect from serial" : "Connect to serial"); runInitScriptItem.setEnabled(isOpen && serialConnection.isSerialOutputSupported() && hasInitScript()); } @@ -1210,10 +1214,16 @@ public class CollectServer implements SerialConnectionListener { this.sensorDataOutput = null; } - protected class SerialItemHandler implements ActionListener, Runnable { + protected class ConnectSerialAction extends AbstractAction implements Runnable { + + private static final long serialVersionUID = 1L; private boolean isRunning; + public ConnectSerialAction(String name) { + super(name); + } + public void actionPerformed(ActionEvent e) { if (!isRunning) { isRunning = true; diff --git a/examples/sky-shell/src/se/sics/contiki/collect/gui/NodeControl.java b/examples/sky-shell/src/se/sics/contiki/collect/gui/NodeControl.java index 039acfd36..908954990 100644 --- a/examples/sky-shell/src/se/sics/contiki/collect/gui/NodeControl.java +++ b/examples/sky-shell/src/se/sics/contiki/collect/gui/NodeControl.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: NodeControl.java,v 1.6 2010/10/12 16:28:19 nifi Exp $ + * $Id: NodeControl.java,v 1.7 2010/10/14 18:13:10 nifi Exp $ * * ----------------------------------------------------------------- * @@ -34,8 +34,8 @@ * * Authors : Niclas Finne * Created : 27 sep 2010 - * Updated : $Date: 2010/10/12 16:28:19 $ - * $Revision: 1.6 $ + * Updated : $Date: 2010/10/14 18:13:10 $ + * $Revision: 1.7 $ */ package se.sics.contiki.collect.gui; @@ -135,13 +135,20 @@ public class NodeControl implements Visualizer { c.gridy++; c.gridwidth = 1; controlPanel.add(new JLabel("Program Connected Nodes", JLabel.RIGHT), c); - c.gridwidth = 2; + c.gridwidth = 3; c.fill = GridBagConstraints.NONE; controlPanel.add(new JButton(server.getMoteProgramAction()), c); + c.fill = GridBagConstraints.HORIZONTAL; c.gridy++; + c.gridwidth = 1; + controlPanel.add(new JLabel("Serial Connection", JLabel.RIGHT), c); c.gridwidth = 3; + c.fill = GridBagConstraints.NONE; + controlPanel.add(new JButton(server.getConnectSerialAction()), c); c.fill = GridBagConstraints.HORIZONTAL; + + c.gridy++; controlPanel.add(new JSeparator(), c); c.gridy++; @@ -209,7 +216,8 @@ public class NodeControl implements Visualizer { "" + "
  • Connect nodes to USB. Press the Program Nodes... button." + "
  • Disconnect all except one node. " + - "Press the Start Collect button." + + "Press the Connect to Serial button." + + "
  • Press the Start Collect button." + "
  • Press the Send command to nodes button." + "" + "");