Added stop button to stop any running commands

This commit is contained in:
nifi 2010-09-28 23:32:51 +00:00
parent dde50b028a
commit a244cf647e

View file

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: NodeControl.java,v 1.1 2010/09/28 23:12:18 nifi Exp $ * $Id: NodeControl.java,v 1.2 2010/09/28 23:32:51 nifi Exp $
* *
* ----------------------------------------------------------------- * -----------------------------------------------------------------
* *
@ -34,8 +34,8 @@
* *
* Authors : Niclas Finne * Authors : Niclas Finne
* Created : 27 sep 2010 * Created : 27 sep 2010
* Updated : $Date: 2010/09/28 23:12:18 $ * Updated : $Date: 2010/09/28 23:32:51 $
* $Revision: 1.1 $ * $Revision: 1.2 $
*/ */
package se.sics.contiki.collect.gui; package se.sics.contiki.collect.gui;
@ -63,19 +63,31 @@ import se.sics.contiki.collect.Visualizer;
*/ */
public class NodeControl implements Visualizer { public class NodeControl implements Visualizer {
private final CollectServer server;
private final String category; private final String category;
private final JPanel panel; private final JPanel panel;
private final JLabel statusLabel;
public NodeControl(final CollectServer server, String category) { public NodeControl(CollectServer server, String category) {
this.server = server;
this.category = category; this.category = category;
this.panel = new JPanel(new BorderLayout()); this.panel = new JPanel(new BorderLayout());
final JFormattedTextField intervalField = new JFormattedTextField(new Integer(60)); final JFormattedTextField intervalField = new JFormattedTextField(new Integer(60));
final JFormattedTextField randomField = new JFormattedTextField(new Integer(2)); final JFormattedTextField randomField = new JFormattedTextField(new Integer(2));
final JFormattedTextField reportsField = new JFormattedTextField(new Integer(0)); final JFormattedTextField reportsField = new JFormattedTextField(new Integer(0));
final JLabel statusLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("", JLabel.CENTER);
statusLabel.setOpaque(true); statusLabel.setOpaque(true);
JButton stopButton = new JButton("Send stop to nodes");
stopButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendCommand("netcmd killall");
}
});
JButton sendButton = new JButton("Send command to nodes"); JButton sendButton = new JButton("Send command to nodes");
sendButton.addActionListener(new ActionListener() { sendButton.addActionListener(new ActionListener() {
@ -84,18 +96,8 @@ public class NodeControl implements Visualizer {
int random = (Integer)randomField.getValue(); int random = (Integer)randomField.getValue();
int reports = (Integer)reportsField.getValue(); int reports = (Integer)reportsField.getValue();
String cmd = "netcmd { repeat " + reports sendCommand("netcmd { repeat " + reports + " " + interval
+ " " + interval + " { randwait " + random + " { randwait " + random + " sky-alldata | blink | send } }");
+ " sky-alldata | blink | send } }";
statusLabel.setBackground(Color.white);
statusLabel.setBorder(LineBorder.createBlackLineBorder());
if (server.sendToNode(cmd)) {
statusLabel.setForeground(Color.black);
statusLabel.setText("Sent command '" + cmd + "'");
} else {
statusLabel.setForeground(Color.red);
statusLabel.setText("Failed to send command. No serial connection.");
}
} }
}); });
@ -147,6 +149,22 @@ public class NodeControl implements Visualizer {
controlPanel.add(statusLabel, c); controlPanel.add(statusLabel, c);
panel.add(controlPanel, BorderLayout.NORTH); panel.add(controlPanel, BorderLayout.NORTH);
controlPanel = new JPanel();
controlPanel.add(stopButton);
panel.add(controlPanel, BorderLayout.SOUTH);
}
protected void sendCommand(String command) {
statusLabel.setBackground(Color.white);
statusLabel.setBorder(LineBorder.createBlackLineBorder());
if (server.sendToNode(command)) {
statusLabel.setForeground(Color.black);
statusLabel.setText("Sent command '" + command + "'");
} else {
statusLabel.setForeground(Color.red);
statusLabel.setText("Failed to send command. No serial connection.");
}
} }
public String getCategory() { public String getCategory() {