geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shiv...@apache.org
Subject svn commit: r688452 [1/3] - in /geronimo/devtools/eclipse-plugin/trunk/plugins: org.apache.geronimo.jee.v21.jaxbmodel/src/main/java/org/apache/geronimo/jee/deployment/ org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/ org.apache.geroni...
Date Sun, 24 Aug 2008 05:56:22 GMT
Author: shivahr
Date: Sat Aug 23 22:56:20 2008
New Revision: 688452

URL: http://svn.apache.org/viewvc?rev=688452&view=rev
Log:
GERONIMODEVTOOLS-414 Provide an option to Add Dependencies from Server (patch from Saurabh)
GERONIMODEVTOOLS-423 Add more options to the Security Section in Geronimo Deployment Plan Editor (patch from Saurabh)
GERONIMODEVTOOLS-430 Provide editor support to configure Advanced Security Settings (patch from Sainath)
Many thanks to Saurabh & Sainath for these big feature improvements.

Added:
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/SecurityAdvancedSection.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/SecurityRoleMappingsSection.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/DependencyAddWizard.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/SecurityRoleMappingsAddWizard.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/SecurityRoleMappingsEditWizard.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/SecurityRunAsSubjectAddWizard.java   (with props)
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/SecurityRunAsSubjectEditWizard.java   (with props)
Removed:
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/providers/
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/TableWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/internal/EMFEditorContext.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/SecurityRootSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/SecuritySection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/SecurityRoleWizard.java
Modified:
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.jee.v21.jaxbmodel/src/main/java/org/apache/geronimo/jee/deployment/Pattern.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.properties
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/pages/AbstractGeronimoFormPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractSectionPart.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTableSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractTableWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/main/java/org/apache/geronimo/st/v21/core/GeronimoServerInfo.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientGeneralPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientSecurityPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppGeneralPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/ConnectorOverviewPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/DeploymentPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/EjbOverviewPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/NamingFormPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/SecurityPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/WebGeneralPage.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/ClassFilterSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/DependencySection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/EjbLocalRefSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/EjbRefSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/ExtModuleSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/GBeanRefSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/GBeanSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/MessageDestSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/ModuleSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/ResourceEnvRefSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/ResourceRefSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/ServiceRefSection.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/ClassFilterWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/DependencyWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/ExtModuleWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/GBeanRefWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/GBeanWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/MessageDestWizard.java
    geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/ModuleWizard.java

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.jee.v21.jaxbmodel/src/main/java/org/apache/geronimo/jee/deployment/Pattern.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.jee.v21.jaxbmodel/src/main/java/org/apache/geronimo/jee/deployment/Pattern.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.jee.v21.jaxbmodel/src/main/java/org/apache/geronimo/jee/deployment/Pattern.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.jee.v21.jaxbmodel/src/main/java/org/apache/geronimo/jee/deployment/Pattern.java Sat Aug 23 22:56:20 2008
@@ -220,4 +220,8 @@
         this.customFoo = value;
     }
 
+    @Override
+    public String toString() {
+        return customFoo + "(" + groupId + "/" + artifactId + "/" + version + "/" + module + ")"; 
+    }
 }

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java?rev=688452&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java Sat Aug 23 22:56:20 2008
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.ui;
+
+import java.text.Collator;
+import java.util.Locale;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+
+/**
+ * @version $Rev$ $Date$
+ * 
+ * "sort a table by column" snippet from http://www.eclipse.org/swt/snippets/
+ * 
+ */
+public class SortListener implements Listener {
+    protected Table table;
+    protected String[] columnNames;
+
+    public SortListener(Table table, String[] columnNames) {
+        this.table = table;
+        this.columnNames = columnNames;
+    }
+
+    public void handleEvent(Event e) {
+        TableItem[] tableItems = table.getItems();
+        Collator collator = Collator.getInstance(Locale.getDefault());
+        TableColumn column = (TableColumn) e.widget;
+        int columnIndex = 0;
+        int direction = 0;
+        for (int i = 0; i < columnNames.length; ++i) {
+            if (column.getText().equals(columnNames[i])) {
+                table.setSortColumn(column);
+                direction = table.getSortDirection() == SWT.UP ? SWT.DOWN : SWT.UP;
+                table.setSortDirection(direction);
+                columnIndex = i;
+                break;
+            }
+        }
+        // sort the table using bubble sort technique
+        for (int i = 1; i < tableItems.length; i++) {
+            String value1 = tableItems[i].getText(columnIndex);
+            for (int j = 0; j < i; j++) {
+                String value2 = tableItems[j].getText(columnIndex);
+                boolean notSorted = false;
+                if (direction == SWT.UP && collator.compare(value1, value2) > 0) {
+                    notSorted = true;
+                }
+                if (direction == SWT.DOWN && collator.compare(value1, value2) < 0) {
+                    notSorted = true;
+                }
+                if (notSorted) {
+                    String[] values = new String[columnNames.length];
+                    for (int col = 0; col < columnNames.length; ++col) {
+                        values[col] = tableItems[i].getText(col);
+                    }
+                    tableItems[i].dispose();
+                    TableItem item = new TableItem(table, SWT.NONE, j);
+                    item.setText(values);
+                    tableItems = table.getItems();
+                    break;
+                }
+            }
+        }
+    }
+}

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/SortListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.java Sat Aug 23 22:56:20 2008
@@ -132,7 +132,7 @@
     public static String editorSubjectId;
     public static String editorejbqlCompilerFactory;
     public static String editordbSyntaxFactory;
-	public static String enforceForeignKeyConstraints;
+    public static String enforceForeignKeyConstraints;
     public static String editorSectionServerTitle;
     public static String editorSectionServerDescription;
     public static String editorSectionClientTitle;
@@ -140,6 +140,8 @@
     //
     public static String editorSectionSecurityRolesTitle;
     public static String editorSectionSecurityRolesDescription;
+    public static String editorSectionSecurityAdvancedTitle;
+    public static String editorSectionSecurityAdvancedDescription;
     public static String name;
     public static String description;
     //
@@ -242,6 +244,8 @@
     public static String wizardEditTitle_Dependency;
     public static String wizardPageTitle_Dependency;
     public static String wizardPageDescription_Dependency;
+    public static String wizardTabManual_Dependency;
+    public static String wizardTabServer_Dependency;
     public static String dependencyGroupLabel;
 
     public static String groupId;
@@ -282,10 +286,17 @@
     public static String wizardPageTitle_SecurityRole;
     public static String wizardPageDescription_SecurityRole;
     //
-    public static String doasCurrentCaller;
-    public static String useContextHandler;
-    public static String defaultRole;
-    
+    public static String securityCredentialStore;
+    public static String securityDefaultSubject;
+    public static String securityDefaultSubjectRealmName;
+    public static String securityDefaultSubjectId;
+    public static String securityDoasCurrentCaller;
+    public static String securityUseContextHandler;
+    public static String securityRunAsSubjects;
+    public static String securityRunAsSubjectRole;
+    public static String securityRunAsSubjectRealm;
+    public static String securityRunAsSubjectId;    
+
     public static String editorCorrect;
     public static String editorDefault;
     public static String errorOpenDialog;

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.properties
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.properties?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.properties (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/internal/Messages.properties Sat Aug 23 22:56:20 2008
@@ -38,6 +38,8 @@
 
 editorSectionSecurityRolesTitle=Security Roles
 editorSectionSecurityRolesDescription=The following security roles are defined:
+editorSectionSecurityAdvancedTitle=Advanced Security Configuration
+editorSectionSecurityAdvancedDescription=The following Advanced Security Settings are defined:
 
 editorSectionDependenciesTitle=Server Dependencies
 editorSectionDependenciesDescription=The following server dependencies are defined as common libraries.
@@ -181,6 +183,8 @@
 wizardEditTitle_Dependency=Edit Dependency
 wizardPageTitle_Dependency=Dependency Details
 wizardPageDescription_Dependency=Provide details for this dependency.
+wizardTabManual_Dependency=Add Manually
+wizardTabServer_Dependency=Add From Server
 
 wizardNewTitle_Import=New Import
 wizardEditTitle_Import=Edit Import
@@ -207,9 +211,16 @@
 wizardPageTitle_ExtModule=External Module Details
 wizardPageDescription_ExtModule=Provide details for this external module.
 
-doasCurrentCaller=Do as current caller
-useContextHandler=Use context handler
-defaultRole=Default Role:
+securityCredentialStore=Credential Store:
+securityDefaultSubject=Default Subject:
+securityDefaultSubjectRealmName=Realm Name
+securityDefaultSubjectId=Id
+securityDoasCurrentCaller=Do as current caller
+securityUseContextHandler=Use context handler
+securityRunAsSubjects=Run As Subjects:
+securityRunAsSubjectRole=Role
+securityRunAsSubjectRealm=Realm
+securityRunAsSubjectId=Id
 
 dependencyGroupLabel=Dependency type and location
 groupId=Group Id

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/pages/AbstractGeronimoFormPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/pages/AbstractGeronimoFormPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/pages/AbstractGeronimoFormPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/pages/AbstractGeronimoFormPage.java Sat Aug 23 22:56:20 2008
@@ -20,12 +20,17 @@
 
 import org.apache.geronimo.st.core.DeploymentDescriptorUtils;
 import org.apache.geronimo.st.core.descriptor.AbstractDeploymentDescriptor;
+import org.apache.geronimo.st.ui.Activator;
 import org.apache.geronimo.st.ui.editors.AbstractGeronimoDeploymentPlanEditor;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormEditor;
 import org.eclipse.ui.forms.editor.FormPage;
@@ -75,15 +80,55 @@
 				.getDeploymentDescriptor(getProject());
 		body = managedForm.getForm().getBody();
 		toolkit = managedForm.getToolkit();
-		ScrolledForm form = managedForm.getForm();
+		final ScrolledForm form = managedForm.getForm();
 		form.setText(getFormTitle());
 		// managedForm.addPart(new BannerPart(form.getBody(), toolkit,
 		// SWT.NONE));
 		form.getBody().setLayout(getLayout());
 		fillBody(managedForm);
+
+		// header with help button
+		toolkit.decorateFormHeading(form.getForm());
+		IToolBarManager manager = form.getToolBarManager();
+
+		Action serverInfoRefresh = new Action("serverInfo") { //$NON-NLS-1$
+			public void run() {
+				BusyIndicator.showWhile(form.getDisplay(), new Runnable() {
+					public void run() {
+						triggerGeronimoServerInfoUpdate();
+					}
+				});
+			}
+		};
+		serverInfoRefresh.setToolTipText("Trigger update of GeronimoServerInfo");
+		serverInfoRefresh.setImageDescriptor(Activator.imageDescriptorFromPlugin("org.apache.geronimo.st.ui",
+				"icons/obj16/update.gif"));
+		manager.add(serverInfoRefresh);
+
+		Action helpAction = new Action("help") { //$NON-NLS-1$
+			public void run() {
+				BusyIndicator.showWhile(form.getDisplay(), new Runnable() {
+					public void run() {
+						PlatformUI.getWorkbench().getHelpSystem().displayHelpResource(getHelpResource());
+					}
+				});
+			}
+		};
+		helpAction.setToolTipText("help");
+		helpAction.setImageDescriptor(Activator.imageDescriptorFromPlugin("org.apache.geronimo.st.ui",
+				"icons/obj16/help.gif"));
+		manager.add(helpAction);
+
+		manager.update(true);
 		form.reflow(true);
 	}
 
+	protected abstract void triggerGeronimoServerInfoUpdate();
+
+	protected String getHelpResource() {
+		return "http://geronimo.apache.org/development-tools.html";
+	}
+
 	protected GridLayout getLayout() {
 		GridLayout layout = new GridLayout();
 		layout.numColumns = 2;

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java?rev=688452&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java Sat Aug 23 22:56:20 2008
@@ -0,0 +1,356 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.ui.sections;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.JAXBElement;
+
+import org.apache.geronimo.st.core.descriptor.AbstractDeploymentDescriptor;
+import org.apache.geronimo.st.ui.Activator;
+import org.apache.geronimo.st.ui.CommonMessages;
+import org.apache.geronimo.st.ui.wizards.AbstractWizard;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public abstract class AbstractListSection extends AbstractSectionPart {
+
+    protected ColumnViewer viewer;
+
+    protected Button addButton;
+
+    protected Button editButton;
+
+    protected Button removeButton;
+
+    protected List objectContainer;
+
+    public AbstractListSection(Section section) {
+        super(section);
+    }
+
+    /**
+     * Subclasses should call createClient() in constructor
+     */
+    public AbstractListSection(Composite parent, FormToolkit toolkit, int style, JAXBElement plan) {
+        super(parent, toolkit, style, plan);
+    }
+
+    public AbstractListSection(Composite parent, FormToolkit toolkit, int style, JAXBElement plan,
+            AbstractDeploymentDescriptor descriptor) {
+        super(parent, toolkit, style, plan, descriptor);
+    }
+
+    public void createClient() {
+        getSection().setText(getTitle());
+        getSection().setDescription(getDescription());
+        getSection().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+        Composite clientComposite = createComposite(getSection(), 2);
+        getSection().setClient(clientComposite);
+
+        createViewer(clientComposite);
+        viewer.setContentProvider(getContentProvider());
+        viewer.setLabelProvider(getLabelProvider());
+        viewer.setInput(getInput());
+
+        Composite buttonComposite = createButtonComposite(clientComposite);
+        createAddButton(toolkit, buttonComposite);
+        createRemoveButton(toolkit, buttonComposite);
+        createEditButton(toolkit, buttonComposite);
+        activateButtons();
+
+        if (isRequiredSyncToolbarAction()) {
+            addSyncToolbarAction();
+        }
+    }
+
+    protected boolean isRequiredSyncToolbarAction() {
+        return false;
+    }
+
+    protected void addSyncToolbarAction() {
+        ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
+        ToolBar toolbar = toolBarManager.createControl(getSection());
+        final Cursor handCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_HAND);
+        toolbar.setCursor(handCursor);
+        // Cursor needs to be explicitly disposed
+        toolbar.addDisposeListener(new DisposeListener() {
+            public void widgetDisposed(DisposeEvent e) {
+                if ((handCursor != null) && (handCursor.isDisposed() == false)) {
+                    handCursor.dispose();
+                }
+            }
+        });
+        toolBarManager.add(getSyncAction());
+        toolBarManager.update(true);
+        getSection().setTextClient(toolbar);
+    }
+
+    protected class SyncAction extends Action {
+        public SyncAction(String tooltipText) {
+            super(tooltipText, IAction.AS_PUSH_BUTTON);
+            setToolTipText(tooltipText);
+            setImageDescriptor(Activator.imageDescriptorFromPlugin("org.apache.geronimo.st.ui",
+                    "icons/obj16/synced.gif"));
+        }
+
+        @Override
+        public void run() {
+        }
+    }
+
+    protected IAction getSyncAction() {
+        return new SyncAction("Sync Deployment Descriptor and Deployemnt Plan");
+    }
+
+    protected Composite createComposite(Composite parent, int numColumns) {
+        Composite composite = toolkit.createComposite(parent);
+        GridLayout layout = new GridLayout();
+        layout.numColumns = numColumns;
+        layout.marginHeight = 5;
+        layout.marginWidth = 10;
+        layout.verticalSpacing = 5;
+        layout.horizontalSpacing = 15;
+        composite.setLayout(layout);
+        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
+        return composite;
+    }
+
+    protected abstract void createViewer(Composite composite);
+
+    protected Composite createButtonComposite(Composite parent) {
+        Composite buttonComp = new Composite(parent, SWT.NONE);
+        GridLayout layout = new GridLayout();
+        layout.horizontalSpacing = 2;
+        layout.verticalSpacing = 2;
+        layout.marginWidth = 0;
+        layout.marginHeight = 0;
+        layout.numColumns = 1;
+        buttonComp.setLayout(layout);
+        buttonComp.setBackground(toolkit.getColors().getBackground());
+        buttonComp.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false));
+        return buttonComp;
+    }
+
+    protected void createRemoveButton(FormToolkit toolkit, Composite buttonComp) {
+        removeButton = toolkit.createButton(buttonComp, CommonMessages.remove, SWT.NONE);
+        removeButton.addSelectionListener(new SelectionAdapter() {
+            public void widgetSelected(SelectionEvent e) {
+                handleDelete();
+                getViewer().refresh();
+                markDirty();
+                activateButtons();
+            }
+        });
+        removeButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+    }
+
+    protected abstract void handleDelete();
+
+    protected void createAddButton(FormToolkit toolkit, Composite buttonComp) {
+        addButton = toolkit.createButton(buttonComp, CommonMessages.add, SWT.NONE);
+        addButton.addSelectionListener(new SelectionAdapter() {
+            public void widgetSelected(SelectionEvent e) {
+                Wizard wizard = getAddWizard();
+                if (wizard != null) {
+                    WizardDialog dialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
+                    dialog.open();
+                    if (dialog.getReturnCode() == Dialog.OK) {
+                        getViewer().refresh();
+                        markDirty();
+                    }
+                }
+            }
+        });
+        addButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+    }
+
+    protected void createEditButton(FormToolkit toolkit, Composite buttonComp) {
+        editButton = toolkit.createButton(buttonComp, CommonMessages.edit, SWT.NONE);
+        editButton.addSelectionListener(new SelectionAdapter() {
+            public void widgetSelected(SelectionEvent e) {
+                Object selectedObject = ((StructuredSelection) getViewer().getSelection()).getFirstElement();
+                if (selectedObject != null) {
+                    Wizard wizard = getEditWizard();
+                    if (wizard != null) {
+                        if (wizard instanceof AbstractWizard) {
+                            ((AbstractWizard) wizard).setEObject(selectedObject);
+                        }
+                        WizardDialog dialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
+                        dialog.open();
+                        if (dialog.getReturnCode() == Dialog.OK) {
+                            getViewer().refresh();
+                            markDirty();
+                        }
+                    }
+                }
+                activateButtons();
+            }
+        });
+        editButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+    }
+
+    protected void activateButtons() {
+        activateAddButton();
+        activateRemoveButton();
+        activateEditButton();
+    }
+
+    protected void activateAddButton() {
+        addButton.setEnabled(true);
+    }
+
+    protected void activateEditButton() {
+        activateButton(editButton);
+    }
+
+    protected void activateRemoveButton() {
+        activateButton(removeButton);
+    }
+
+    protected abstract void activateButton(Button button);
+
+    abstract public String getTitle();
+
+    abstract public String getDescription();
+
+    abstract public Wizard getAddWizard();
+
+    abstract public Wizard getEditWizard();
+
+    abstract public Class getTableEntryObjectType();
+
+    protected String[] COLUMN_NAMES = new String[] {};
+
+    public String[] getTableColumnNames() {
+        return COLUMN_NAMES;
+    }
+
+    public ColumnViewer getViewer() {
+        return viewer;
+    }
+
+    public List getObjectContainer() {
+        if (objectContainer == null) {
+            objectContainer = new ArrayList();
+        }
+        return objectContainer;
+    }
+
+    public Object getInput() {
+        return getPlan();
+    }
+
+    public class ContentProvider implements IStructuredContentProvider, ITreeContentProvider {
+        public Object[] getElements(Object inputElement) {
+            if (!JAXBElement.class.isInstance(inputElement)) {
+                return new String[] { "" };
+            }
+            return getObjectContainer().toArray();
+        }
+
+        public void dispose() {
+        }
+
+        public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
+        }
+
+        public Object[] getChildren(Object arg0) {
+            return null;
+        }
+
+        public Object getParent(Object arg0) {
+            return null;
+        }
+
+        public boolean hasChildren(Object parentElement) {
+            return getChildren(parentElement).length > 0;
+        }
+    }
+
+    public IContentProvider getContentProvider() {
+        return new ContentProvider();
+    }
+
+    public class LabelProvider implements ITableLabelProvider, ILabelProvider {
+        public Image getColumnImage(Object element, int columnIndex) {
+            return null;
+        }
+
+        public String getColumnText(Object element, int columnIndex) {
+            return "";
+        }
+
+        public void addListener(ILabelProviderListener arg0) {
+        }
+
+        public void dispose() {
+        }
+
+        public boolean isLabelProperty(Object arg0, String arg1) {
+            return false;
+        }
+
+        public void removeListener(ILabelProviderListener arg0) {
+        }
+
+        public Image getImage(Object arg0) {
+            return null;
+        }
+
+        public String getText(Object arg0) {
+            return "";
+        }
+    }
+
+    public IBaseLabelProvider getLabelProvider() {
+        return new LabelProvider();
+    }
+}

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractListSection.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractSectionPart.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractSectionPart.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractSectionPart.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractSectionPart.java Sat Aug 23 22:56:20 2008
@@ -16,11 +16,9 @@
  */
 package org.apache.geronimo.st.ui.sections;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import javax.xml.bind.JAXBElement;
 
+import org.apache.geronimo.st.core.descriptor.AbstractDeploymentDescriptor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -39,26 +37,26 @@
 
     private JAXBElement plan;
 
-    /**
-     * @param section
-     */
+    private AbstractDeploymentDescriptor descriptor;
+
     public AbstractSectionPart(Section section) {
         super(section);
     }
 
-    /**
-     * @param parent
-     * @param toolkit
-     * @param style
-     * @param plan
-     */
-    public AbstractSectionPart(Composite parent, FormToolkit toolkit,
-            int style, JAXBElement plan) {
+    public AbstractSectionPart(Composite parent, FormToolkit toolkit, int style, JAXBElement plan) {
         super(parent, toolkit, style);
         this.toolkit = toolkit;
         this.plan = plan;
     }
 
+    public AbstractSectionPart(Composite parent, FormToolkit toolkit, int style, JAXBElement plan,
+            AbstractDeploymentDescriptor descriptor) {
+        super(parent, toolkit, style);
+        this.toolkit = toolkit;
+        this.plan = plan;
+        this.descriptor = descriptor;
+    }
+
     /*
      * (non-Javadoc)
      * 
@@ -75,12 +73,16 @@
         }
     }
 
+    public FormToolkit getToolkit() {
+        return toolkit;
+    }
+
     public JAXBElement getPlan() {
         return plan;
     }
 
-    public FormToolkit getToolkit() {
-        return toolkit;
+    public AbstractDeploymentDescriptor getDescriptor() {
+        return descriptor;
     }
 
     protected Label createLabel(Composite parent, String text) {

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTableSection.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTableSection.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTableSection.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTableSection.java Sat Aug 23 22:56:20 2008
@@ -16,33 +16,23 @@
  */
 package org.apache.geronimo.st.ui.sections;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import javax.xml.bind.JAXBElement;
 
-import org.apache.geronimo.st.ui.CommonMessages;
-import org.apache.geronimo.st.ui.providers.AdapterFactory;
-import org.apache.geronimo.st.ui.providers.ContentProvider;
-import org.apache.geronimo.st.ui.providers.LabelProvider;
-import org.apache.geronimo.st.ui.wizards.AbstractTableWizard;
-import org.eclipse.jface.dialogs.Dialog;
+import org.apache.geronimo.st.core.descriptor.AbstractDeploymentDescriptor;
+import org.apache.geronimo.st.ui.SortListener;
 import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableLayout;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.TableItem;
@@ -52,31 +42,17 @@
 /**
  * @version $Rev$ $Date$
  */
-public abstract class AbstractTableSection extends AbstractSectionPart {
-
-    protected String[] COLUMN_NAMES = new String[] {};
-
-    private Table table;
-
-    private TableViewer tableViewer;
+public abstract class AbstractTableSection extends AbstractListSection {
 
-    protected Button addButton;
+    protected Table table;
 
-    protected Button editButton;
-
-    protected Button removeButton;
-    
-    protected List objectContainer;
+    public Listener sortListener = null;
 
     public AbstractTableSection(Section section) {
         super(section);
     }
 
     /**
-     * @param plan
-     * @param parent
-     * @param toolkit
-     * @param style
      * 
      * Subclasses should call createClient() in constructor
      */
@@ -85,225 +61,85 @@
         super(parent, toolkit, style, plan);
     }
 
-    public void createClient() {
-
-        if (getTableEntryObjectType() == null)
-            throw new NullPointerException();
-        
-
-        getSection().setText(getTitle());
-        getSection().setDescription(getDescription());
-        getSection().setLayoutData(getSectionLayoutData());
-        Composite composite = createTableComposite(getSection());
-        getSection().setClient(composite);
-        table = createTable(composite);
-
-        tableViewer = new TableViewer(getTable());
-        tableViewer.setContentProvider(new ContentProvider(getAdapterFactory()));
-        tableViewer.setLabelProvider(new LabelProvider(getAdapterFactory()));
-        tableViewer.setInput(getInput());
-
-        tableViewer.addFilter(new ViewerFilter() {
-            public boolean select(Viewer viewer, Object parentElement,
-                    Object element) {
-                return AbstractTableSection.this.filter(viewer, parentElement, element);
-            }
-        });
-
-        if (getTableColumnNames().length > 0) {
-            tableViewer.setColumnProperties(getTableColumnNames());
-        }
-
-        Composite buttonComp = createButtonComposite(composite);
-        createAddButton(toolkit, buttonComp);
-        createRemoveButton(toolkit, buttonComp);
-        createEditButton(toolkit, buttonComp);
-
-    }
-
-    public Object getInput() {
-        return getPlan();
-    }
-
-    protected boolean filter(Viewer viewer, Object parentElement, Object element) {
-        return getTableEntryObjectType().isInstance(element);
-    }
-
-    protected Composite createTableComposite(Composite parent) {
-        Composite composite = toolkit.createComposite(parent);
-        composite.setLayout(getSectionCompositeLayout());
-        composite.setLayoutData(getTableCompositeLayoutData());
-        return composite;
-    }
-
-    protected GridData getSectionLayoutData() {
-        return new GridData(SWT.FILL, SWT.FILL, false, false);
-    }
-
-    protected GridData getTableCompositeLayoutData() {
-        return new GridData(SWT.FILL, SWT.FILL, false, false);
-    }
-
-    protected GridLayout getSectionCompositeLayout() {
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        layout.marginHeight = 5;
-        layout.marginWidth = 10;
-        layout.verticalSpacing = 5;
-        layout.horizontalSpacing = 15;
-        return layout;
+    public AbstractTableSection(JAXBElement plan, AbstractDeploymentDescriptor descriptor,
+            Composite parent, FormToolkit toolkit, int style) {
+        super(parent, toolkit, style, plan, descriptor);
     }
 
-    protected Table createTable(Composite composite) {
-        Table table = new Table(composite, SWT.BORDER | SWT.FULL_SELECTION
-                | SWT.V_SCROLL | SWT.SINGLE);
+    public void createViewer(Composite composite) {
+        table = new Table(composite, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.MULTI);
         if (isHeaderVisible()) {
             table.setHeaderVisible(true);
         }
 
-        GridData data = new GridData(SWT.FILL, SWT.FILL, false, false);
+        GridData data = new GridData(SWT.FILL, SWT.FILL, false, true);
         data.heightHint = 60;
-        data.widthHint = 400;
+        data.widthHint = 330;
+        //data.grabExcessVerticalSpace = true;
         table.setLayoutData(data);
 
         TableLayout tableLayout = new TableLayout();
         table.setLayout(tableLayout);
 
+        sortListener = new SortListener(table, COLUMN_NAMES);
         for (int i = 0; i < getTableColumnNames().length; i++) {
             tableLayout.addColumnData(new ColumnWeightData(35));
             TableColumn tableColumn = new TableColumn(table, SWT.NONE);
             tableColumn.setText(getTableColumnNames()[i]);
+            tableColumn.addListener(SWT.Selection, sortListener);
         }
 
-        return table;
-    }
-
-    protected Composite createButtonComposite(Composite parent) {
-        Composite buttonComp = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.horizontalSpacing = 2;
-        layout.verticalSpacing = 2;
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        layout.numColumns = 1;
-        buttonComp.setLayout(layout);
-        buttonComp.setBackground(toolkit.getColors().getBackground());
-        buttonComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-        return buttonComp;
-    }
-
-    protected void createRemoveButton(FormToolkit toolkit, Composite buttonComp) {
-        removeButton = toolkit.createButton(buttonComp, CommonMessages.remove, SWT.NONE);
-        removeButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                int[] selectedIndices = table.getSelectionIndices();
-                for (int i = 0; i < selectedIndices.length; i++) {
-                    TableItem tableItem = table.getItem(selectedIndices[i]);
-                    Object type = tableItem.getData();
-                    removeItem (type);
-                    table.remove(selectedIndices[i]);
-                    getTableViewer().refresh();
-                    markDirty();
-                }
-            }
-        });
-        removeButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-    }
-
-    protected void createAddButton(FormToolkit toolkit, Composite buttonComp) {
-        addButton = toolkit.createButton(buttonComp, CommonMessages.add, SWT.NONE);
-
-        addButton.addSelectionListener(new SelectionAdapter() {
+        table.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
-                Wizard wizard = getWizard();
-                if (wizard != null) {
-                    WizardDialog dialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
-
-                    dialog.open();
-
-                    if (dialog.getReturnCode() == Dialog.OK) {
-                        getTableViewer().refresh();
-                        markDirty();
-                    }
-                }
+                activateButtons();
             }
         });
 
-        addButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-    }
-
-    protected void createEditButton(FormToolkit toolkit, Composite buttonComp) {
-        editButton = toolkit.createButton(buttonComp, CommonMessages.edit, SWT.NONE);
-
-        editButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                Object o = ((StructuredSelection) getTableViewer().getSelection()).getFirstElement();
-                if (o != null) {
-                    Wizard wizard = getWizard();
-                    if (wizard != null) {
-                        if (wizard instanceof AbstractTableWizard) {
-                            ((AbstractTableWizard) wizard).setEObject(o);
-                        }
-                        WizardDialog dialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
-                        dialog.open();
-                        if (dialog.getReturnCode() == Dialog.OK) {
-                            getTableViewer().refresh();
-                            markDirty();
-                        }
-                    }
-                }
+        viewer = new TableViewer(table);
+        viewer.addFilter(new ViewerFilter() {
+            public boolean select(Viewer viewer, Object parentElement, Object element) {
+                return AbstractTableSection.this.filter(viewer, parentElement, element);
             }
         });
-
-        editButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-    }
-
-    public TableViewer getTableViewer() {
-        return tableViewer;
+        if (getTableColumnNames().length > 0) {
+            viewer.setColumnProperties(getTableColumnNames());
+        }
     }
 
     protected boolean isHeaderVisible() {
         return true;
     }
 
-    protected Table getTable() {
-        return table;
+    protected boolean filter(Viewer viewer, Object parentElement, Object element) {
+        return getTableEntryObjectType().isInstance(element);
     }
 
-    public String[] getTableColumnNames() {
-        return COLUMN_NAMES;
+    public void handleDelete() {
+        TableItem[] selectedItems = table.getSelection();
+        for (int i = 0; i < selectedItems.length; i++) {
+            TableItem tableItem = selectedItems[i];
+            removeItem(tableItem.getData());
+        }
     }
 
-    abstract public String getTitle();
-
-    abstract public String getDescription();
-
-    abstract public Wizard getWizard();
+    protected void removeItem (Object selectedItem) {
+        getObjectContainer().remove(selectedItem);
+    }
 
-    abstract public Class getTableEntryObjectType();
+    protected void activateButton(Button button) {
+        boolean selected = table.getSelectionCount() > 0;
+        button.setEnabled(selected);
+    }
 
-    public void removeItem (Object anItem) {
-        getObjectContainer().remove(anItem);
+    @Override
+    public Wizard getAddWizard() {
+        return getWizard();
     }
 
-    public List getObjectContainer() {
-        if (objectContainer == null) {
-            objectContainer = new ArrayList();
-        }
-        return objectContainer;
+    @Override
+    public Wizard getEditWizard() {
+        return getWizard();
     }
 
-    public AdapterFactory getAdapterFactory() { 
-        return new AdapterFactory() {
-            public Object[] getElements(Object inputElement) {
-                if (!JAXBElement.class.isInstance(inputElement)) {
-                    return new String[] { "" };
-                }
-                return getObjectContainer().toArray();
-            }
-            public String getColumnText(Object element, int columnIndex) {
-                return "";
-            }
-        };
-    };
+    protected abstract Wizard getWizard();
 }

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java?rev=688452&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java Sat Aug 23 22:56:20 2008
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.ui.sections;
+
+import javax.xml.bind.JAXBElement;
+
+import org.apache.geronimo.st.core.descriptor.AbstractDeploymentDescriptor;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public abstract class AbstractTreeSection extends AbstractListSection {
+
+    protected Tree tree;
+
+    public AbstractTreeSection(Section section) {
+        super(section);
+    }
+
+    /**
+     * Subclasses should call createClient() in constructor
+     */
+    public AbstractTreeSection(JAXBElement plan, Composite parent, FormToolkit toolkit, int style) {
+        super(parent, toolkit, style, plan);
+    }
+
+    public AbstractTreeSection(JAXBElement plan, AbstractDeploymentDescriptor descriptor,
+            Composite parent, FormToolkit toolkit, int style) {
+        super(parent, toolkit, style, plan, descriptor);
+    }
+
+    public void createViewer(Composite composite) {
+        tree = new Tree(composite, SWT.BORDER | SWT.V_SCROLL);
+        GridData data = new GridData(SWT.FILL, SWT.FILL, false, false);
+        data.heightHint = 60;
+        data.widthHint = 350;
+        data.grabExcessHorizontalSpace = true;
+        data.grabExcessVerticalSpace = true;
+        tree.setLayoutData(data);
+        tree.setLayout(new TableLayout());
+        tree.addSelectionListener(new SelectionAdapter() {
+            public void widgetSelected(SelectionEvent e) {
+                activateButtons();
+            }
+        });
+        viewer = new TreeViewer(tree);
+    }
+
+    public void handleDelete() {
+        TreeItem[] selectedItems = tree.getSelection();
+        removeItem(selectedItems[0].getData());
+    }
+
+    public void removeItem(Object anItem) {
+        getObjectContainer().remove(anItem);
+    }
+
+    protected void activateButton(Button button) {
+        boolean Selected = tree.getSelectionCount() > 0;
+        button.setEnabled(Selected);
+    }
+}

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/AbstractTreeSection.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractTableWizard.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractTableWizard.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractTableWizard.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractTableWizard.java Sat Aug 23 22:56:20 2008
@@ -20,63 +20,76 @@
 
 import org.apache.geronimo.st.core.jaxb.JAXBObjectFactory;
 import org.apache.geronimo.st.core.jaxb.JAXBUtils;
-import org.apache.geronimo.st.ui.Activator;
-import org.apache.geronimo.st.ui.sections.AbstractTableSection;
-import org.eclipse.jface.resource.ImageDescriptor;
+import org.apache.geronimo.st.ui.sections.AbstractListSection;
 import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
 /**
  * @version $Rev$ $Date$
  */
-public abstract class AbstractTableWizard extends Wizard implements TableWizard {
+public abstract class AbstractTableWizard extends AbstractWizard {
 
-    protected AbstractTableSection section;
+    public AbstractTableWizard(AbstractListSection section) {
+        super(section);
+    }
+
+    public abstract JAXBObjectFactory getEFactory();
+
+    public abstract String[] getTableColumnEAttributes();
+
+    public class DynamicWizardPage extends AbstractWizardPage {
+        protected Text[] textEntries = new Text[getTableColumnEAttributes().length];
+
+        public DynamicWizardPage(String pageName) {
+            super(pageName);
+        }
+
+        public void createControl(Composite parent) {
+            Composite composite = createComposite(parent);
+            doCustom(composite);
+            setControl(composite);
+            textEntries[0].setFocus();
+        }
 
-    protected Object eObject;
+        public void createEditFields(Composite composite) {
+            for (int i = 0; i < section.getTableColumnNames().length; i++) {
+                createLabel(composite, section.getTableColumnNames()[i]);
+                String initialValue = "";
+                if (eObject != null) {
+                    initialValue = (String) JAXBUtils.getValue(eObject, getTableColumnEAttributes()[i]);
+                }
+                textEntries[i] = createTextFeild(composite, initialValue);
+            }
+        }
 
-    protected ImageDescriptor descriptor = Activator.imageDescriptorFromPlugin("org.apache.geronimo.ui", "icons/bigG.gif");
+        public void doCustom(Composite parent) {
+        }
 
-    /**
-     * 
-     */
-    public AbstractTableWizard(AbstractTableSection section) {
-        super();
-        this.section = section;
-        setWindowTitle(getAddWizardWindowTitle());
+        public Text getTextEntry(int object) {
+            return textEntries[object];
+        }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.wizard.Wizard#performFinish()
-     */
-    public boolean performFinish() {
+    @Override
+    public void addPages() {
+        addPage(new DynamicWizardPage("Page0"));
+    }
 
+    @Override
+    public boolean performFinish() {
         if (eObject == null) {
             eObject = getEFactory().create(section.getTableEntryObjectType());
             List objectContainer = section.getObjectContainer();
             objectContainer.add(eObject);
         }
-
         processEAttributes(getPages()[0]);
-        
-        if (section.getTableViewer().getInput() == null) {
-            section.getTableViewer().setInput(section.getInput());
+        if (section.getViewer().getInput() == null) {
+            section.getViewer().setInput(section.getInput());
         }
-        
         return true;
     }
 
-    public abstract String[] getTableColumnEAttributes();
-
     public void processEAttributes(IWizardPage page) {
         if (page instanceof DynamicWizardPage) {
             for (int i = 0; i < getTableColumnEAttributes().length; i++) {
@@ -87,97 +100,26 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.wizard.IWizard#addPages()
-     */
-    public void addPages() {
-        WizardPage page = new DynamicWizardPage("Page0");
-        page.setImageDescriptor(descriptor);
-        addPage(page);
+    @Override
+    protected String getWizardPageTitle() {
+        return getWizardFirstPageTitle();
     }
 
-    /**
-     * @param section
-     */
-    public void setSection(AbstractTableSection section) {
-        this.section = section;
+    @Override
+    protected String getWizardPageDescription() {
+        return getWizardFirstPageDescription();
     }
 
-    /**
-     * @param object
-     */
-    public void setEObject(Object object) {
-        eObject = object;
+    @Override
+    protected String getWizardWindowTitle() {
+        return getAddWizardWindowTitle();
     }
 
-    public class DynamicWizardPage extends WizardPage {
-
-        protected Text[] textEntries = new Text[getTableColumnEAttributes().length];
-
-        public DynamicWizardPage(String pageName) {
-            super(pageName);
-            setTitle(getWizardFirstPageTitle());
-            setDescription(getWizardFirstPageDescription());
-        }
-
-        public DynamicWizardPage(String pageName, String title,
-                ImageDescriptor titleImage) {
-            super(pageName, title, titleImage);
-        }
-
-        public void createControl(Composite parent) {
-            Composite composite = createComposite(parent);
-            for (int i = 0; i < section.getTableColumnNames().length; i++) {
-                Label label = new Label(composite, SWT.LEFT);
-                String columnName = section.getTableColumnNames()[i];
-                if (!columnName.endsWith(":"))
-                    columnName = columnName.concat(":");
-                label.setText(columnName);
-                GridData data = new GridData();
-                data.horizontalAlignment = GridData.FILL;
-                label.setLayoutData(data);
-
-                Text text = new Text(composite, SWT.SINGLE | SWT.BORDER);
-                data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-                        | GridData.VERTICAL_ALIGN_FILL);
-                data.grabExcessHorizontalSpace = true;
-                data.widthHint = 100;
-                text.setLayoutData(data);
-                if (eObject != null) {
-                    String value = (String) JAXBUtils.getValue(eObject,getTableColumnEAttributes()[i]);
-                    if (value != null) {
-                        text.setText(value);
-                    }
-                }
-                textEntries[i] = text;
-            }
-
-            doCustom(composite);
-            setControl(composite);
-            textEntries[0].setFocus();
-        }
+    public abstract String getAddWizardWindowTitle();
 
-        public Composite createComposite(Composite parent) {
-            Composite composite = new Composite(parent, SWT.NULL);
-            GridLayout layout = new GridLayout();
-            layout.numColumns = 2;
-            composite.setLayout(layout);
-            GridData data = new GridData();
-            data.verticalAlignment = GridData.FILL;
-            data.horizontalAlignment = GridData.FILL;
-            data.widthHint = 300;
-            composite.setLayoutData(data);
-            return composite;
-        }
+    public abstract String getEditWizardWindowTitle();
 
-        public void doCustom(Composite parent) {
+    public abstract String getWizardFirstPageTitle();
 
-        }
-
-        public Text getTextEntry (int object) {
-            return textEntries[object];
-        }   
-    }
+    public abstract String getWizardFirstPageDescription();
 }

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java?rev=688452&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java Sat Aug 23 22:56:20 2008
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.st.ui.wizards;
+
+import org.apache.geronimo.st.ui.Activator;
+import org.apache.geronimo.st.ui.sections.AbstractListSection;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public abstract class AbstractWizard extends Wizard {
+
+    protected AbstractListSection section;
+
+    protected Object eObject;
+
+    public AbstractWizard(AbstractListSection section) {
+        super();
+        this.section = section;
+        setWindowTitle(getWizardWindowTitle());
+    }
+
+    public void setEObject(Object object) {
+        eObject = object;
+    }
+
+    public abstract class AbstractWizardPage extends WizardPage {
+        public AbstractWizardPage(String pageName) {
+            super(pageName);
+            setTitle(getWizardPageTitle());
+            setDescription(getWizardPageDescription());
+            setImageDescriptor(getImageDescriptor());
+        }
+
+        protected Composite createComposite(Composite parent) {
+            Composite composite = new Composite(parent, SWT.NULL);
+            GridLayout layout = new GridLayout();
+            layout.numColumns = 2;
+            composite.setLayout(layout);
+            GridData data = new GridData();
+            data.verticalAlignment = GridData.FILL;
+            data.horizontalAlignment = GridData.FILL;
+            data.heightHint = 230;
+            data.widthHint = 300;
+            composite.setLayoutData(data);
+            return composite;
+        }
+
+        protected Label createLabel(Composite composite, String labelString) {
+            Label label = new Label(composite, SWT.LEFT);
+            if (!labelString.endsWith(":")) {
+                labelString = labelString.concat(":");
+            }
+            label.setText(labelString);
+            GridData data = new GridData();
+            data.horizontalAlignment = GridData.FILL;
+            label.setLayoutData(data);
+            return label;
+        }
+
+        protected Text createTextFeild(Composite composite, String initialValue) {
+            Text text = new Text(composite, SWT.SINGLE | SWT.BORDER);
+            GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
+            data.grabExcessHorizontalSpace = true;
+            data.widthHint = 100;
+            text.setLayoutData(data);
+            text.setText(initialValue);
+            return text;
+        }
+
+        protected Combo createCombo(Composite composite, String[] items, boolean editable) {
+            int style = SWT.NONE;
+            if (!editable) {
+                style = SWT.READ_ONLY;
+            }
+            Combo combo = new Combo(composite, style);
+            GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
+            data.grabExcessHorizontalSpace = true;
+            data.widthHint = 100;
+            combo.setLayoutData(data);
+            combo.setItems(items);
+            return combo;
+        }
+    }
+
+    protected abstract String getWizardWindowTitle();
+
+    protected abstract String getWizardPageTitle();
+
+    protected abstract String getWizardPageDescription();
+
+    protected ImageDescriptor getImageDescriptor() {
+        return Activator.imageDescriptorFromPlugin("org.apache.geronimo.ui", "icons/bigG.gif");
+    }
+
+    protected boolean isEmpty(String text) {
+        return text == null || text.trim().length() <= 0;
+    }
+}

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/wizards/AbstractWizard.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/main/java/org/apache/geronimo/st/v21/core/GeronimoServerInfo.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/main/java/org/apache/geronimo/st/v21/core/GeronimoServerInfo.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/main/java/org/apache/geronimo/st/v21/core/GeronimoServerInfo.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.core/src/main/java/org/apache/geronimo/st/v21/core/GeronimoServerInfo.java Sat Aug 23 22:56:20 2008
@@ -109,7 +109,7 @@
     }
 
     public void updateInfo() {
-        Job job = new Job("ServeInfoGetter"){
+        Job job = new Job("Getting Dynamic Information from Server"){
             protected IStatus run(IProgressMonitor arg0) {
                 updateKernels();
                 updateDeployedEJBs();

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientGeneralPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientGeneralPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientGeneralPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientGeneralPage.java Sat Aug 23 22:56:20 2008
@@ -18,6 +18,7 @@
 
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.ui.sections.AppClientClientGeneralSection;
 import org.apache.geronimo.st.v21.ui.sections.AppClientServerGeneralSection;
 import org.eclipse.ui.forms.IManagedForm;
@@ -38,8 +39,8 @@
 	 * @see org.apache.geronimo.ui.pages.AbstractGeronimoFormPage#fillBody(org.eclipse.ui.forms.IManagedForm)
 	 */
 	protected void fillBody(IManagedForm managedForm) {
-        managedForm.addPart(new AppClientClientGeneralSection(body, toolkit, getStyle(), getDeploymentPlan()));
-        managedForm.addPart(new AppClientServerGeneralSection(body, toolkit, getStyle(), getDeploymentPlan()));
+		managedForm.addPart(new AppClientClientGeneralSection(body, toolkit, getStyle(), getDeploymentPlan()));
+		managedForm.addPart(new AppClientServerGeneralSection(body, toolkit, getStyle(), getDeploymentPlan()));
 	}
 
 	/*
@@ -51,4 +52,9 @@
 		return CommonMessages.appClientGeneralPageTitle;
 	}
 
+	@Override
+	protected void triggerGeronimoServerInfoUpdate() {
+		GeronimoServerInfo.getInstance().updateInfo();
+	}
+
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientSecurityPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientSecurityPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientSecurityPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppClientSecurityPage.java Sat Aug 23 22:56:20 2008
@@ -18,6 +18,7 @@
 
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.ui.sections.AppClientSecuritySection;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.ui.forms.IManagedForm;
@@ -61,4 +62,9 @@
         return CommonMessages.securityPageTitle;
     }
 
+    @Override
+    protected void triggerGeronimoServerInfoUpdate() {
+        GeronimoServerInfo.getInstance().updateInfo();
+    }
+
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppGeneralPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppGeneralPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppGeneralPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/AppGeneralPage.java Sat Aug 23 22:56:20 2008
@@ -18,6 +18,7 @@
 
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.ui.sections.AppGeneralSection;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormEditor;
@@ -49,4 +50,9 @@
 		return CommonMessages.appGeneralPageTitle;
 	}
 
+	@Override
+	protected void triggerGeronimoServerInfoUpdate() {
+		GeronimoServerInfo.getInstance().updateInfo();
+	}
+
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/ConnectorOverviewPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/ConnectorOverviewPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/ConnectorOverviewPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/ConnectorOverviewPage.java Sat Aug 23 22:56:20 2008
@@ -18,6 +18,7 @@
 
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.ui.sections.ConnectorGeneralSection;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormEditor;
@@ -49,4 +50,9 @@
 		return CommonMessages.connectorOverViewPageTitle;
 	}
 
+	@Override
+	protected void triggerGeronimoServerInfoUpdate() {
+		GeronimoServerInfo.getInstance().updateInfo();
+	}
+
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/DeploymentPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/DeploymentPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/DeploymentPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/DeploymentPage.java Sat Aug 23 22:56:20 2008
@@ -22,6 +22,7 @@
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.editors.AbstractGeronimoDeploymentPlanEditor;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.core.jaxb.JAXBModelUtils;
 import org.apache.geronimo.st.v21.ui.sections.ClassFilterSection;
 import org.apache.geronimo.st.v21.ui.sections.DependencySection;
@@ -66,4 +67,9 @@
         return CommonMessages.deploymentPageTitle;
     }
 
+    @Override
+    protected void triggerGeronimoServerInfoUpdate() {
+        GeronimoServerInfo.getInstance().updateInfo();
+    }
+
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/EjbOverviewPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/EjbOverviewPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/EjbOverviewPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/EjbOverviewPage.java Sat Aug 23 22:56:20 2008
@@ -17,6 +17,7 @@
 package org.apache.geronimo.st.v21.ui.pages;
 
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.ui.sections.OpenEjbJarGeneralSection;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormEditor;
@@ -39,4 +40,9 @@
 		managedForm.addPart(new OpenEjbJarGeneralSection(body, toolkit, getStyle(), getDeploymentPlan()));
 	}
 
+    @Override
+	protected void triggerGeronimoServerInfoUpdate() {
+		GeronimoServerInfo.getInstance().updateInfo();
+	}
+
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/NamingFormPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/NamingFormPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/NamingFormPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/NamingFormPage.java Sat Aug 23 22:56:20 2008
@@ -24,6 +24,7 @@
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.editors.AbstractGeronimoDeploymentPlanEditor;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.ui.sections.EjbLocalRefSection;
 import org.apache.geronimo.st.v21.ui.sections.EjbRefSection;
 import org.apache.geronimo.st.v21.ui.sections.GBeanRefSection;
@@ -114,4 +115,9 @@
     public String getFormTitle() {
         return CommonMessages.namingFormPageTitle;
     }
+
+    @Override
+    protected void triggerGeronimoServerInfoUpdate() {
+        GeronimoServerInfo.getInstance().updateInfo();
+    }
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/SecurityPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/SecurityPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/SecurityPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/SecurityPage.java Sat Aug 23 22:56:20 2008
@@ -16,12 +16,11 @@
  */
 package org.apache.geronimo.st.v21.ui.pages;
 
-import org.apache.geronimo.jee.security.Security;
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
-import org.apache.geronimo.st.v21.core.jaxb.JAXBModelUtils;
-import org.apache.geronimo.st.v21.ui.sections.SecurityRootSection;
-import org.apache.geronimo.st.v21.ui.sections.SecuritySection;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
+import org.apache.geronimo.st.v21.ui.sections.SecurityAdvancedSection;
+import org.apache.geronimo.st.v21.ui.sections.SecurityRoleMappingsSection;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormEditor;
@@ -41,9 +40,8 @@
      * @see org.apache.geronimo.ui.pages.AbstractGeronimoFormPage#fillBody(org.eclipse.ui.forms.IManagedForm)
      */
     protected void fillBody(IManagedForm managedForm) {
-        Security security = (Security)JAXBModelUtils.getSecurity(getDeploymentPlan());
-        managedForm.addPart(new SecurityRootSection(body, toolkit, getStyle(), getDeploymentPlan(), security));
-        managedForm.addPart(new SecuritySection(getDeploymentPlan(), body, toolkit, getStyle(), security.getRoleMappings()));
+        managedForm.addPart(new SecurityRoleMappingsSection(getDeploymentPlan(), getDeploymentDescriptor(), body, toolkit, getStyle()));
+        managedForm.addPart(new SecurityAdvancedSection(getDeploymentPlan(), body, toolkit, getStyle()));
     }
 
     /*
@@ -66,4 +64,9 @@
         return CommonMessages.securityPageTitle;
     }
 
+    @Override
+    protected void triggerGeronimoServerInfoUpdate() {
+        GeronimoServerInfo.getInstance().updateInfo();
+    }
+
 }

Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/WebGeneralPage.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/WebGeneralPage.java?rev=688452&r1=688451&r2=688452&view=diff
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/WebGeneralPage.java (original)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/pages/WebGeneralPage.java Sat Aug 23 22:56:20 2008
@@ -18,6 +18,7 @@
 
 import org.apache.geronimo.st.ui.CommonMessages;
 import org.apache.geronimo.st.ui.pages.AbstractGeronimoFormPage;
+import org.apache.geronimo.st.v21.core.GeronimoServerInfo;
 import org.apache.geronimo.st.v21.ui.sections.WebContainerSection;
 import org.apache.geronimo.st.v21.ui.sections.WebGeneralSection;
 import org.eclipse.ui.forms.IManagedForm;
@@ -50,4 +51,9 @@
 	public String getFormTitle() {
 		return CommonMessages.webGeneralPageTitle;
 	}
+
+	@Override
+	protected void triggerGeronimoServerInfoUpdate() {
+		GeronimoServerInfo.getInstance().updateInfo();
+	}
 }



Mime
View raw message