00001 package edu.stanford.hci.r3.flash.timelineControl;
00002
00003 import java.awt.BorderLayout;
00004 import java.awt.Component;
00005 import java.awt.event.ActionEvent;
00006 import java.awt.event.ActionListener;
00007
00008 import javax.swing.*;
00009
00010 import edu.stanford.hci.r3.PaperToolkit;
00011 import edu.stanford.hci.r3.util.WindowUtils;
00012 import edu.stanford.hci.r3.util.components.SuperJTextField;
00013
00034 public class FlashControlDebugger {
00035
00039 public static void main(String[] args) {
00040 new FlashControlDebugger();
00041 }
00042
00046 private JFrame control;
00047
00051 private JPanel mainPanel;
00052
00056 private JButton okButton;
00057
00061 private ActionListener sendActionListener;
00062
00066 private FlashControlServer server;
00067
00071 private SuperJTextField textField;
00072
00076 public FlashControlDebugger() {
00077 PaperToolkit.initializeLookAndFeel();
00078
00079 server = new FlashControlServer();
00080
00081 control = new JFrame("Flash UI Controller");
00082 control.setSize(640, 80);
00083 control.setLocation(WindowUtils.getWindowOrigin(control, WindowUtils.DESKTOP_CENTER));
00084 control.add(getMainPanel());
00085 control.setVisible(true);
00086 control.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
00087 }
00088
00092 private Component getMainPanel() {
00093 if (mainPanel == null) {
00094 mainPanel = new JPanel();
00095 }
00096 mainPanel.setLayout(new BorderLayout());
00097 mainPanel.add(getTextField(), BorderLayout.CENTER);
00098 mainPanel.add(getOKButton(), BorderLayout.EAST);
00099 return mainPanel;
00100 }
00101
00105 private Component getOKButton() {
00106 if (okButton == null) {
00107 okButton = new JButton("Send Command");
00108 okButton.addActionListener(getSendAction());
00109 }
00110 return okButton;
00111 }
00112
00116 private ActionListener getSendAction() {
00117 if (sendActionListener == null) {
00118 sendActionListener = new ActionListener() {
00119 public void actionPerformed(ActionEvent e) {
00120 server.sendMessage(textField.getText());
00121 }
00122 };
00123 }
00124 return sendActionListener;
00125 }
00126
00130 private Component getTextField() {
00131 if (textField == null) {
00132 textField = new SuperJTextField();
00133 textField.setBorder(BorderFactory.createEmptyBorder(5, 15, 5, 5));
00134 textField.addActionListener(getSendAction());
00135 }
00136 return textField;
00137 }
00138 }