1 26 27 package ch.ethz.prose.tools; 28 29 import javax.swing.JOptionPane ; 30 import javax.swing.event.DocumentEvent ; 31 import javax.swing.event.DocumentListener ; 32 import javax.swing.text.BadLocationException ; 33 import javax.swing.text.Document ; 34 35 39 public class AddVMDialog extends javax.swing.JDialog { 40 41 private String nameVM = null; 42 private String ip = ""; 43 private String port = "5000"; 44 45 46 47 public AddVMDialog(java.awt.Frame parent, boolean modal) { 48 super(parent, modal); 49 initComponents(); 50 customizeComponents(); 51 } 52 53 protected class MyDocumentListener implements DocumentListener { 54 private String which; 55 public MyDocumentListener(String which) { 56 this.which = which; 57 } 58 public void insertUpdate(DocumentEvent e) { 59 displayEditInfo(e); 60 } 61 public void removeUpdate(DocumentEvent e) { 62 displayEditInfo(e); 63 } 64 public void changedUpdate(DocumentEvent e) { 65 } 67 private void displayEditInfo(DocumentEvent e) { 68 String text = null; 69 Document doc = (Document )e.getDocument(); 70 try 71 { 72 text = doc.getText(0, doc.getLength()); 73 } 74 catch (BadLocationException es) 75 { 76 throw new Error ("bad location in AddVMDialog"); 77 } 78 if (which.equals("name")) 79 nameVM = text; 80 else if (which.equals("ip")) 81 ip = text; 82 else if (which.equals("port")) 83 port = text; 84 else 85 throw new RuntimeException ("wrong label: "+which); 86 } 87 } 88 89 94 private void initComponents() { input = new javax.swing.JPanel (); 96 namePane = new javax.swing.JPanel (); 97 nameLabel = new javax.swing.JLabel (); 98 nameTextField = new javax.swing.JTextField (); 99 ipPane = new javax.swing.JPanel (); 100 ipLabel = new javax.swing.JLabel (); 101 ipTextField = new javax.swing.JTextField (); 102 portPane = new javax.swing.JPanel (); 103 portLabel = new javax.swing.JLabel (); 104 portTextField = new javax.swing.JTextField (); 105 buttons = new javax.swing.JPanel (); 106 addButton = new javax.swing.JButton (); 107 cancelButton = new javax.swing.JButton (); 108 109 setTitle("Add new Virtual Machine"); 110 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 111 setName("addVMDialog"); 112 addWindowListener(new java.awt.event.WindowAdapter () { 113 public void windowClosing(java.awt.event.WindowEvent evt) { 114 closeDialog(evt); 115 } 116 }); 117 118 input.setLayout(new javax.swing.BoxLayout (input, javax.swing.BoxLayout.Y_AXIS)); 119 120 input.setPreferredSize(new java.awt.Dimension (300, 200)); 121 input.setMinimumSize(new java.awt.Dimension (300, 200)); 122 namePane.setLayout(new javax.swing.BoxLayout (namePane, javax.swing.BoxLayout.X_AXIS)); 123 124 namePane.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (5, 10, 5, 10))); 125 namePane.setAlignmentX(0.0F); 126 namePane.setMaximumSize(new java.awt.Dimension (300, 58)); 127 nameLabel.setText("Name:"); 128 nameLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 129 nameLabel.setPreferredSize(new java.awt.Dimension (80, 29)); 130 nameLabel.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (1, 1, 1, 10))); 131 nameLabel.setMinimumSize(new java.awt.Dimension (100, 29)); 132 nameLabel.setMaximumSize(new java.awt.Dimension (100, 29)); 133 namePane.add(nameLabel); 134 135 nameTextField.setToolTipText("name of the VM"); 136 nameTextField.setAlignmentX(1.0F); 137 nameTextField.setPreferredSize(new java.awt.Dimension (200, 29)); 138 nameTextField.setMaximumSize(new java.awt.Dimension (200, 29)); 139 nameTextField.setMinimumSize(new java.awt.Dimension (200, 29)); 140 namePane.add(nameTextField); 141 142 input.add(namePane); 143 144 145 146 147 ipPane.setLayout(new javax.swing.BoxLayout (ipPane, javax.swing.BoxLayout.X_AXIS)); 148 149 ipPane.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (5, 10, 5, 10))); 150 ipPane.setAlignmentX(0.0F); 151 ipPane.setMaximumSize(new java.awt.Dimension (300, 58)); 152 ipLabel.setText("IP:"); 153 ipLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 154 ipLabel.setPreferredSize(new java.awt.Dimension (80, 29)); 155 ipLabel.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (1, 1, 1, 10))); 156 ipLabel.setMinimumSize(new java.awt.Dimension (100, 29)); 157 ipLabel.setMaximumSize(new java.awt.Dimension (100, 29)); 158 ipPane.add(ipLabel); 159 160 ipTextField.setToolTipText("IP-Address OR www-Address OR Hostname"); 161 ipTextField.setAlignmentX(1.0F); 162 ipTextField.setPreferredSize(new java.awt.Dimension (200, 29)); 163 ipTextField.setMaximumSize(new java.awt.Dimension (200, 29)); 164 ipTextField.setMinimumSize(new java.awt.Dimension (200, 29)); 165 ipPane.add(ipTextField); 166 167 input.add(ipPane); 168 169 portPane.setLayout(new javax.swing.BoxLayout (portPane, javax.swing.BoxLayout.X_AXIS)); 170 171 portPane.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (5, 10, 5, 10))); 172 portPane.setPreferredSize(new java.awt.Dimension (222, 29)); 173 portPane.setMinimumSize(new java.awt.Dimension (222, 29)); 174 portPane.setAlignmentX(0.0F); 175 portPane.setMaximumSize(new java.awt.Dimension (300, 58)); 176 portLabel.setText("Port:"); 177 portLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 178 portLabel.setPreferredSize(new java.awt.Dimension (60, 29)); 179 portLabel.setBorder(new javax.swing.border.EmptyBorder (new java.awt.Insets (1, 1, 1, 10))); 180 portLabel.setMinimumSize(new java.awt.Dimension (100, 29)); 181 portLabel.setMaximumSize(new java.awt.Dimension (100, 29)); 182 portPane.add(portLabel); 183 184 portTextField.setToolTipText("Portnumber"); 185 portTextField.setText("5000"); 186 portTextField.setPreferredSize(new java.awt.Dimension (200, 29)); 187 portTextField.setMaximumSize(new java.awt.Dimension (200, 29)); 188 portTextField.setMinimumSize(new java.awt.Dimension (200, 29)); 189 portPane.add(portTextField); 190 191 input.add(portPane); 192 193 getContentPane().add(input, java.awt.BorderLayout.CENTER); 194 195 buttons.setLayout(new java.awt.FlowLayout (java.awt.FlowLayout.CENTER, 20, 15)); 196 197 addButton.setMnemonic('A'); 198 addButton.setText("Add"); 199 addButton.setPreferredSize(new java.awt.Dimension (81, 29)); 200 addButton.setMaximumSize(new java.awt.Dimension (81, 29)); 201 addButton.setMinimumSize(new java.awt.Dimension (81, 29)); 202 addButton.addActionListener(new java.awt.event.ActionListener () { 203 public void actionPerformed(java.awt.event.ActionEvent evt) { 204 addButtonActionPerformed(evt); 205 } 206 }); 207 208 addButton.addKeyListener(new java.awt.event.KeyAdapter () { 209 public void keyPressed(java.awt.event.KeyEvent evt) { 210 addButtonKeyPressed(evt); 211 } 212 }); 213 214 buttons.add(addButton); 215 216 cancelButton.setMnemonic('C'); 217 cancelButton.setText("Cancel"); 218 cancelButton.addActionListener(new java.awt.event.ActionListener () { 219 public void actionPerformed(java.awt.event.ActionEvent evt) { 220 cancelButtonActionPerformed(evt); 221 } 222 }); 223 224 buttons.add(cancelButton); 225 getContentPane().add(buttons, java.awt.BorderLayout.SOUTH); 226 pack(); 227 } 229 private void addButtonKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) 231 addButtonAction(); 232 } 234 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 236 dispose(); 237 } 239 private void addButtonActionPerformed(java.awt.event.ActionEvent evt) { addButtonAction(); 241 } 243 244 private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); 246 dispose(); 247 } 249 private void addButtonAction() 250 { 251 try 252 { 253 ((JMultipleProseClient)getOwner()).addTab(nameVM,ip,port,true); 254 setVisible(false); 255 dispose(); 256 } 257 catch (Exception e) 258 { 259 JMultipleProseClient.showException(this,e); 260 if (e instanceof java.rmi.RemoteException ) 261 { 262 setVisible(false); 263 dispose(); 264 } 265 } 266 } 267 268 private void customizeComponents() 269 { 270 nameTextField.getDocument().addDocumentListener(new MyDocumentListener("name")); 271 portTextField.getDocument().addDocumentListener(new MyDocumentListener("port")); 272 ipTextField.getDocument().addDocumentListener(new MyDocumentListener("ip")); 273 this.setLocationRelativeTo(this.getParent()); 274 } 275 276 277 private javax.swing.JLabel nameLabel; 279 private javax.swing.JPanel portPane; 280 private javax.swing.JLabel ipLabel; 281 private javax.swing.JPanel input; 282 private javax.swing.JTextField ipTextField; 283 private javax.swing.JButton addButton; 284 private javax.swing.JPanel buttons; 285 private javax.swing.JButton cancelButton; 286 private javax.swing.JTextField portTextField; 287 private javax.swing.JPanel ipPane; 288 private javax.swing.JLabel protocolLabel; 289 private javax.swing.JLabel portLabel; 290 private javax.swing.JPanel namePane; 291 private javax.swing.JTextField nameTextField; 292 private javax.swing.JPanel protocolPane; 293 private javax.swing.JTextField protocolTextField; 294 296 } 297 | Popular Tags |