You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2011/10/14 05:11:39 UTC

svn commit: r1183214 - /incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/

Author: lahiru
Date: Fri Oct 14 03:11:39 2011
New Revision: 1183214

URL: http://svn.apache.org/viewvc?rev=1183214&view=rev
Log:
https://issues.apache.org/jira/browse/AIRAVATA-123
AIRAVATA-123-GUI-3.patch

Modified:
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionAdvancedOptionDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/HostDescriptionDialog.java
    incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionAdvancedOptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionAdvancedOptionDialog.java?rev=1183214&r1=1183213&r2=1183214&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionAdvancedOptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionAdvancedOptionDialog.java Fri Oct 14 03:11:39 2011
@@ -5,9 +5,8 @@ import java.awt.FlowLayout;
 import java.awt.Font;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.util.ArrayList;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -26,14 +25,12 @@ import javax.swing.ListSelectionModel;
 import javax.swing.SwingConstants;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
 import javax.swing.table.DefaultTableModel;
 
-import org.apache.airavata.commons.gfac.type.DataType;
-import org.apache.airavata.commons.gfac.type.Parameter;
 import org.apache.airavata.commons.gfac.type.app.ShellApplicationDeployment;
 import org.apache.airavata.xbaya.XBayaEngine;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
 
 public class ApplicationDescriptionAdvancedOptionDialog extends JDialog {
 	private static final long serialVersionUID = 3920479739097405014L;
@@ -48,6 +45,7 @@ public class ApplicationDescriptionAdvan
 	private ShellApplicationDeployment shellApplicationDescription;
 	private DefaultTableModel defaultTableModel;
 	private JButton btnDeleteVariable;
+	private JButton okButton;
 	
 	/**
 	 * Launch the application.
@@ -92,7 +90,7 @@ public class ApplicationDescriptionAdvan
 	private void initGUI() {
 		setTitle("Application Description Advance Options");
 		setModal(true);
-		setBounds(100, 100, 601, 284);
+		setBounds(100, 100, 654, 417);
 		setLocationRelativeTo(null);
 		getContentPane().setLayout(new BorderLayout());
 		{
@@ -100,7 +98,7 @@ public class ApplicationDescriptionAdvan
 			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
 			getContentPane().add(buttonPane, BorderLayout.SOUTH);
 			{
-				JButton okButton = new JButton("Update");
+				okButton = new JButton("Update");
 				okButton.setActionCommand("OK");
 				okButton.addActionListener(new ActionListener() {
 					public void actionPerformed(ActionEvent e) {
@@ -184,12 +182,9 @@ public class ApplicationDescriptionAdvan
 						.addContainerGap()
 						.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
 							.addGroup(gl_panel.createSequentialGroup()
-								.addComponent(lblLocations, GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE)
+								.addComponent(lblLocations, GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE)
 								.addGap(135))
 							.addGroup(gl_panel.createSequentialGroup()
-								.addComponent(label, GroupLayout.PREFERRED_SIZE, 78, GroupLayout.PREFERRED_SIZE)
-								.addGap(215))
-							.addGroup(gl_panel.createSequentialGroup()
 								.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
 									.addGroup(gl_panel.createSequentialGroup()
 										.addComponent(lblStderr, GroupLayout.PREFERRED_SIZE, 80, GroupLayout.PREFERRED_SIZE)
@@ -219,7 +214,8 @@ public class ApplicationDescriptionAdvan
 								.addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false)
 									.addComponent(txtOutputDir)
 									.addComponent(txtInputDir)
-									.addComponent(txtWorkingDir, GroupLayout.PREFERRED_SIZE, 179, GroupLayout.PREFERRED_SIZE))))
+									.addComponent(txtWorkingDir, GroupLayout.PREFERRED_SIZE, 179, GroupLayout.PREFERRED_SIZE)))
+							.addComponent(label, GroupLayout.PREFERRED_SIZE, 227, GroupLayout.PREFERRED_SIZE))
 						.addGap(2)
 						.addComponent(separator_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 						.addPreferredGap(ComponentPlacement.UNRELATED)
@@ -277,12 +273,6 @@ public class ApplicationDescriptionAdvan
 			);
 			
 			tblEnv = new JTable();
-			tblEnv.addKeyListener(new KeyAdapter() {
-				@Override
-				public void keyReleased(KeyEvent arg0) {
-					addNewRowIfLastIsNotEmpty();
-				}
-			});
 			tblEnv.setFillsViewportHeight(true);
 			scrollPane.setViewportView(tblEnv);
 			tblEnv.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -302,6 +292,13 @@ public class ApplicationDescriptionAdvan
 				}
 			};
 			tblEnv.setModel(defaultTableModel);
+			defaultTableModel.addTableModelListener(new TableModelListener(){
+				@Override
+				public void tableChanged(TableModelEvent arg0) {
+					addNewRowIfLastIsNotEmpty();
+				}
+				
+			});
 			tblEnv.getColumnModel().getColumn(0).setPreferredWidth(67);
 			tblEnv.getColumnModel().getColumn(1).setPreferredWidth(158);
 			ListSelectionModel selectionModel = tblEnv.getSelectionModel();
@@ -317,6 +314,8 @@ public class ApplicationDescriptionAdvan
 			gl_panel.setAutoCreateContainerGaps(true);
 			panel.setLayout(gl_panel);
 		}
+		setResizable(false);
+		getRootPane().setDefaultButton(okButton);
 	}
 	
 	private void deleteSelectedRows() {

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java?rev=1183214&r1=1183213&r2=1183214&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ApplicationDescriptionDialog.java Fri Oct 14 03:11:39 2011
@@ -12,6 +12,7 @@ import java.util.List;
 import java.util.regex.Pattern;
 
 import javax.jcr.PathNotFoundException;
+import javax.swing.DefaultListCellRenderer;
 import javax.swing.GroupLayout;
 import javax.swing.GroupLayout.Alignment;
 import javax.swing.JButton;
@@ -112,7 +113,7 @@ public class ApplicationDescriptionDialo
 	}
 	private void iniGUI() {
 		setTitle("New Deployment Description");
-		setBounds(100, 100, 455, 349);
+		setBounds(100, 100, 671, 454);
 		setModal(true);
 		setLocationRelativeTo(null);
 		getContentPane().setLayout(new BorderLayout());
@@ -214,7 +215,7 @@ public class ApplicationDescriptionDialo
 			
 			cmbServiceName = new JComboBox();
 			cmbServiceName.addActionListener(this);
-
+			cmbServiceName.setRenderer(new DefaultListCellRenderer());
 			cmbHostName = new JComboBox();
 			cmbHostName.addActionListener(this);
 			
@@ -248,46 +249,44 @@ public class ApplicationDescriptionDialo
 					.addGroup(gl_panel.createSequentialGroup()
 						.addContainerGap()
 						.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
-							.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
+							.addGroup(gl_panel.createSequentialGroup()
 								.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
 									.addGroup(gl_panel.createSequentialGroup()
-										.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
-											.addGroup(gl_panel.createSequentialGroup()
-												.addGap(12)
-												.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
-													.addComponent(lblApplicationName)
-													.addComponent(lblExecutablePatyh))
-												.addGap(18)
-												.addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false)
-													.addComponent(txtExecPath)
-													.addComponent(txtAppName, GroupLayout.PREFERRED_SIZE, 309, GroupLayout.PREFERRED_SIZE)))
-											.addComponent(separator_1, GroupLayout.PREFERRED_SIZE, 425, GroupLayout.PREFERRED_SIZE)
-											.addComponent(separator, GroupLayout.PREFERRED_SIZE, 425, GroupLayout.PREFERRED_SIZE)
-											.addGroup(gl_panel.createSequentialGroup()
-												.addGap(10)
-												.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
-													.addComponent(btnAdvance)
-													.addGroup(gl_panel.createSequentialGroup()
-														.addComponent(lblTemporaryDirectory)
-														.addPreferredGap(ComponentPlacement.RELATED)
-														.addComponent(txtTempDir, GroupLayout.PREFERRED_SIZE, 305, GroupLayout.PREFERRED_SIZE))))
+										.addGap(12)
+										.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
+											.addComponent(lblApplicationName)
+											.addComponent(lblExecutablePatyh))
+										.addGap(18)
+										.addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false)
+											.addComponent(txtExecPath)
+											.addComponent(txtAppName, GroupLayout.PREFERRED_SIZE, 309, GroupLayout.PREFERRED_SIZE)))
+									.addComponent(separator_1, GroupLayout.PREFERRED_SIZE, 425, GroupLayout.PREFERRED_SIZE)
+									.addComponent(separator, GroupLayout.PREFERRED_SIZE, 425, GroupLayout.PREFERRED_SIZE)
+									.addGroup(gl_panel.createSequentialGroup()
+										.addGap(10)
+										.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
+											.addComponent(btnAdvance)
 											.addGroup(gl_panel.createSequentialGroup()
-												.addGap(20)
-												.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
-													.addComponent(lblService)
-													.addComponent(label_1, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE))
-												.addPreferredGap(ComponentPlacement.RELATED, 47, Short.MAX_VALUE)
-												.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
-													.addComponent(cmbServiceName, GroupLayout.PREFERRED_SIZE, 313, GroupLayout.PREFERRED_SIZE)
-													.addComponent(cmbHostName, GroupLayout.PREFERRED_SIZE, 313, GroupLayout.PREFERRED_SIZE))
-												.addGap(10)))
-										.addContainerGap(12, Short.MAX_VALUE))
+												.addComponent(lblTemporaryDirectory)
+												.addPreferredGap(ComponentPlacement.RELATED)
+												.addComponent(txtTempDir, GroupLayout.PREFERRED_SIZE, 305, GroupLayout.PREFERRED_SIZE))))
 									.addGroup(gl_panel.createSequentialGroup()
-										.addComponent(lblBindThisDeployment)
-										.addContainerGap(234, Short.MAX_VALUE)))
-								.addComponent(blnkbtnCreateNewService, Alignment.TRAILING, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE))
+										.addGap(20)
+										.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
+											.addComponent(lblService)
+											.addComponent(label_1, GroupLayout.PREFERRED_SIZE, 77, GroupLayout.PREFERRED_SIZE))
+										.addPreferredGap(ComponentPlacement.RELATED, 51, Short.MAX_VALUE)
+										.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
+											.addComponent(cmbServiceName, GroupLayout.PREFERRED_SIZE, 313, GroupLayout.PREFERRED_SIZE)
+											.addComponent(cmbHostName, GroupLayout.PREFERRED_SIZE, 313, GroupLayout.PREFERRED_SIZE))
+										.addGap(10))
+									.addComponent(lblBindThisDeployment))
+								.addContainerGap())
+							.addGroup(Alignment.TRAILING, gl_panel.createSequentialGroup()
+								.addComponent(blnkbtnCreateNewService, GroupLayout.PREFERRED_SIZE, 185, GroupLayout.PREFERRED_SIZE)
+								.addContainerGap())
 							.addGroup(Alignment.TRAILING, gl_panel.createSequentialGroup()
-								.addComponent(bayaLinkButton_1, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE)
+								.addComponent(bayaLinkButton_1, GroupLayout.PREFERRED_SIZE, 176, GroupLayout.PREFERRED_SIZE)
 								.addGap(2))))
 			);
 			gl_panel.setVerticalGroup(
@@ -325,7 +324,7 @@ public class ApplicationDescriptionDialo
 							.addComponent(label_1))
 						.addPreferredGap(ComponentPlacement.RELATED)
 						.addComponent(bayaLinkButton_1, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE)
-						.addContainerGap(44, Short.MAX_VALUE))
+						.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 			);
 			gl_panel.setAutoCreateGaps(true);
 			gl_panel.setAutoCreateContainerGaps(true);
@@ -333,10 +332,12 @@ public class ApplicationDescriptionDialo
 			loadServiceDescriptions();
 			loadHostDescriptions();
 		}
+		setResizable(false);
+		getRootPane().setDefaultButton(okButton);
 	}
 
 	private void loadServiceDescriptions(){
-		cmbServiceName.removeAll();
+		cmbServiceName.removeAllItems();
 		setServiceName(null);
 		try {
 			List<ServiceDescription> serviceDescriptions = getJCRComponentRegistry().searchServiceDescription("");
@@ -350,7 +351,7 @@ public class ApplicationDescriptionDialo
 	}
 	
 	private void loadHostDescriptions(){
-		cmbHostName.removeAll();
+		cmbHostName.removeAllItems();
 		setHostName(null);
 		try {
 			List<HostDescription> hostDescriptions = getJCRComponentRegistry().searchHostDescription(".*");

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/HostDescriptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/HostDescriptionDialog.java?rev=1183214&r1=1183213&r2=1183214&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/HostDescriptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/HostDescriptionDialog.java Fri Oct 14 03:11:39 2011
@@ -87,7 +87,7 @@ public class HostDescriptionDialog exten
 
 	private void initGUI() {
 		setTitle("New Host Description");
-		setBounds(100, 100, 448, 129);
+		setBounds(100, 100, 455, 182);
 		setModal(true);
 		setLocationRelativeTo(null);
 		getContentPane().setLayout(new BorderLayout());
@@ -127,10 +127,6 @@ public class HostDescriptionDialog exten
 		{
 			JPanel panel = new JPanel();
 			getContentPane().add(panel, BorderLayout.CENTER);
-			JLabel label = new JLabel("Registry");
-			label.setVisible(false);
-			JComboBox comboBox = new JComboBox();
-			comboBox.setVisible(false);
 			JLabel lblHostName = new JLabel("Host id");
 			JLabel lblHostLocationip = new JLabel("Host address");
 			txtHostLocation = new JTextField();
@@ -149,44 +145,24 @@ public class HostDescriptionDialog exten
 				}
 			});
 			txtHostName.setColumns(10);
-			JSeparator separator = new JSeparator();
-			separator.setVisible(false);
 			GroupLayout gl_panel = new GroupLayout(panel);
 			gl_panel.setHorizontalGroup(
-				gl_panel.createParallelGroup(Alignment.TRAILING)
+				gl_panel.createParallelGroup(Alignment.LEADING)
 					.addGroup(gl_panel.createSequentialGroup()
 						.addGap(22)
 						.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
-							.addGroup(gl_panel.createSequentialGroup()
-								.addComponent(label, GroupLayout.PREFERRED_SIZE, 65, GroupLayout.PREFERRED_SIZE)
-								.addPreferredGap(ComponentPlacement.UNRELATED)
-								.addComponent(comboBox, 0, 341, Short.MAX_VALUE)
-								.addGap(15))
-							.addGroup(Alignment.LEADING, gl_panel.createSequentialGroup()
-								.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
-									.addComponent(lblHostName)
-									.addComponent(lblHostLocationip))
-								.addGap(18)
-								.addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false)
-									.addComponent(txtHostLocation)
-									.addComponent(txtHostName, GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE))
-								.addGap(19)))
-						.addGap(18))
-					.addGroup(Alignment.LEADING, gl_panel.createSequentialGroup()
-						.addContainerGap()
-						.addComponent(separator, GroupLayout.PREFERRED_SIZE, 425, GroupLayout.PREFERRED_SIZE)
-						.addContainerGap(36, Short.MAX_VALUE))
+							.addComponent(lblHostName)
+							.addComponent(lblHostLocationip))
+						.addGap(18)
+						.addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false)
+							.addComponent(txtHostLocation)
+							.addComponent(txtHostName, GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE))
+						.addGap(37))
 			);
 			gl_panel.setVerticalGroup(
 				gl_panel.createParallelGroup(Alignment.LEADING)
-					.addGap(0, 180, Short.MAX_VALUE)
 					.addGroup(gl_panel.createSequentialGroup()
-						.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
-							.addComponent(label)
-							.addComponent(comboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
-						.addPreferredGap(ComponentPlacement.RELATED)
-						.addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
-						.addGap(8)
+						.addGap(31)
 						.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
 							.addComponent(txtHostName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 							.addComponent(lblHostName))
@@ -200,6 +176,8 @@ public class HostDescriptionDialog exten
 			gl_panel.setAutoCreateContainerGaps(true);
 			panel.setLayout(gl_panel);
 		}
+		setResizable(false);
+		getRootPane().setDefaultButton(okButton);
 	}
 
 	public XBayaEngine getEngine() {

Modified: incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java?rev=1183214&r1=1183213&r2=1183214&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java (original)
+++ incubator/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/appwrapper/ServiceDescriptionDialog.java Fri Oct 14 03:11:39 2011
@@ -20,6 +20,7 @@ import javax.swing.DefaultCellEditor;
 import javax.swing.GroupLayout;
 import javax.swing.GroupLayout.Alignment;
 import javax.swing.JButton;
+import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
 import javax.swing.JDialog;
 import javax.swing.JLabel;
@@ -30,8 +31,13 @@ import javax.swing.JTable;
 import javax.swing.JTextField;
 import javax.swing.LayoutStyle.ComponentPlacement;
 import javax.swing.ListSelectionModel;
+import javax.swing.event.CellEditorListener;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.table.TableColumn;
 
@@ -41,9 +47,6 @@ import org.apache.airavata.commons.gfac.
 import org.apache.airavata.commons.gfac.type.parameter.ParameterFactory;
 import org.apache.airavata.xbaya.XBayaEngine;
 import org.apache.airavata.xbaya.component.registry.JCRComponentRegistry;
-import javax.swing.JCheckBox;
-import javax.swing.event.ChangeListener;
-import javax.swing.event.ChangeEvent;
 
 public class ServiceDescriptionDialog extends JDialog {
 
@@ -112,7 +115,7 @@ public class ServiceDescriptionDialog ex
 	
 	private void initGUI() {
 		setTitle("New Service Description");
-		setBounds(100, 100, 463, 386);
+		setBounds(100, 100, 463, 459);
 		setModal(true);
 		setLocationRelativeTo(null);
 		BorderLayout borderLayout = new BorderLayout();
@@ -162,31 +165,32 @@ public class ServiceDescriptionDialog ex
 		});
 		GroupLayout gl_contentPanel = new GroupLayout(contentPanel);
 		gl_contentPanel.setHorizontalGroup(
-			gl_contentPanel.createParallelGroup(Alignment.LEADING)
-				.addGroup(gl_contentPanel.createSequentialGroup()
-					.addContainerGap(196, Short.MAX_VALUE)
-					.addComponent(lblServiceName)
-					.addGap(18)
-					.addComponent(txtServiceName, GroupLayout.PREFERRED_SIZE, 309, GroupLayout.PREFERRED_SIZE)
-					.addGap(30))
+			gl_contentPanel.createParallelGroup(Alignment.TRAILING)
 				.addGroup(gl_contentPanel.createSequentialGroup()
 					.addGap(181)
 					.addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
 					.addContainerGap())
 				.addGroup(gl_contentPanel.createSequentialGroup()
-					.addContainerGap(210, Short.MAX_VALUE)
-					.addGroup(gl_contentPanel.createParallelGroup(Alignment.TRAILING)
-						.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 380, GroupLayout.PREFERRED_SIZE)
-						.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING, false)
-							.addComponent(btnWSDL, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-							.addComponent(btnDeleteParameter, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
-					.addGap(27))
-				.addGroup(gl_contentPanel.createSequentialGroup()
-					.addGap(177)
-					.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING)
-						.addComponent(chckbxAutoGenerateWsdl)
-						.addComponent(lblInputParameters))
-					.addContainerGap(313, Short.MAX_VALUE))
+					.addContainerGap(212, Short.MAX_VALUE)
+					.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING, false)
+						.addGroup(gl_contentPanel.createSequentialGroup()
+							.addGroup(gl_contentPanel.createParallelGroup(Alignment.TRAILING)
+								.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 380, GroupLayout.PREFERRED_SIZE)
+								.addGroup(gl_contentPanel.createSequentialGroup()
+									.addComponent(chckbxAutoGenerateWsdl)
+									.addPreferredGap(ComponentPlacement.RELATED, 91, Short.MAX_VALUE)
+									.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING, false)
+										.addComponent(btnWSDL, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+										.addComponent(btnDeleteParameter, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+							.addGap(27))
+						.addGroup(Alignment.TRAILING, gl_contentPanel.createSequentialGroup()
+							.addGroup(gl_contentPanel.createParallelGroup(Alignment.LEADING)
+								.addComponent(lblInputParameters)
+								.addGroup(gl_contentPanel.createSequentialGroup()
+									.addComponent(lblServiceName)
+									.addGap(18)
+									.addComponent(txtServiceName, GroupLayout.PREFERRED_SIZE, 309, GroupLayout.PREFERRED_SIZE)))
+							.addGap(30))))
 		);
 		gl_contentPanel.setVerticalGroup(
 			gl_contentPanel.createParallelGroup(Alignment.LEADING)
@@ -197,7 +201,7 @@ public class ServiceDescriptionDialog ex
 						.addComponent(txtServiceName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
 					.addPreferredGap(ComponentPlacement.UNRELATED)
 					.addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
-					.addPreferredGap(ComponentPlacement.UNRELATED)
+					.addGap(12)
 					.addComponent(lblInputParameters)
 					.addPreferredGap(ComponentPlacement.RELATED)
 					.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 182, GroupLayout.PREFERRED_SIZE)
@@ -205,27 +209,12 @@ public class ServiceDescriptionDialog ex
 					.addComponent(btnDeleteParameter)
 					.addPreferredGap(ComponentPlacement.UNRELATED)
 					.addGroup(gl_contentPanel.createParallelGroup(Alignment.BASELINE)
-						.addComponent(chckbxAutoGenerateWsdl)
-						.addComponent(btnWSDL))
+						.addComponent(btnWSDL)
+						.addComponent(chckbxAutoGenerateWsdl))
 					.addGap(44))
 		);
 		
 		tblParameters = new JTable();
-		tblParameters.addKeyListener(new KeyAdapter() {
-			@Override
-			public void keyReleased(KeyEvent arg0) {
-				int selectedRow = tblParameters.getSelectedRow();
-				Object parameterIOType = defaultTableModel.getValueAt(selectedRow, 0);
-				Object parameterDataType = defaultTableModel.getValueAt(selectedRow, 2);
-				if (parameterIOType==null || parameterIOType.equals("")){
-					defaultTableModel.setValueAt(getIOStringList()[0],selectedRow, 0);
-				}
-				if (parameterDataType==null || parameterDataType.equals("")){
-					defaultTableModel.setValueAt(getDataTypes()[0],selectedRow, 2);
-				}
-				addNewRowIfLastIsNotEmpty();
-			}
-		});
 		tblParameters.setFillsViewportHeight(true);
 		defaultTableModel = new DefaultTableModel(
 			new Object[][] {
@@ -236,6 +225,30 @@ public class ServiceDescriptionDialog ex
 			}
 		);
 		tblParameters.setModel(defaultTableModel);
+		defaultTableModel.addTableModelListener(new TableModelListener(){
+
+			@Override
+			public void tableChanged(TableModelEvent arg0) {
+				int selectedRow = tblParameters.getSelectedRow();
+				if (selectedRow!=-1) {
+					Object parameterIOType = defaultTableModel.getValueAt(
+							selectedRow, 0);
+					Object parameterDataType = defaultTableModel.getValueAt(
+							selectedRow, 2);
+					if (parameterIOType == null || parameterIOType.equals("")) {
+						defaultTableModel.setValueAt(getIOStringList()[0],
+								selectedRow, 0);
+					}
+					if (parameterDataType == null
+							|| parameterDataType.equals("")) {
+						defaultTableModel.setValueAt(getDataTypes()[0],
+								selectedRow, 2);
+					}
+				}
+				addNewRowIfLastIsNotEmpty();
+			}
+			
+		});
 		TableColumn ioColumn = tblParameters.getColumnModel().getColumn(0);
 		String[] ioStringList = getIOStringList();
 		ioColumn.setCellEditor(new StringArrayComboBoxEditor(ioStringList));
@@ -244,9 +257,9 @@ public class ServiceDescriptionDialog ex
 		DataType[] dataTypeStringList = getDataTypes();
 		datatypeColumn.setCellEditor(new StringArrayComboBoxEditor(dataTypeStringList));
 		
-		tblParameters.getColumnModel().getColumn(1).setPreferredWidth(190);
+		TableColumn parameterNameCol = tblParameters.getColumnModel().getColumn(1);
+		parameterNameCol.setPreferredWidth(190);
 		scrollPane.setViewportView(tblParameters);
-		
 		ListSelectionModel selectionModel = tblParameters.getSelectionModel();
 		selectionModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
 
@@ -308,6 +321,8 @@ public class ServiceDescriptionDialog ex
 				cancelButton.setActionCommand("Cancel");
 			}
 		}
+		setResizable(false);
+		getRootPane().setDefaultButton(okButton);
 	}
 
 	private String[] getIOStringList() {