[162897] Handle multiple selection
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
index 0cd33cb..0b2aead 100644
--- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
+++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/StringArrayTableWizardSection.java
@@ -12,6 +12,7 @@
 package org.eclipse.jst.j2ee.internal.wizard;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import org.eclipse.jface.dialogs.Dialog;
@@ -253,7 +254,8 @@
 			public void selectionChanged(SelectionChangedEvent event) {
 				ISelection selection = event.getSelection();
 				if (editButton != null) {
-					editButton.setEnabled(!selection.isEmpty());
+					boolean enabled = ((IStructuredSelection) selection).size() == 1;
+					editButton.setEnabled(enabled);
 				}
 				removeButton.setEnabled(!selection.isEmpty());
 			}
@@ -276,10 +278,14 @@
 	}
 
 	private void handleEditButtonSelected() {
-		ISelection selection = viewer.getSelection();
-		if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
+		ISelection s = viewer.getSelection();
+		if (!(s instanceof IStructuredSelection))
 			return;
-		Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
+		IStructuredSelection selection = (IStructuredSelection) s;
+		if (selection.size() != 1)
+			return;
+		
+		Object selectedObj = selection.getFirstElement();
 		String[] valuesForText = (String[]) selectedObj;
 		
 		EditStringArrayDialog dialog = new EditStringArrayDialog(getShell(), title, labelsForText, valuesForText);
@@ -292,8 +298,8 @@
 		ISelection selection = viewer.getSelection();
 		if (selection.isEmpty() || !(selection instanceof IStructuredSelection))
 			return;
-		Object selectedObj = ((IStructuredSelection) selection).getFirstElement();
-		removeStringArray(selectedObj);
+		List selectedObj = ((IStructuredSelection) selection).toList();
+		removeStringArrays(selectedObj);
 	}
 	
 	public void addStringArray(String[] stringArray) {
@@ -329,6 +335,12 @@
 		valueList.remove(selectedStringArray);
 		setInput(valueList);
 	}
+	
+	public void removeStringArrays(Collection selectedStringArrays) {
+		List valueList = (List) viewer.getInput();
+		valueList.removeAll(selectedStringArrays);
+		setInput(valueList);
+	}
 
 	public void setInput(List input) {
 		viewer.setInput(input);