//
// This file is part of the prose package.
//
// The contents of this file are subject to the Mozilla Public License
// Version 1.1 (the "License"); you may not use this file except in
// compliance with the License. You may obtain a copy of the License at
// http://www.mozilla.org/MPL/
//
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
// for the specific language governing rights and limitations under the
// License.
//
// The Original Code is prose.
//
// The Initial Developer of the Original Code is Andrei Popovici. Portions
// created by Andrei Popovici are Copyright (C) 2002 Andrei Popovici.
// All Rights Reserved.
//
// Contributor(s):
// $Id: AddVMDialog.java,v 1.3 2008/11/18 11:43:39 anicoara Exp $
// ==============================================================
//
package ch.ethz.prose.tools;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
/**
* @author pschoch
*/
public class AddVMDialog extends javax.swing.JDialog {
private static final long serialVersionUID = 3256728398360556336L;
private String nameVM = null;
private String ip = "";
private String port = "5000";
/** Creates new form AddVMDialog */
public AddVMDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
customizeComponents();
}
protected class MyDocumentListener implements DocumentListener {
private String which;
public MyDocumentListener(String which) {
this.which = which;
}
public void insertUpdate(DocumentEvent e) {
displayEditInfo(e);
}
public void removeUpdate(DocumentEvent e) {
displayEditInfo(e);
}
public void changedUpdate(DocumentEvent e) {
// Plain Text components don't fire this events.
}
private void displayEditInfo(DocumentEvent e) {
String text = null;
Document doc = (Document)e.getDocument();
try {
text = doc.getText(0, doc.getLength());
}
catch (BadLocationException es) {
throw new Error("bad location in AddVMDialog");
}
if (which.equals("name"))
nameVM = text;
else if (which.equals("ip"))
ip = text;
else if (which.equals("port"))
port = text;
else
throw new RuntimeException("wrong label: "+which);
}
}
/**
* This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
input = new javax.swing.JPanel();
namePane = new javax.swing.JPanel();
nameLabel = new javax.swing.JLabel();
nameTextField = new javax.swing.JTextField();
ipPane = new javax.swing.JPanel();
ipLabel = new javax.swing.JLabel();
ipTextField = new javax.swing.JTextField();
portPane = new javax.swing.JPanel();
portLabel = new javax.swing.JLabel();
portTextField = new javax.swing.JTextField();
buttons = new javax.swing.JPanel();
addButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
setTitle("Add new Virtual Machine");
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setName("addVMDialog");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
input.setLayout(new javax.swing.BoxLayout(input, javax.swing.BoxLayout.Y_AXIS));
input.setPreferredSize(new java.awt.Dimension(300, 200));
input.setMinimumSize(new java.awt.Dimension(300, 200));
namePane.setLayout(new javax.swing.BoxLayout(namePane, javax.swing.BoxLayout.X_AXIS));
namePane.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(5, 10, 5, 10)));
namePane.setAlignmentX(0.0F);
namePane.setMaximumSize(new java.awt.Dimension(300, 58));
nameLabel.setText("Name:");
nameLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
nameLabel.setPreferredSize(new java.awt.Dimension(80, 29));
nameLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 10)));
nameLabel.setMinimumSize(new java.awt.Dimension(100, 29));
nameLabel.setMaximumSize(new java.awt.Dimension(100, 29));
namePane.add(nameLabel);
nameTextField.setToolTipText("name of the VM");
nameTextField.setAlignmentX(1.0F);
nameTextField.setPreferredSize(new java.awt.Dimension(200, 29));
nameTextField.setMaximumSize(new java.awt.Dimension(200, 29));
nameTextField.setMinimumSize(new java.awt.Dimension(200, 29));
namePane.add(nameTextField);
input.add(namePane);
ipPane.setLayout(new javax.swing.BoxLayout(ipPane, javax.swing.BoxLayout.X_AXIS));
ipPane.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(5, 10, 5, 10)));
ipPane.setAlignmentX(0.0F);
ipPane.setMaximumSize(new java.awt.Dimension(300, 58));
ipLabel.setText("IP:");
ipLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
ipLabel.setPreferredSize(new java.awt.Dimension(80, 29));
ipLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 10)));
ipLabel.setMinimumSize(new java.awt.Dimension(100, 29));
ipLabel.setMaximumSize(new java.awt.Dimension(100, 29));
ipPane.add(ipLabel);
ipTextField.setToolTipText("IP-Address OR www-Address OR Hostname");
ipTextField.setAlignmentX(1.0F);
ipTextField.setPreferredSize(new java.awt.Dimension(200, 29));
ipTextField.setMaximumSize(new java.awt.Dimension(200, 29));
ipTextField.setMinimumSize(new java.awt.Dimension(200, 29));
ipPane.add(ipTextField);
input.add(ipPane);
portPane.setLayout(new javax.swing.BoxLayout(portPane, javax.swing.BoxLayout.X_AXIS));
portPane.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(5, 10, 5, 10)));
portPane.setPreferredSize(new java.awt.Dimension(222, 29));
portPane.setMinimumSize(new java.awt.Dimension(222, 29));
portPane.setAlignmentX(0.0F);
portPane.setMaximumSize(new java.awt.Dimension(300, 58));
portLabel.setText("Port:");
portLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
portLabel.setPreferredSize(new java.awt.Dimension(60, 29));
portLabel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 10)));
portLabel.setMinimumSize(new java.awt.Dimension(100, 29));
portLabel.setMaximumSize(new java.awt.Dimension(100, 29));
portPane.add(portLabel);
portTextField.setToolTipText("Portnumber");
portTextField.setText("5000");
portTextField.setPreferredSize(new java.awt.Dimension(200, 29));
portTextField.setMaximumSize(new java.awt.Dimension(200, 29));
portTextField.setMinimumSize(new java.awt.Dimension(200, 29));
portPane.add(portTextField);
input.add(portPane);
getContentPane().add(input, java.awt.BorderLayout.CENTER);
buttons.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 20, 15));
addButton.setMnemonic('A');
addButton.setText("Add");
addButton.setPreferredSize(new java.awt.Dimension(81, 29));
addButton.setMaximumSize(new java.awt.Dimension(81, 29));
addButton.setMinimumSize(new java.awt.Dimension(81, 29));
addButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addButtonActionPerformed(evt);
}
});
addButton.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
addButtonKeyPressed(evt);
}
});
buttons.add(addButton);
cancelButton.setMnemonic('C');
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
buttons.add(cancelButton);
getContentPane().add(buttons, java.awt.BorderLayout.SOUTH);
pack();
}//GEN-END:initComponents
private void addButtonKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_addButtonKeyPressed
if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER)
addButtonAction();
}//GEN-LAST:event_addButtonKeyPressed
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
setVisible(false);
dispose();
}//GEN-LAST:event_cancelButtonActionPerformed
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
addButtonAction();
}//GEN-LAST:event_addButtonActionPerformed
/** Closes the dialog */
private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
setVisible(false);
dispose();
}//GEN-LAST:event_closeDialog
private void addButtonAction() {
try {
((JMultipleProseClient)getOwner()).addTab(nameVM,ip,port,true);
setVisible(false);
dispose();
}
catch (Exception e) {
JMultipleProseClient.showException(this,e);
if (e instanceof java.rmi.RemoteException) {
setVisible(false);
dispose();
}
}
}
private void customizeComponents() {
nameTextField.getDocument().addDocumentListener(new MyDocumentListener("name"));
portTextField.getDocument().addDocumentListener(new MyDocumentListener("port"));
ipTextField.getDocument().addDocumentListener(new MyDocumentListener("ip"));
this.setLocationRelativeTo(this.getParent());
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel nameLabel;
private javax.swing.JPanel portPane;
private javax.swing.JLabel ipLabel;
private javax.swing.JPanel input;
private javax.swing.JTextField ipTextField;
private javax.swing.JButton addButton;
private javax.swing.JPanel buttons;
private javax.swing.JButton cancelButton;
private javax.swing.JTextField portTextField;
private javax.swing.JPanel ipPane;
private javax.swing.JLabel protocolLabel;
private javax.swing.JLabel portLabel;
private javax.swing.JPanel namePane;
private javax.swing.JTextField nameTextField;
private javax.swing.JPanel protocolPane;
private javax.swing.JTextField protocolTextField;
// End of variables declaration//GEN-END:variables
}