[Tinyos-2-commits] CVS: tinyos-2.x/apps/AntiTheft/java
AntiTheftGui.java, NONE, 1.1 BagPanel.java, NONE, 1.1 Makefile,
NONE, 1.1 run, NONE, 1.1
David Gay
idgay at users.sourceforge.net
Wed Apr 4 14:01:14 PDT 2007
Update of /cvsroot/tinyos/tinyos-2.x/apps/AntiTheft/java
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11273
Added Files:
AntiTheftGui.java BagPanel.java Makefile run
Log Message:
start to gui
--- NEW FILE: AntiTheftGui.java ---
// $Id: AntiTheftGui.java,v 1.1 2007/04/04 21:01:11 idgay Exp $
/* tab:4
* "Copyright (c) 2000-2003 The Regents of the University of California.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose, without fee, and without written agreement is
* hereby granted, provided that the above copyright notice, the following
* two paragraphs and the author appear in all copies of this software.
*
* IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
* CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
*
* Copyright (c) 2002-2007 Intel Corporation
* All rights reserved.
*
* This file is distributed under the terms in the attached INTEL-LICENSE
* file. If you do not find these files, copies can be found by writing to
* Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,
* 94704. Attention: Intel License Inquiry.
*/
/**
* Description:
* The GUI for the AntiTheft application.
*
* @author Bret Hull
* @author David Gay
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import net.tinyos.packet.*;
public class AntiTheftGui {
JTextArea mssgArea;
JTextField fieldInterval;
JCheckBox detDarkCb, detAccelCb, repLedCb, repSirenCb, repServerCb,
repNeighboursCb;
public AntiTheftGui() {
try {
guiInit();
}
catch(Exception e) {
e.printStackTrace();
System.exit(2);
}
}
private void guiInit() throws Exception {
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.setMinimumSize(new Dimension(500, 250));
mainPanel.setPreferredSize(new Dimension(500, 300));
JScrollPane mssgPanel = new JScrollPane();
mssgPanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
mssgPanel.setAutoscrolls(true);
mssgArea = new JTextArea();
mssgArea.setFont(new java.awt.Font("Monospaced", Font.PLAIN, 20));
mainPanel.add(mssgPanel, BorderLayout.CENTER);
mssgPanel.getViewport().add(mssgArea, null);
BagPanel buttonPanel = new BagPanel();
GridBagConstraints c = buttonPanel.c;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridwidth = GridBagConstraints.REMAINDER;
buttonPanel.makeLabel("Detection", JLabel.CENTER);
c.gridwidth = GridBagConstraints.RELATIVE;
detDarkCb = buttonPanel.makeCheckBox("Dark", true);
c.gridwidth = GridBagConstraints.REMAINDER;
detAccelCb = buttonPanel.makeCheckBox("Movement", false);
buttonPanel.addSeparator(SwingConstants.HORIZONTAL);
buttonPanel.makeLabel("Theft Reports", JLabel.CENTER);
c.gridwidth = GridBagConstraints.RELATIVE;
repLedCb = buttonPanel.makeCheckBox("LED", true);
c.gridwidth = GridBagConstraints.REMAINDER;
repSirenCb = buttonPanel.makeCheckBox("Siren", false);
c.gridwidth = GridBagConstraints.RELATIVE;
repServerCb = buttonPanel.makeCheckBox("Server", false);
c.gridwidth = GridBagConstraints.REMAINDER;
repNeighboursCb = buttonPanel.makeCheckBox("Neighbours", false);
buttonPanel.addSeparator(SwingConstants.HORIZONTAL);
buttonPanel.makeLabel("Interval", JLabel.CENTER);
fieldInterval = buttonPanel.makeTextField(10, null);
fieldInterval.setText(Integer.toString(Constants.DEFAULT_CHECK_INTERVAL));
// Send settings button
ActionListener settingsAction = new ActionListener() {
public void actionPerformed(ActionEvent e) {
updateSettings();
}
};
buttonPanel.makeButton("Update", settingsAction);
mainPanel.add(buttonPanel, BorderLayout.EAST);
// The frame part
JFrame frame = new JFrame("AntiTheft");
frame.setSize(mainPanel.getPreferredSize());
frame.getContentPane().add(mainPanel);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
});
}
public synchronized void theft(String mssg) {
mssgArea.append(mssg + "\n");
mssgArea.setCaretPosition(mssgArea.getDocument().getLength());
}
public void updateSettings() { }
public static void main(String[] args) {
AntiTheftGui me = new AntiTheftGui();
}
}
--- NEW FILE: BagPanel.java ---
// $Id: BagPanel.java,v 1.1 2007/04/04 21:01:11 idgay Exp $
/* tab:4
* Copyright (c) 2007 Intel Corporation
* All rights reserved.
*
* This file is distributed under the terms in the attached INTEL-LICENSE
* file. If you do not find these files, copies can be found by writing to
* Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,
* 94704. Attention: Intel License Inquiry.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* A GridBagLayout based panel with convenience methods for
* making various swing items. These methods also ensure a
* consistent appearance.
*
* @author David Gay
*/
public class BagPanel extends JPanel {
Font boldFont = new Font("Dialog", Font.BOLD, 12);
Font normalFont = new Font("Dialog", Font.PLAIN, 12);
GridBagLayout bag;
GridBagConstraints c;
public BagPanel() {
bag = new GridBagLayout();
setLayout(bag);
c = new GridBagConstraints();
}
public JButton makeButton(String label, ActionListener action) {
JButton button = new JButton();
button.setText(label);
button.setFont(boldFont);
button.addActionListener(action);
bag.setConstraints(button, c);
add(button);
return button;
}
public JCheckBox makeCheckBox(String label, boolean selected) {
JCheckBox box = new JCheckBox(label, selected);
box.setFont(normalFont);
bag.setConstraints(box, c);
add(box);
return box;
}
public JLabel makeLabel(String txt, int alignment) {
JLabel label = new JLabel(txt, alignment);
label.setFont(boldFont);
bag.setConstraints(label, c);
add(label);
return label;
}
public JTextField makeTextField(int columns, ActionListener action) {
JTextField tf = new JTextField(columns);
tf.setFont(normalFont);
tf.setMaximumSize(tf.getPreferredSize());
tf.addActionListener(action);
bag.setConstraints(tf, c);
add(tf);
return tf;
}
public void addSeparator(int axis) {
JSeparator sep = new JSeparator(axis);
bag.setConstraints(sep, c);
add(sep);
}
}
--- NEW FILE: Makefile ---
GEN=SettingsMsg.java AlertMsg.java Constants.java
ANTITHEFT_H=../Nodes/antitheft.h
all: antitheft.jar
antitheft.jar: AntiTheftGui.class
jar cf $@ *.class
SettingsMsg.java: $(ANTITHEFT_H)
mig -target=null -java-classname=SettingsMsg java $(ANTITHEFT_H) settings -o $@
AlertMsg.java: $(ANTITHEFT_H)
mig -target=null -java-classname=AlertMsg java $(ANTITHEFT_H) alert -o $@
Constants.java: $(ANTITHEFT_H)
ncg -target=null -java-classname=Constants java $(ANTITHEFT_H) antitheft.h -o $@
AntiTheftGui.class: $(wildcard *.java) $(GEN)
javac *.java
clean:
rm -f *.class $(GEN)
veryclean: clean
rm antitheft.jar
--- NEW FILE: run ---
#!/bin/sh
if cygpath -w / >/dev/null 2>/dev/null; then
CLASSPATH="antitheft.jar;$CLASSPATH"
else
CLASSPATH="antitheft.jar:$CLASSPATH"
fi
java AntiTheftGui
More information about the Tinyos-2-commits
mailing list