You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by mc...@apache.org on 2010/04/27 20:20:24 UTC

svn commit: r938593 [7/8] - in /geronimo/devtools/eclipse-plugin/trunk: plugins/org.apache.geronimo.st.ui/ plugins/org.apache.geronimo.st.v21.ui/ plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/ plugins/org.ap...

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRealmWizard.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRealmWizard.java?rev=938593&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRealmWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRealmWizard.java Tue Apr 27 18:20:22 2010
@@ -0,0 +1,1174 @@
+/*
+ * 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.v30.ui.wizards;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.JAXBElement;
+
+import org.apache.geronimo.jee.application.Application;
+import org.apache.geronimo.jee.deployment.Attribute;
+import org.apache.geronimo.jee.deployment.Dependencies;
+import org.apache.geronimo.jee.deployment.Dependency;
+import org.apache.geronimo.jee.deployment.Environment;
+import org.apache.geronimo.jee.deployment.Gbean;
+import org.apache.geronimo.jee.deployment.ObjectFactory;
+import org.apache.geronimo.jee.deployment.Reference;
+import org.apache.geronimo.jee.deployment.XmlAttributeType;
+import org.apache.geronimo.jee.loginconfig.ControlFlag;
+import org.apache.geronimo.jee.loginconfig.LoginConfig;
+import org.apache.geronimo.jee.loginconfig.LoginModule;
+import org.apache.geronimo.jee.loginconfig.Option;
+import org.apache.geronimo.jee.naming.Pattern;
+import org.apache.geronimo.jee.openejb.OpenejbJar;
+import org.apache.geronimo.jee.web.WebApp;
+import org.apache.geronimo.st.core.jaxb.JAXBObjectFactory;
+import org.apache.geronimo.st.ui.Activator;
+import org.apache.geronimo.st.ui.CommonMessages;
+import org.apache.geronimo.st.ui.sections.AbstractTableSection;
+import org.apache.geronimo.st.ui.wizards.AbstractTableWizard;
+import org.apache.geronimo.st.v30.core.GeronimoServerInfo;
+import org.apache.geronimo.st.v30.core.jaxb.JAXBObjectFactoryImpl;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.WizardPage;
+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.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class SecurityRealmWizard extends AbstractTableWizard {
+    protected ImageDescriptor descriptor = Activator.imageDescriptorFromPlugin(
+        "org.apache.geronimo.st.ui", "icons/bigG.gif");
+
+    public SecurityRealmWizard(AbstractTableSection section) {
+    super(section);
+    }
+
+    public String getWizardWindowTitle() {
+    return CommonMessages.wizardTitle_SecurityRealm;
+    }
+
+    @Override
+    public void addPages() {
+    SecurityRealmBasicPage page0 = new SecurityRealmBasicPage(
+        "SecurityRealmBasicPage");
+    page0.setImageDescriptor(descriptor);
+    addPage(page0);
+
+    PropertiesFileRealmPage page1 = new PropertiesFileRealmPage(
+        "PropertiesFileRealmPage");
+    page1.setImageDescriptor(descriptor);
+    addPage(page1);
+
+    SelectSQLPage page2 = new SelectSQLPage("SelectSQLPage");
+    page2.setImageDescriptor(descriptor);
+    addPage(page2);
+
+    DBConnectionPage page3 = new DBConnectionPage("DBConnectionPage");
+    page3.setImageDescriptor(descriptor);
+    addPage(page3);
+
+    LDAPConnectionPage page4 = new LDAPConnectionPage("LDAPConnectionPage");
+    page4.setImageDescriptor(descriptor);
+    addPage(page4);
+
+    LDAPSearchPage page5 = new LDAPSearchPage("LDAPSearchPage");
+    page5.setImageDescriptor(descriptor);
+    addPage(page5);
+
+    }
+
+    @Override
+    public JAXBObjectFactory getEFactory() {
+    return JAXBObjectFactoryImpl.getInstance();
+    }
+
+    @Override
+    public String[] getTableColumnEAttributes() {
+    return new String[] {};
+    }
+
+    @Override
+    protected String getAddWizardWindowTitle() {
+    return "New Security Realm";// TODO put into message
+    }
+
+    @Override
+    protected String getEditWizardWindowTitle() {
+    return "Edit Security Realm";// TODO put into message
+    }
+
+    public boolean performFinish() {
+    boolean isedit = false;
+    JAXBElement<?> plan = this.section.getPlan();
+    ObjectFactory objectFactory = new ObjectFactory();
+    // all pages
+    SecurityRealmBasicPage page0 = (SecurityRealmBasicPage) this
+        .getPage("SecurityRealmBasicPage");
+    PropertiesFileRealmPage page1 = (PropertiesFileRealmPage) this
+        .getPage("PropertiesFileRealmPage");
+    SelectSQLPage page2 = (SelectSQLPage) this.getPage("SelectSQLPage");
+    DBConnectionPage page3 = (DBConnectionPage) this
+        .getPage("DBConnectionPage");
+    LDAPConnectionPage page4 = (LDAPConnectionPage) this
+        .getPage("LDAPConnectionPage");
+    LDAPSearchPage page5 = (LDAPSearchPage) this.getPage("LDAPSearchPage");
+
+    // password not match , popup a dialog
+    if (!page3.textEntries[3].getText().equals(
+        page3.textEntries[4].getText())) {
+        Status status = new Status(IStatus.WARNING, "Login Error", 0,
+            "Password provided in both fields do not match", null);
+        ErrorDialog.openError(this.getShell(), "Login Error",
+            "Invalid Login Details", status);
+        return false;
+    }
+
+    // set a gbean according to the input from wizard
+    Gbean gbean = null;
+    if (eObject != null) {
+        gbean = (Gbean) ((JAXBElement) eObject).getValue();
+        isedit = true;
+    } else {
+        gbean = new Gbean();// create a new gbean
+        eObject = objectFactory.createGbean(gbean);
+    }
+
+    // add the data into gbean
+    String realmName = page0.textEntries[0].getText() == null ? ""
+        : page0.textEntries[0].getText();
+    gbean.setName(realmName);// set the gbean name the same as realm name
+    gbean
+        .setClazz("org.apache.geronimo.security.realm.GenericSecurityRealm");// TODO
+    // message
+
+    List<JAXBElement<?>> elelist = gbean
+        .getAttributeOrXmlAttributeOrReference();
+
+    // set the attribute
+    JAXBElement<Attribute> attributeElement = getAttributeElement(elelist);
+    if (attributeElement == null) {
+        attributeElement = objectFactory.createGbeanAttribute(null);
+        elelist.add(attributeElement);
+    }
+    Attribute attribute = new Attribute();
+    attribute.setName("realmName");
+    attribute.setValue(realmName);
+    attributeElement.setValue(attribute);
+
+    // set the reference
+    JAXBElement<Reference> referenceElement = getReferenceElement(elelist);
+    if (referenceElement == null) {
+        referenceElement = objectFactory.createGbeanReference(null);
+        elelist.add(referenceElement);
+    }
+    Reference ref = new Reference();
+    ref.setName("ServerInfo");
+    ref.setCustomFoo("ServerInfo");
+    referenceElement.setValue(ref);
+
+    // set the xml-reference
+    JAXBElement<XmlAttributeType> xmlrefElement = getXmlReferenceElement(elelist);
+    if (xmlrefElement == null) {
+        xmlrefElement = objectFactory.createGbeanXmlReference(null);
+        elelist.add(xmlrefElement);
+    }
+    XmlAttributeType xmlAtttribute = new XmlAttributeType();
+    xmlAtttribute.setName("LoginModuleConfiguration");
+    xmlrefElement.setValue(xmlAtttribute);
+
+    LoginConfig config = new LoginConfig();
+    xmlAtttribute.setAny(config);
+    LoginModule loginModule = new LoginModule();
+    config.getLoginModuleRefOrLoginModule().add(loginModule);
+    loginModule.setControlFlag(ControlFlag.fromValue("REQUIRED"));
+    loginModule.setWrapPrincipals(false);
+    loginModule.setLoginDomainName(realmName);
+
+    String realmType = page0.combo.getText().trim();
+    if (realmType.equals("Properties File Realm")) {
+        loginModule
+            .setLoginModuleClass("org.apache.geronimo.security.realm.providers.PropertiesFileLoginModule");
+
+        String usersfile = page1.textEntries[0].getText().trim();
+        Option usersfileopt = createOption("usersURI", usersfile);
+
+        String groupsfile = page1.textEntries[1].getText().trim();
+        Option groupsfileopt = createOption("groupsURI", groupsfile);
+
+        String algorithm = page1.textEntries[2].getText();
+        Option algorithmopt = createOption("digest", algorithm);
+
+        String encoding = page1.textEntries[3].getText();
+        Option encodingopt = createOption("encoding", encoding);
+
+        loginModule.getOption().add(usersfileopt);
+        loginModule.getOption().add(groupsfileopt);
+        if (algorithm != null)
+        loginModule.getOption().add(algorithmopt);
+        if (encoding != null)
+        loginModule.getOption().add(encodingopt);
+
+    } else if (realmType.equals("SQL Realm")) {
+        loginModule
+            .setLoginModuleClass("org.apache.geronimo.security.realm.providers.SQLLoginModule");
+
+        String selectUsers = page2.textEntries[0].getText().trim();
+        Option selectUsersopt = createOption("userSelect", selectUsers);
+
+        String selectGroups = page2.textEntries[1].getText().trim();
+        Option selectGroupsopt = createOption("groupSelect", selectGroups);
+
+        String algorithm = page2.textEntries[2].getText().trim();
+        Option algorithmopt = createOption("digest", algorithm);
+
+        String encoding = page2.textEntries[3].getText().trim();
+        Option encodingopt = createOption("encoding", encoding);
+
+        if (page3.buttons[0].getSelection()) {
+        String dsname = page3.dataBasePoolCombo.getText();
+        Option dsnameopt = createOption("dataSourceName", dsname);
+        loginModule.getOption().add(dsnameopt);
+        } else if (page3.buttons[1].getSelection()) {
+
+        String jdbcDriverClass = page3.textEntries[0].getText().trim();
+        Option jdbcDriverClassopt = createOption("jdbcDriver",
+            jdbcDriverClass);
+
+        String jdbcURL = page3.textEntries[1].getText().trim();
+        Option jdbcURLopt = createOption("jdbcURL", jdbcURL);
+
+        String userName = page3.textEntries[2].getText().trim();
+        Option userNameopt = createOption("jdbcUser", userName);
+
+        String password = page3.textEntries[3].getText().trim();
+        Option passwordopt = createOption("jdbcPassword", password);
+
+        loginModule.getOption().add(jdbcDriverClassopt);
+        loginModule.getOption().add(jdbcURLopt);
+        loginModule.getOption().add(userNameopt);
+        loginModule.getOption().add(passwordopt);
+
+        }
+
+        loginModule.getOption().add(selectUsersopt);
+        loginModule.getOption().add(selectGroupsopt);
+        loginModule.getOption().add(algorithmopt);
+        loginModule.getOption().add(encodingopt);
+
+    } else if (realmType.equals("LDAP Realm")) {
+        loginModule
+            .setLoginModuleClass("org.apache.geronimo.security.realm.providers.LDAPLoginModule");
+        String initialContextFactory = page4.combo[0].getText().trim();
+        loginModule.getOption()
+            .add(
+                createOption("initialContextFactory",
+                    initialContextFactory));
+        String connectionURL = page4.combo[1].getText();
+        loginModule.getOption().add(
+            createOption("connectionURL", connectionURL));
+        String connectionUsername = page4.text[0].getText();
+        loginModule.getOption().add(
+            createOption("connectionUsername", connectionUsername));
+        String connectionPassword = page4.text[1].getText();
+        loginModule.getOption().add(
+            createOption("connectionPassword", connectionPassword));
+        String connectionProtocol = page4.text[3].getText();
+        loginModule.getOption().add(
+            createOption("connectionProtocol", connectionProtocol));
+        String authentication = page4.combo[2].getText();
+        loginModule.getOption().add(
+            createOption("authentication", authentication));
+
+        String userBase = page5.text[0].getText();
+        loginModule.getOption().add(createOption("userBase", userBase));
+        String userSearchMatching = page5.text[1].getText();
+        loginModule.getOption().add(
+            createOption("userSearchMatching", userSearchMatching));
+        String userSearchSubtree = Boolean.toString(page5.userSearchSubtree
+            .getSelection());
+        loginModule.getOption().add(
+            createOption("userSearchSubtree", userSearchSubtree));
+        String roleBase = page5.text[2].getText();
+        loginModule.getOption().add(createOption("roleBase", roleBase));
+        String roleName = page5.text[3].getText();
+        loginModule.getOption().add(createOption("roleName", roleName));
+        String roleSearchMatching = page5.text[4].getText();
+        loginModule.getOption().add(
+            createOption("roleSearchMatching", roleSearchMatching));
+        String userRoleName = page5.text[5].getText();
+        loginModule.getOption().add(
+            createOption("userRoleName", userRoleName));
+        String roleSearchSubtree = Boolean.toString(page5.roleSearchSubtree
+            .getSelection());
+        loginModule.getOption().add(
+            createOption("roleSearchSubtree", roleSearchSubtree));
+    }
+
+    if (isedit)
+        return true;
+
+    // is add, need to add the gbean into plan
+    Object planValue = plan.getValue();
+    if (Application.class.isInstance(planValue)) {
+        Application application = (Application) planValue;
+
+        // set dependency
+        Environment env = application.getEnvironment();
+        if (env == null) {
+        env = new Environment();
+        application.setEnvironment(env);
+        }
+        setDependency(env);
+
+        // add the gbean into plan
+        JAXBElement<Gbean> gbeanElement = objectFactory.createGbean(gbean);
+        application.getService().add(gbeanElement);
+    } else if (WebApp.class.isInstance(planValue)) {
+        WebApp webapp = (WebApp) planValue;
+
+        // set dependency
+        Environment env = webapp.getEnvironment();
+        if (env == null) {
+        env = new Environment();
+        webapp.setEnvironment(env);
+        }
+        setDependency(env);
+
+        // add the gbean into plan
+        JAXBElement<Gbean> gbeanElement = objectFactory.createGbean(gbean);
+        webapp.getServiceOrPersistence().add(gbeanElement);
+    } else if (OpenejbJar.class.isInstance(planValue)) {
+        OpenejbJar openejbJar = (OpenejbJar) planValue;
+
+        // set dependency
+        Environment env = openejbJar.getEnvironment();
+        if (env == null) {
+        env = new Environment();
+        openejbJar.setEnvironment(env);
+        }
+        setDependency(env);
+
+        // add the gbean into plan
+        JAXBElement<Gbean> gbeanElement = objectFactory.createGbean(gbean);
+        openejbJar.getService().add(gbeanElement);
+    }
+
+    return true;
+    }
+
+    private void setDependency(Environment env) {
+    Dependencies dependencies = env.getDependencies();
+    if (dependencies == null) {
+        dependencies = new Dependencies();
+        env.setDependencies(dependencies);
+    }
+    Dependency securityDependency = new Dependency();
+    securityDependency.setGroupId("org.apache.geronimo.framework");
+    securityDependency.setArtifactId("j2ee-security");
+    securityDependency.setType("car");
+    if (!dependencies.getDependency().contains(securityDependency)) {
+        dependencies.getDependency().add(securityDependency);
+    }
+    }
+
+    private Option createOption(String name, String value) {
+    Option option = new Option();
+    option.setName(name);
+    option.setValue(value);
+    return option;
+    }
+
+    private JAXBElement<Attribute> getAttributeElement(List<JAXBElement<?>> list) {
+    for (JAXBElement<?> ele : list) {
+        if (Attribute.class.isInstance(ele.getValue())
+            && ((Attribute) ele.getValue()).getName().equals(
+                "realmName")) {
+        return (JAXBElement<Attribute>) ele;
+        }
+    }
+    return null;
+    }
+
+    private JAXBElement<Reference> getReferenceElement(List<JAXBElement<?>> list) {
+    for (JAXBElement<?> ele : list) {
+        if (Reference.class.isInstance(ele.getValue())
+            && ((Reference) ele.getValue()).getName().equals(
+                "ServerInfo")) {
+        return (JAXBElement<Reference>) ele;
+        }
+    }
+    return null;
+    }
+
+    private JAXBElement<XmlAttributeType> getXmlReferenceElement(
+        List<JAXBElement<?>> list) {
+    for (JAXBElement<?> ele : list) {
+        if (XmlAttributeType.class.isInstance(ele.getValue())
+            && ((XmlAttributeType) ele.getValue()).getName().equals(
+                "LoginModuleConfiguration")) {
+        return (JAXBElement<XmlAttributeType>) ele;
+        }
+    }
+    return null;
+    }
+
+    public class SecurityRealmBasicPage extends WizardPage {
+    private int recordedRealmType = -2;
+
+    Text textEntries[] = new Text[1];
+    Combo combo = null;
+
+    public SecurityRealmBasicPage(String pageName) {
+        super(pageName);
+        setTitle(CommonMessages.wizardFirstPageTitle_SecurityRealm);
+        setDescription(CommonMessages.wizardFirstPageDescription_SecurityRealm);
+    }
+
+    public void createControl(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);
+
+        Group basicGroup = new Group(composite, SWT.NONE);
+        basicGroup.setText("Basic Settings");
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        GridData data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.grabExcessVerticalSpace = true;
+        data1.horizontalSpan = 2;
+        basicGroup.setLayout(gridLayout);
+        data1.grabExcessHorizontalSpace = true;
+        basicGroup.setLayoutData(data1);
+        createLabel(basicGroup, CommonMessages.realmName, 1);
+        textEntries[0] = createText(basicGroup, 3);
+        createLabel(basicGroup, CommonMessages.realmType, 1);
+        combo = new Combo(basicGroup, SWT.NONE | SWT.READ_ONLY);
+        combo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+            true, false, 3, 1));
+        combo.add("Properties File Realm");
+        combo.add("SQL Realm");
+        combo.add("LDAP Realm");
+        combo.select(0);
+
+        if (eObject != null) {
+        Gbean gbean = (Gbean) ((JAXBElement) eObject).getValue();
+        String realmName = getAttributeValue(gbean, "realmName");
+        this.textEntries[0].setText(realmName == null ? "" : realmName);
+        String loginModuleClass = getLoginModuleClass(gbean);
+        if ("org.apache.geronimo.security.realm.providers.PropertiesFileLoginModule"
+            .equals(loginModuleClass)) {
+            this.combo.select(0);
+        } else if ("org.apache.geronimo.security.realm.providers.SQLLoginModule"
+            .equals(loginModuleClass)) {
+            this.combo.select(1);
+        } else if ("org.apache.geronimo.security.realm.providers.LDAPLoginModule"
+            .equals(loginModuleClass)) {
+            this.combo.select(2);
+        }
+        }
+        setControl(composite);
+    }
+
+    public int getRecordedRealmType() {
+        return recordedRealmType;
+    }
+
+    public void setRecordedRealmType(int recordedRealmType) {
+        this.recordedRealmType = recordedRealmType;
+    }
+
+    public int getRealmTypeSelectionIndex() {
+        if (combo != null) {
+        return combo.getSelectionIndex();
+        } else {
+        return -1;
+        }
+    }
+
+    @Override
+    public IWizardPage getNextPage() {
+        if (combo.getText().trim().equals("Properties File Realm")) {// properties
+        // file
+        // type
+        return this.getWizard().getPage("PropertiesFileRealmPage");
+        } else if (combo.getText().trim().equals("SQL Realm")) {// sql realm
+        // type
+        return this.getWizard().getPage("SelectSQLPage");
+        } else if (combo.getText().trim().equals("LDAP Realm")) {// ldap
+        // realm
+        // type
+        return this.getWizard().getPage("LDAPConnectionPage");
+        }
+        return null;
+    }
+    }
+
+    public class PropertiesFileRealmPage extends WizardPage {
+
+    Text textEntries[] = new Text[4];
+
+    public PropertiesFileRealmPage(String pageName) {
+        super(pageName);
+        setTitle("Properties File Realm");
+        setDescription("Edit settings for users file and groups file's pathes");
+    }
+
+    public void createControl(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);
+
+        Group uriGroup = new Group(composite, SWT.NONE);
+        uriGroup.setText("Files's URI");
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        uriGroup.setLayout(gridLayout);
+        GridData data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.grabExcessVerticalSpace = true;
+        data1.horizontalSpan = 2;
+        data1.grabExcessHorizontalSpace = true;
+        uriGroup.setLayoutData(data1);
+        createLabel(uriGroup, "Users File URI:", 1);
+        textEntries[0] = createText(uriGroup, 3);
+        createLabel(uriGroup, "Groups File URI:", 1);
+        textEntries[1] = createText(uriGroup, 3);
+
+        Group digestGroup = new Group(composite, SWT.NONE);
+        digestGroup.setText("Digest Configuration");
+        gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        digestGroup.setLayout(gridLayout);
+        data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.grabExcessVerticalSpace = true;
+        data1.horizontalSpan = 2;
+        data1.grabExcessHorizontalSpace = true;
+        digestGroup.setLayoutData(data1);
+        createLabel(digestGroup, "Digest Algorithm:", 1);
+        textEntries[2] = createText(digestGroup, 3);
+        createLabel(digestGroup, "Digest Encoding:", 1);
+        textEntries[3] = createText(digestGroup, 3);
+
+        if (eObject != null) {
+        Gbean gbean = (Gbean) ((JAXBElement) eObject).getValue();
+        if (getOptionValue(gbean, "usersURI") != null) {
+            textEntries[0].setText(getOptionValue(gbean, "usersURI"));
+        }
+        if (getOptionValue(gbean, "groupsURI") != null) {
+            textEntries[1].setText(getOptionValue(gbean, "groupsURI"));
+        }
+        if (getOptionValue(gbean, "digest") != null) {
+            textEntries[2].setText(getOptionValue(gbean, "digest"));
+        }
+        if (getOptionValue(gbean, "encoding") != null) {
+            textEntries[3].setText(getOptionValue(gbean, "encoding"));
+        }
+        }
+
+        setControl(composite);
+    }
+
+    public boolean canFlipToNextPage() {
+        // no next page for this path through the wizard
+        return false;
+    }
+
+    public IWizardPage getNextPage() {
+        return null;
+    }
+    }
+
+    public class SelectSQLPage extends WizardPage {
+
+    Text textEntries[] = new Text[4];
+
+    public SelectSQLPage(String pageName) {
+        super(pageName);
+        setTitle("SQL Realm");
+        setDescription("Edit settings for user and group select sql");
+    }
+
+    public void createControl(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);
+
+        Group uriGroup = new Group(composite, SWT.NONE);
+        uriGroup.setText("Select SQL");
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        uriGroup.setLayout(gridLayout);
+        GridData data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.grabExcessVerticalSpace = true;
+        data1.horizontalSpan = 2;
+        data1.grabExcessHorizontalSpace = true;
+        uriGroup.setLayoutData(data1);
+        createLabel(uriGroup, "Users Select SQL:", 1);
+        textEntries[0] = createText(uriGroup, 3);
+        createLabel(uriGroup, "Groups Select SQL:", 1);
+        textEntries[1] = createText(uriGroup, 3);
+
+        Group digestGroup = new Group(composite, SWT.NONE);
+        digestGroup.setText("Digest Configuration");
+        gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        digestGroup.setLayout(gridLayout);
+        data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.grabExcessVerticalSpace = true;
+        data1.horizontalSpan = 2;
+        data1.grabExcessHorizontalSpace = true;
+        digestGroup.setLayoutData(data1);
+        createLabel(digestGroup, "Digest Algorithm:", 1);
+        textEntries[2] = createText(digestGroup, 3);
+        createLabel(digestGroup, "Digest Encoding:", 1);
+        textEntries[3] = createText(digestGroup, 3);
+
+        if (eObject != null) {
+        Gbean gbean = (Gbean) ((JAXBElement) eObject).getValue();
+        if (getOptionValue(gbean, "userSelect") != null) {
+            textEntries[0].setText(getOptionValue(gbean, "userSelect"));
+        }
+        if (getOptionValue(gbean, "groupSelect") != null) {
+            textEntries[1]
+                .setText(getOptionValue(gbean, "groupSelect"));
+        }
+        if (getOptionValue(gbean, "digest") != null) {
+            textEntries[2].setText(getOptionValue(gbean, "digest"));
+        }
+        if (getOptionValue(gbean, "encoding") != null) {
+            textEntries[3].setText(getOptionValue(gbean, "encoding"));
+        }
+        }
+
+        setControl(composite);
+    }
+
+    @Override
+    public IWizardPage getNextPage() {
+        return this.getWizard().getPage("DBConnectionPage");
+    }
+
+    }
+
+    public class DBConnectionPage extends WizardPage {
+
+    Text textEntries[] = new Text[5];
+    Button buttons[] = new Button[2];
+    Combo dataBasePoolCombo;
+
+    protected DBConnectionPage(String pageName) {
+        super(pageName);
+        setTitle(CommonMessages.wizardSecondPageTitle_SecurityRealm);
+        setDescription(CommonMessages.wizardSecondPageDescription_SecurityRealm);
+    }
+
+    public void createControl(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);
+
+        Group databasePoolGroup = new Group(composite, SWT.NONE);
+        databasePoolGroup.setText(CommonMessages.dataBasePool);
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        GridData data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.horizontalSpan = 2;
+        databasePoolGroup.setLayout(gridLayout);
+        databasePoolGroup.setLayoutData(data1);
+        buttons[0] = new Button(databasePoolGroup, SWT.RADIO);
+        buttons[0].setSelection(true);
+        buttons[0].setText(CommonMessages.useDataBasePool);
+        buttons[0].setLayoutData(new GridData(GridData.FILL,
+            GridData.CENTER, true, false, 4, 1));
+        buttons[0].addSelectionListener(new SelectionAdapter() {
+        public void widgetSelected(SelectionEvent event) {
+            buttons[1].setSelection(false);
+            dataBasePoolCombo.setEnabled(true);
+            for (int i = 0; i < textEntries.length; i++) {
+            textEntries[i].setEnabled(false);
+            }
+        }
+        });
+        createLabel(databasePoolGroup, CommonMessages.dataBasePoolName, 1);
+        dataBasePoolCombo = new Combo(databasePoolGroup, SWT.NONE);
+        dataBasePoolCombo.setLayoutData(new GridData(GridData.FILL,
+            GridData.FILL, true, false, 3, 1));
+        populateList(dataBasePoolCombo);
+        dataBasePoolCombo.select(0);
+
+        GridData data2 = new GridData();
+        data2.horizontalAlignment = GridData.FILL;
+        data2.grabExcessHorizontalSpace = true;
+        data2.horizontalSpan = 2;
+        Group databaseGroup = new Group(composite, SWT.NONE);
+        databaseGroup.setLayout(gridLayout);
+        databaseGroup.setLayoutData(data2);
+        buttons[1] = new Button(databaseGroup, SWT.RADIO);
+        buttons[1].setText(CommonMessages.useDataBase);
+        buttons[1].setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+            true, false, 4, 1));
+        buttons[1].addSelectionListener(new SelectionAdapter() {
+        public void widgetSelected(SelectionEvent event) {
+            buttons[0].setSelection(false);
+            dataBasePoolCombo.setEnabled(false);
+            for (int i = 0; i < textEntries.length; i++) {
+            textEntries[i].setEnabled(true);
+            }
+        }
+        });
+        createLabel(databaseGroup, CommonMessages.jdbcDriverClass, 1);
+        textEntries[0] = createText(databaseGroup, 3);
+
+        createLabel(databaseGroup, CommonMessages.jdbcURL, 1);
+        textEntries[1] = createText(databaseGroup, 3);
+        createLabel(databaseGroup, CommonMessages.jdbcUserName, 1);
+        textEntries[2] = createText(databaseGroup, 3);
+        createLabel(databaseGroup, CommonMessages.jdbcPassword, 1);
+        textEntries[3] = createText(databaseGroup, 1);
+        textEntries[3].setEchoChar('*');
+        createLabel(databaseGroup, CommonMessages.confirmPassword, 1);
+        textEntries[4] = createText(databaseGroup, 1);
+        textEntries[4].setEchoChar('*');
+
+        dataBasePoolCombo.setEnabled(true);
+        for (int i = 0; i < textEntries.length; i++) {
+        textEntries[i].setEnabled(false);
+        }
+
+        if (eObject != null) {
+        Gbean gbean = (Gbean) ((JAXBElement) eObject).getValue();
+        if (getOptionValue(gbean, "dataSourceName") != null) {
+            this.buttons[0].setSelection(true);
+            this.dataBasePoolCombo.setEnabled(true);
+            this.dataBasePoolCombo.setText(getOptionValue(gbean,
+                "dataSourceName"));
+
+            this.buttons[1].setSelection(false);
+            for (int i = 0; i < textEntries.length; i++) {
+            this.textEntries[i].setEnabled(false);
+            }
+
+        } else {
+            this.buttons[1].setSelection(true);
+            this.buttons[0].setSelection(false);
+            this.dataBasePoolCombo.setEnabled(false);
+            for (int i = 0; i < textEntries.length; i++) {
+            textEntries[i].setEnabled(true);
+            }
+
+            if (getOptionValue(gbean, "jdbcDriver") != null) {
+            this.textEntries[0].setText(getOptionValue(gbean,
+                "jdbcDriver"));
+            }
+            if (getOptionValue(gbean, "jdbcURL") != null) {
+            this.textEntries[1].setText(getOptionValue(gbean,
+                "jdbcURL"));
+            }
+            if (getOptionValue(gbean, "jdbcUser") != null) {
+            this.textEntries[2].setText(getOptionValue(gbean,
+                "jdbcUser"));
+            }
+            if (getOptionValue(gbean, "jdbcPassword") != null) {
+            this.textEntries[3].setText(getOptionValue(gbean,
+                "jdbcPassword"));
+            this.textEntries[4].setText(getOptionValue(gbean,
+                "jdbcPassword"));
+            }
+        }
+
+        }
+
+        setControl(composite);
+
+    }
+
+    private void populateList(Combo combo) {
+        ArrayList<Pattern> dbPool = GeronimoServerInfo.getInstance()
+            .getJdbcConnectionPools();
+        for (int i = 0; i < dbPool.size(); i++) {
+        String str = dbPool.get(i).getName();
+        combo.add(str);
+        }
+    }
+
+    public boolean canFlipToNextPage() {
+        // no next page for this path through the wizard
+        return false;
+    }
+
+    public IWizardPage getNextPage() {
+        return null;
+    }
+    }
+
+    public class LDAPConnectionPage extends WizardPage {
+    Text[] text = new Text[4];
+    Combo[] combo = new Combo[3];
+
+    protected LDAPConnectionPage(String pageName) {
+        super(pageName);
+        setTitle("LDAP Realm Connection");
+        setDescription("Edit settings for LDAP server connection");
+    }
+
+    public void createControl(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);
+
+        Group connectionGroup = new Group(composite, SWT.NULL);
+        connectionGroup.setText("LDAP server connection");
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        GridData data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.horizontalSpan = 2;
+        connectionGroup.setLayout(gridLayout);
+        connectionGroup.setLayoutData(data1);
+
+        createLabel(connectionGroup, "Initial Context Factory:", 1);
+        combo[0] = new Combo(connectionGroup, SWT.NONE);
+        combo[0].setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+            true, false, 3, 1));
+        combo[0].add("com.sun.jndi.ldap.LdapCtxFactory");
+        createLabel(connectionGroup, "Connection URL:", 1);
+        combo[1] = new Combo(connectionGroup, SWT.NONE);
+        combo[1].setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+            true, false, 3, 1));
+        combo[1].add("ldap://localhost:1389");
+        combo[1].add("ldap://localhost:389");
+        createLabel(connectionGroup, "Connect Username:", 1);
+        text[0] = createText(connectionGroup, 3);
+        text[0].setText("system");
+        createLabel(connectionGroup, "Connect Password:", 1);
+        text[1] = createText(connectionGroup, 3);
+        text[1].setEchoChar('*');
+        text[1].setText("manager");
+        createLabel(connectionGroup, "Confirm Password:", 1);
+        text[2] = createText(connectionGroup, 3);
+        text[2].setEchoChar('*');
+        text[2].setText("manager");
+        createLabel(connectionGroup, "Connect Protocol:", 1);
+        text[3] = createText(connectionGroup, 1);
+        createLabel(connectionGroup, "Authentication:", 1);
+        combo[2] = new Combo(connectionGroup, SWT.NONE);
+        combo[2].setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+            true, false, 1, 1));
+        combo[2].add("none");
+        combo[2].add("simple");
+        combo[2].add("strong");
+        combo[2].select(1);
+
+        if (eObject != null) {
+        Gbean gbean = (Gbean) ((JAXBElement) eObject).getValue();
+        if (getOptionValue(gbean, "initialContextFactory") != null) {
+            this.combo[0].setText(getOptionValue(gbean,
+                "initialContextFactory"));
+        }
+        if (getOptionValue(gbean, "connectionURL") != null) {
+            this.combo[1]
+                .setText(getOptionValue(gbean, "connectionURL"));
+        }
+        if (getOptionValue(gbean, "connectionUsername") != null) {
+            this.text[0].setText(getOptionValue(gbean,
+                "connectionUsername"));
+        }
+        if (getOptionValue(gbean, "connectionPassword") != null) {
+            this.text[1].setText(getOptionValue(gbean,
+                "connectionPassword"));
+            this.text[2].setText(getOptionValue(gbean,
+                "connectionPassword"));
+        }
+        if (getOptionValue(gbean, "connectionProtocol") != null) {
+            this.text[3].setText(getOptionValue(gbean,
+                "connectionProtocol"));
+        }
+        if (getOptionValue(gbean, "authentication") != null) {
+            this.combo[2].setText(getOptionValue(gbean,
+                "authentication"));
+        }
+
+        }
+
+        setControl(composite);
+    }
+
+    public IWizardPage getNextPage() {
+        return this.getWizard().getPage("LDAPSearchPage");
+    }
+
+    }
+
+    public class LDAPSearchPage extends WizardPage {
+    Text[] text = new Text[6];
+    Button userSearchSubtree, roleSearchSubtree;
+
+    protected LDAPSearchPage(String pageName) {
+        super(pageName);
+        setTitle("LDAP Realm Search Configuration");
+        setDescription("Edit settings for LDAP realm search");
+    }
+
+    public void createControl(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);
+
+        Group userGroup = new Group(composite, SWT.NULL);
+        userGroup.setText("User Search Configuration");
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        GridData data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.horizontalSpan = 2;
+        userGroup.setLayout(gridLayout);
+        userGroup.setLayoutData(data1);
+
+        createLabel(userGroup, "User Base:", 1);
+        text[0] = createText(userGroup, 3);
+        createLabel(userGroup, "User Search Matching:", 1);
+        text[1] = createText(userGroup, 3);
+        userSearchSubtree = new Button(userGroup, SWT.CHECK);
+        userSearchSubtree.setText("User Search Subtree");
+        userSearchSubtree.setLayoutData(new GridData(GridData.FILL,
+            GridData.FILL, true, false, 4, 1));
+        userSearchSubtree.setSelection(true);
+
+        Group roleGroup = new Group(composite, SWT.NULL);
+        roleGroup.setText("Role Search Configuration");
+        gridLayout = new GridLayout();
+        gridLayout.numColumns = 4;
+        data1 = new GridData();
+        data1.horizontalAlignment = GridData.FILL;
+        data1.grabExcessHorizontalSpace = true;
+        data1.horizontalSpan = 2;
+        roleGroup.setLayout(gridLayout);
+        roleGroup.setLayoutData(data1);
+        createLabel(roleGroup, "Role Base:", 1);
+        text[2] = createText(roleGroup, 3);
+        createLabel(roleGroup, "Role Name:", 1);
+        text[3] = createText(roleGroup, 3);
+        createLabel(roleGroup, "Role User Search String:", 1);
+        text[4] = createText(roleGroup, 3);
+        createLabel(roleGroup, "User Role Search String:", 1);
+        text[5] = createText(roleGroup, 3);
+        roleSearchSubtree = new Button(roleGroup, SWT.CHECK);
+        roleSearchSubtree.setText("Role Search Subtree");
+        roleSearchSubtree.setLayoutData(new GridData(GridData.FILL,
+            GridData.FILL, true, false, 4, 1));
+        roleSearchSubtree.setSelection(true);
+
+        if (eObject != null) {
+        Gbean gbean = (Gbean) ((JAXBElement<?>) eObject).getValue();
+        if (getOptionValue(gbean, "userBase") != null) {
+            text[0].setText(getOptionValue(gbean, "userBase"));
+        }
+        if (getOptionValue(gbean, "userSearchMatching") != null) {
+            text[1]
+                .setText(getOptionValue(gbean, "userSearchMatching"));
+        }
+        if (getOptionValue(gbean, "userSearchSubtree") != null) {
+            this.userSearchSubtree.setSelection(Boolean
+                .parseBoolean(getOptionValue(gbean,
+                    "userSearchSubtree")));
+        }
+        if (getOptionValue(gbean, "roleBase") != null) {
+            text[2].setText(getOptionValue(gbean, "roleBase"));
+        }
+        if (getOptionValue(gbean, "roleName") != null) {
+            text[3].setText(getOptionValue(gbean, "roleName"));
+        }
+        if (getOptionValue(gbean, "roleSearchMatching") != null) {
+            text[4]
+                .setText(getOptionValue(gbean, "roleSearchMatching"));
+        }
+        if (getOptionValue(gbean, "userRoleName") != null) {
+            text[5].setText(getOptionValue(gbean, "userRoleName"));
+        }
+        if (getOptionValue(gbean, "roleSearchSubtree") != null) {
+            this.userSearchSubtree.setSelection(Boolean
+                .parseBoolean(getOptionValue(gbean,
+                    "roleSearchSubtree")));
+        }
+        }
+
+        setControl(composite);
+    }
+
+    public boolean canFlipToNextPage() {
+        // no next page for this path through the wizard
+        return false;
+    }
+
+    public IWizardPage getNextPage() {
+        return null;
+    }
+
+    }
+
+    private String getAttributeValue(Gbean gbean, String attributeName) {
+    try {
+        List<JAXBElement<?>> elelist = gbean
+            .getAttributeOrXmlAttributeOrReference();
+        for (JAXBElement<?> ele : elelist) {
+        if (Attribute.class.isInstance(ele.getValue())
+            && ((Attribute) ele.getValue()).getName().equals(
+                attributeName)) {
+            return ((Attribute) ele.getValue()).getValue();
+        }
+        }
+    } catch (NullPointerException e) {
+        // ignore
+    }
+    return null;
+    }
+
+    private String getLoginModuleClass(Gbean gbean) {
+
+    try {
+        List<JAXBElement<?>> elelist = gbean
+            .getAttributeOrXmlAttributeOrReference();
+        for (JAXBElement<?> ele : elelist) {
+        if (XmlAttributeType.class.isInstance(ele.getValue())
+            && ((XmlAttributeType) ele.getValue()).getName()
+                .equals("LoginModuleConfiguration")) {
+            LoginModule loginModule = (LoginModule) ((LoginConfig) ((XmlAttributeType) ele
+                .getValue()).getAny())
+                .getLoginModuleRefOrLoginModule().get(0);
+            return loginModule.getLoginModuleClass();
+        }
+        }
+        return null;
+    } catch (NullPointerException e) {
+        // ignore
+    }
+
+    return null;
+    }
+
+    private String getOptionValue(Gbean gbean, String optionName) {
+    try {
+        List<JAXBElement<?>> elelist = gbean
+            .getAttributeOrXmlAttributeOrReference();
+        for (JAXBElement<?> ele : elelist) {
+        if (XmlAttributeType.class.isInstance(ele.getValue())
+            && ((XmlAttributeType) ele.getValue()).getName()
+                .equals("LoginModuleConfiguration")) {
+            LoginModule loginModule = (LoginModule) ((LoginConfig) ((XmlAttributeType) ele
+                .getValue()).getAny())
+                .getLoginModuleRefOrLoginModule().get(0);
+            List<Option> options = loginModule.getOption();
+            for (Option opt : options) {
+            if (opt.getName().equals(optionName))
+                return opt.getValue();
+            }
+        }
+        }
+        return null;
+    } catch (NullPointerException e) {
+        // ignore
+    }
+
+    return null;
+    }
+
+    protected Label createLabel(Composite composite, String value, int span) {
+    Label label = new Label(composite, SWT.NONE);
+    label.setText(value);
+    GridData labelData = new GridData();
+    labelData.horizontalAlignment = GridData.FILL;
+    labelData.horizontalSpan = span;
+    label.setLayoutData(labelData);
+    return label;
+    }
+
+    protected Text createText(Composite composite, int span) {
+    Text text = new Text(composite, SWT.BORDER);
+    GridData textData = new GridData(GridData.HORIZONTAL_ALIGN_FILL
+        | GridData.VERTICAL_ALIGN_FILL);
+    textData.grabExcessHorizontalSpace = true;
+    textData.widthHint = 100;
+    textData.horizontalSpan = span;
+    text.setLayoutData(textData);
+    return text;
+    }
+}

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

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

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

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRoleMappingWizard.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRoleMappingWizard.java?rev=938593&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRoleMappingWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRoleMappingWizard.java Tue Apr 27 18:20:22 2010
@@ -0,0 +1,234 @@
+/*
+ * 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.v30.ui.wizards;
+
+import java.util.List;
+
+import org.apache.geronimo.jee.security.DistinguishedName;
+import org.apache.geronimo.jee.security.LoginDomainPrincipal;
+import org.apache.geronimo.jee.security.Principal;
+import org.apache.geronimo.jee.security.RealmPrincipal;
+import org.apache.geronimo.jee.security.Role;
+import org.apache.geronimo.st.core.jaxb.JAXBObjectFactory;
+import org.apache.geronimo.st.ui.CommonMessages;
+import org.apache.geronimo.st.ui.sections.AbstractTreeSection;
+import org.apache.geronimo.st.ui.wizards.AbstractWizard;
+import org.apache.geronimo.st.v30.core.GeronimoServerInfo;
+import org.apache.geronimo.st.v30.core.jaxb.JAXBObjectFactoryImpl;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+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 class SecurityRoleMappingWizard extends AbstractWizard {
+    public static final String[] PRINCIPAL_CLASSES = {
+            "org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal",
+            "org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" };
+
+    private final int DISTINGUISHED_NAME = 0;
+    private final int PRINCIPAL = 1;
+    private final int LOGIN_DOMAIN_PRINCIPAL = 2;
+    private final int REALM_PRINCIPAL = 3;
+    private final String[] ROLE_MAPPING_TYPES = {
+            "Distinguished Name", "Principal", "Login Domain Principal", "Realm Principal" };
+
+    protected AbstractTreeSection section;
+    protected Combo type;
+    protected Text name;
+    protected Combo clazz;
+    protected Text domainName;
+    protected Combo realmName;
+    
+    public SecurityRoleMappingWizard(AbstractTreeSection section) {
+        super();
+        this.section = section;
+    }
+
+    protected static String[] getSecurityRealms() {
+        List<String> securityRealms = GeronimoServerInfo.getInstance().getSecurityRealms();
+        return securityRealms.toArray(new String[securityRealms.size()]);
+    }
+
+    public class SecurityRoleMappingsWizardPage extends AbstractWizardPage {
+        protected Label nameLabel, clazzLabel, domainNameLabel, realmNameLabel;
+
+        public SecurityRoleMappingsWizardPage(String pageName) {
+            super(pageName);
+        }
+
+        public void createControl(Composite parent) {
+            Composite composite = createComposite(parent);
+            createLabel(composite, CommonMessages.type);
+            type = createCombo(composite, ROLE_MAPPING_TYPES, false);
+            nameLabel = createLabel(composite, CommonMessages.name);
+            name = createTextField(composite, "");
+            name.setFocus();
+            clazzLabel = createLabel(composite, CommonMessages.className);
+            clazz = createCombo(composite, PRINCIPAL_CLASSES, true);
+            clazz.select(0);
+            domainNameLabel = createLabel(composite, CommonMessages.editorDomainName);
+            domainName = createTextField(composite, "");
+            realmNameLabel = createLabel(composite, CommonMessages.editorRealmName);
+            realmName = createCombo(composite, getSecurityRealms(), true);
+
+            type.addSelectionListener(new SelectionAdapter() {
+                public void widgetSelected(SelectionEvent arg0) {
+                    toggleFields();
+                }
+            });
+            if (eObject == null) {
+                type.select(DISTINGUISHED_NAME);
+            }
+            else {
+                // set the fields to the values in eObject and select the correct type
+                if (DistinguishedName.class.isInstance(eObject)) {
+                    name.setText(((DistinguishedName)eObject).getName());
+                    type.select(DISTINGUISHED_NAME);
+                }
+                else {
+                    name.setText(((Principal)eObject).getName());
+                    clazz.setText(((Principal)eObject).getClazz());
+                    if (LoginDomainPrincipal.class.isInstance(eObject)) {
+                        domainName.setText(((LoginDomainPrincipal)eObject).getDomainName());
+                        if (RealmPrincipal.class.isInstance(eObject)) {
+                            realmName.setText(((RealmPrincipal)eObject).getRealmName());
+                            type.select(REALM_PRINCIPAL);
+                        }
+                        else {
+                            type.select(LOGIN_DOMAIN_PRINCIPAL);
+                        }
+                    }
+                    else {
+                        type.select(PRINCIPAL);
+                    }
+                }
+                type.setEnabled(false);
+            }
+            toggleFields();
+            setControl(composite);
+        }
+
+        private void toggleFields() {
+            int selection = type.getSelectionIndex();
+            clazzLabel.setVisible (selection >= PRINCIPAL ? true : false);
+            clazz.setVisible (selection >= PRINCIPAL ? true : false);
+            domainNameLabel.setVisible (selection >= LOGIN_DOMAIN_PRINCIPAL ? true : false);
+            domainName.setVisible (selection >= LOGIN_DOMAIN_PRINCIPAL ? true : false);
+            realmNameLabel.setVisible (selection == REALM_PRINCIPAL ? true : false);
+            realmName.setVisible (selection == REALM_PRINCIPAL ? true : false);
+        }
+
+        @Override
+        protected String getWizardPageTitle() {
+            return CommonMessages.wizardPageTitle_RoleMapping;
+        }
+
+        @Override
+        protected String getWizardPageDescription() {
+            return CommonMessages.wizardPageDescription_RoleMapping;
+        }
+    }
+
+    @Override
+    public void addPages() {
+        addPage(new SecurityRoleMappingsWizardPage("Page0"));
+    }
+
+    @Override
+    public boolean performFinish() {
+        switch (type.getSelectionIndex()) {
+        case DISTINGUISHED_NAME:
+            if (isEmpty(name.getText())) {
+                return false;
+            }
+            DistinguishedName distinguishedName = (DistinguishedName)eObject;
+            if (distinguishedName == null) {
+                distinguishedName = (DistinguishedName)getEFactory().create(DistinguishedName.class);
+                Role role = (Role) section.getSelectedObject();
+                role.getDistinguishedName().add(distinguishedName);
+            }
+            distinguishedName.setName(name.getText());
+            break;
+
+        case PRINCIPAL:
+            if (isEmpty(name.getText()) || isEmpty(clazz.getText())) {
+                return false;
+            }
+            Principal principal = (Principal)eObject;
+            if (principal == null) {
+                principal = (Principal)getEFactory().create(Principal.class);
+                Role role = (Role) section.getSelectedObject();
+                role.getPrincipal().add(principal);
+            }
+            principal.setName(name.getText());
+            principal.setClazz(clazz.getText());
+            break;
+
+        case LOGIN_DOMAIN_PRINCIPAL:
+            if (isEmpty(name.getText()) || isEmpty(clazz.getText()) || isEmpty(domainName.getText())) {
+                return false;
+            }
+            LoginDomainPrincipal loginDomainPrincipal = (LoginDomainPrincipal)eObject;
+            if (loginDomainPrincipal == null) {
+                loginDomainPrincipal = (LoginDomainPrincipal)getEFactory().create(LoginDomainPrincipal.class);
+                Role role = (Role) section.getSelectedObject();
+                role.getLoginDomainPrincipal().add(loginDomainPrincipal);
+            }
+            loginDomainPrincipal.setName(name.getText());
+            loginDomainPrincipal.setClazz(clazz.getText());
+            loginDomainPrincipal.setDomainName(domainName.getText()); 
+            break;
+
+        case REALM_PRINCIPAL:
+            if (isEmpty(name.getText()) || isEmpty(clazz.getText()) || isEmpty(domainName.getText())
+                    || isEmpty(realmName.getText())) {
+                return false;
+            }
+            RealmPrincipal realmPrincipal = (RealmPrincipal)eObject;
+            if (realmPrincipal == null) {
+                realmPrincipal = (RealmPrincipal)getEFactory().create(RealmPrincipal.class);
+                Role role = (Role) section.getSelectedObject();
+                role.getRealmPrincipal().add(realmPrincipal);
+            }
+            realmPrincipal.setName(name.getText());
+            realmPrincipal.setClazz(clazz.getText());
+            realmPrincipal.setDomainName(domainName.getText());
+            realmPrincipal.setRealmName(realmName.getText());
+            break;
+        }
+        return true;
+    }
+    
+    public JAXBObjectFactory getEFactory() {
+        return JAXBObjectFactoryImpl.getInstance();
+    }
+
+    @Override
+    protected String getAddWizardWindowTitle() {
+        return CommonMessages.wizardNewTitle_RoleMapping;
+    }
+
+    @Override
+    protected String getEditWizardWindowTitle() {
+        return CommonMessages.wizardEditTitle_RoleMapping;
+    }
+}

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

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

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

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRunAsSubjectWizard.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRunAsSubjectWizard.java?rev=938593&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRunAsSubjectWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/SecurityRunAsSubjectWizard.java Tue Apr 27 18:20:22 2010
@@ -0,0 +1,110 @@
+/*
+ * 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.v30.ui.wizards;
+
+import org.apache.geronimo.jee.security.Role;
+import org.apache.geronimo.jee.security.SubjectInfo;
+import org.apache.geronimo.st.ui.CommonMessages;
+import org.apache.geronimo.st.ui.sections.AbstractTableSection;
+import org.apache.geronimo.st.ui.wizards.AbstractWizard;
+import org.apache.geronimo.st.v30.ui.sections.SecurityAdvancedSection;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class SecurityRunAsSubjectWizard extends AbstractWizard {
+    protected Combo role;
+    protected Text realm;
+    protected Text id;
+    protected AbstractTableSection section;
+
+    public SecurityRunAsSubjectWizard(AbstractTableSection section) {
+        super();
+        this.section = section;
+    }
+
+    public class SecurityRunAsSubjectAddWizardPage extends AbstractWizardPage {
+        public SecurityRunAsSubjectAddWizardPage(String pageName) {
+            super(pageName);
+        }
+
+        public void createControl(Composite parent) {
+            Composite composite = createComposite(parent);
+            createLabel(composite, CommonMessages.securityRunAsSubjectRole);
+            role = createCombo(composite, ((SecurityAdvancedSection) section).getRolesWithoutRunAsSubject(), false);
+            createLabel(composite, CommonMessages.securityRunAsSubjectRealm);
+            realm = createTextField(composite, "");
+            createLabel(composite, CommonMessages.securityRunAsSubjectId);
+            id = createTextField(composite, "");
+            if (eObject != null) {
+                //TODO  role.setText (((SecurityAdvancedSection) section).);
+                role.setEnabled(false);
+                realm.setText (((Role)eObject).getRunAsSubject().getRealm());
+                id.setText(((Role)eObject).getRunAsSubject().getId());
+            }
+            setControl(composite);
+        }
+
+        @Override
+        protected String getWizardPageTitle() {
+            return CommonMessages.wizardPageTitle_RunAsSubject;
+        }
+
+        @Override
+        protected String getWizardPageDescription() {
+            return CommonMessages.wizardPageDescription_RunAsSubject;
+        }
+    }
+
+    @Override
+    public void addPages() {
+        addPage(new SecurityRunAsSubjectAddWizardPage("Page0"));
+    }
+
+    @Override
+    public boolean performFinish() {
+        if (isEmpty(realm.getText()) || isEmpty(id.getText())) {
+            return false;
+        }
+        if (eObject == null) {
+            SubjectInfo subjectInfo = new SubjectInfo();
+            subjectInfo.setRealm(realm.getText());
+            subjectInfo.setId(id.getText());
+            ((SecurityAdvancedSection) section).getRole(role.getText()).setRunAsSubject(subjectInfo);
+            ((SecurityAdvancedSection) section).activateAddButton();
+        }
+        else {
+            ((Role)eObject).getRunAsSubject().setRealm(realm.getText());
+            ((Role)eObject).getRunAsSubject().setId(id.getText());
+        }
+
+        return true;
+    }
+
+    @Override
+    protected String getAddWizardWindowTitle() {
+        return CommonMessages.wizardNewTitle_RunAsSubject;
+    }
+
+    @Override
+    protected String getEditWizardWindowTitle() {
+        return CommonMessages.wizardNewTitle_RunAsSubject;
+    }
+}

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

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

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

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerCustomAssemblyWizard.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerCustomAssemblyWizard.java?rev=938593&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerCustomAssemblyWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerCustomAssemblyWizard.java Tue Apr 27 18:20:22 2010
@@ -0,0 +1,201 @@
+/*
+ * 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.v30.ui.wizards;
+
+import java.util.List;
+
+import org.apache.geronimo.st.ui.CommonMessages;
+import org.apache.geronimo.st.ui.wizards.AbstractWizard;
+import org.apache.geronimo.st.v30.core.operations.GeronimoServerPluginManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ServerCustomAssemblyWizard extends AbstractWizard {
+
+    private Table pluginTable;
+    
+    protected Text group;
+    protected Text artifact;
+    protected Text version;
+    protected Text type;
+    protected Text serverPath;
+
+    protected GeronimoServerPluginManager customAssembly;
+
+    public ServerCustomAssemblyWizard(GeronimoServerPluginManager customAssembly) {
+        super();
+        this.customAssembly = customAssembly;
+    }
+
+    public void addPages() {
+        addPage(new ServerCustomAssemblyWizardPage("page0"));
+    }
+
+    public class ServerCustomAssemblyWizardPage extends AbstractWizardPage {
+
+        public ServerCustomAssemblyWizardPage(String pageName) {
+            super(pageName);
+        }
+
+        public void createControl(Composite parent) {
+            parent.setLayoutData(createGridData());
+            Composite composite = createComposite(parent);
+
+            createLabel(composite, CommonMessages.groupId);
+            group = createTextField(composite, "");
+            createLabel(composite, CommonMessages.artifactId);
+            artifact = createTextField(composite, "");
+            createLabel(composite, CommonMessages.version);
+            version = createTextField(composite, "1.0");
+            createLabel(composite, CommonMessages.type);
+            type = createTextField(composite, "tar.gz");
+            createLabel(composite, CommonMessages.path);
+            serverPath = createTextField(composite, "var/temp/assembly");
+            createTable(composite);
+            populateTable();
+
+            group.addModifyListener(new ModifyListener(){
+                public void modifyText(ModifyEvent arg0) {
+                    ServerCustomAssemblyWizard.this.getContainer().updateButtons();
+                }
+            });
+            artifact.addModifyListener(new ModifyListener(){
+                public void modifyText(ModifyEvent arg0) {
+                    ServerCustomAssemblyWizard.this.getContainer().updateButtons();
+                }
+            });
+            version.addModifyListener(new ModifyListener(){
+                public void modifyText(ModifyEvent arg0) {
+                    ServerCustomAssemblyWizard.this.getContainer().updateButtons();
+                }
+            });
+            type.addModifyListener(new ModifyListener(){
+                public void modifyText(ModifyEvent arg0) {
+                    ServerCustomAssemblyWizard.this.getContainer().updateButtons();
+                }
+            });
+            serverPath.addModifyListener(new ModifyListener(){
+                public void modifyText(ModifyEvent arg0) {
+                    ServerCustomAssemblyWizard.this.getContainer().updateButtons();
+                }
+            });
+            pluginTable.addSelectionListener(new SelectionAdapter(){
+                public void widgetSelected(SelectionEvent arg0) {
+                    ServerCustomAssemblyWizard.this.getContainer().updateButtons();
+                }
+            });
+            
+            setControl(composite);
+        }
+
+        public GridData createGridData() {
+            GridData data = new GridData();
+            data.verticalAlignment = GridData.FILL;
+            data.horizontalAlignment = GridData.FILL;
+            data.grabExcessVerticalSpace = true;
+            data.grabExcessHorizontalSpace = true;
+            data.heightHint = 400;
+            data.widthHint = 300;
+            return data;
+        }
+
+        private void createTable(Composite composite) {
+            int style = SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.HIDE_SELECTION;
+
+            pluginTable = new Table(composite, style);
+            GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
+            data.grabExcessHorizontalSpace = true;
+            data.grabExcessVerticalSpace = true;
+            data.horizontalSpan = 2;
+            data.horizontalAlignment = GridData.FILL;
+            data.heightHint = 250;
+            data.widthHint = 350;
+            pluginTable.setLayoutData(data);
+            pluginTable.setLinesVisible(false);
+            pluginTable.setHeaderVisible(true);
+
+            final TableColumn[] column = new TableColumn[1];
+            column[0] = new TableColumn(pluginTable, SWT.LEFT, 0);
+            column[0].setText(CommonMessages.plugin);
+            column[0].setWidth(400);
+        }
+
+        public void populateTable() {
+            List<String> pluginList = customAssembly.getPluginList();
+             
+            for (int i = 0; i < pluginList.size(); ++i) {
+                TableItem tableItem = new TableItem(pluginTable, SWT.NONE);
+                String tableEntry = pluginList.get(i);
+                tableItem.setData(tableEntry);
+                tableItem.setText(new String[] {tableEntry});
+            }
+        }
+
+        @Override
+        protected String getWizardPageTitle() {
+            return CommonMessages.wizardPageTitle_ServerCustomAssembly;
+        }
+
+        @Override
+        protected String getWizardPageDescription() {
+            return CommonMessages.wizardPageDescription_ServerCustomAssembly;
+        }
+        
+        
+    }
+
+    public boolean performFinish() {
+        if (isEmpty(group.getText()) || isEmpty(artifact.getText()) ||
+            isEmpty(version.getText()) || isEmpty(type.getText()) ||
+            isEmpty(serverPath.getText()) || pluginTable.getSelectionCount() == 0) {
+            return false;
+        }
+        customAssembly.assembleServer(group.getText(), artifact.getText(), version.getText(), type.getText(), 
+                serverPath.getText(), pluginTable.getSelectionIndices());
+        return true;
+    }
+
+    @Override
+    protected String getAddWizardWindowTitle() {
+        return CommonMessages.wizardNewTitle_ServerCustomAssembly;
+    }
+
+    @Override
+    protected String getEditWizardWindowTitle() {
+        return CommonMessages.wizardNewTitle_ServerCustomAssembly;
+    }
+    
+    public boolean canFinish(){
+         if (isEmpty(group.getText()) || isEmpty(artifact.getText()) ||
+                    isEmpty(version.getText()) || isEmpty(type.getText()) ||
+                    isEmpty(serverPath.getText()) || pluginTable.getSelectionCount() == 0) {
+             return false;
+         }else return true;
+    }
+}

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

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

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

Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerPluginManagerDialog.java
URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerPluginManagerDialog.java?rev=938593&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerPluginManagerDialog.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/ServerPluginManagerDialog.java Tue Apr 27 18:20:22 2010
@@ -0,0 +1,43 @@
+/*
+ * 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.v30.ui.wizards;
+
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ServerPluginManagerDialog extends WizardDialog {
+    private ServerPluginManagerWizard wizard;
+    public ServerPluginManagerDialog(Shell parentShell, ServerPluginManagerWizard newWizard) {
+        super(parentShell, newWizard);
+        wizard = newWizard;
+    }
+
+    @Override
+    protected void nextPressed() {
+        wizard.nextPressed();
+        super.nextPressed();
+    }
+
+    @Override
+    protected void backPressed() {
+        wizard.backPressed();
+        super.backPressed();
+    }
+}

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

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

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