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 }