You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by de...@apache.org on 2010/03/10 09:31:32 UTC
svn commit: r921247 [8/11] - in /geronimo/devtools/eclipse-plugin/trunk: ./
features/org.apache.geronimo.v30.feature/
plugins/org.apache.geronimo.runtime.v30/
plugins/org.apache.geronimo.runtime.v30/META-INF/
plugins/org.apache.geronimo.st.v30.core/ pl...
Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/WebGeneralSection.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/v21/ui/sections/WebGeneralSection.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/WebGeneralSection.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/WebGeneralSection.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,87 @@
+/*
+ * 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.v21.ui.sections;
+
+import javax.xml.bind.JAXBElement;
+
+import org.apache.geronimo.jee.web.WebApp;
+import org.apache.geronimo.st.ui.CommonMessages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class WebGeneralSection extends CommonGeneralSection {
+
+ protected Text contextRoot;
+
+ protected Text workDir;
+
+ protected Text securityRealmName;
+
+ WebApp plan;
+
+ public WebGeneralSection(Composite parent, FormToolkit toolkit, int style, JAXBElement plan) {
+ super(parent, toolkit, style, plan);
+ this.plan = (WebApp) plan.getValue();
+ createClient();
+ }
+
+ protected void createClient() {
+ super.createClient();
+ Composite composite = (Composite) getSection().getClient();
+
+ createLabel(composite, CommonMessages.editorContextRoot);
+
+ contextRoot = toolkit.createText(composite, plan.getContextRoot(), SWT.BORDER);
+ contextRoot.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
+ contextRoot.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ plan.setContextRoot(contextRoot.getText());
+ markDirty();
+ }
+ });
+
+ createLabel(composite, CommonMessages.editorWorkDir);
+
+ workDir = toolkit.createText(composite, plan.getWorkDir(), SWT.BORDER);
+ workDir.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
+ workDir.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ plan.setWorkDir(workDir.getText());
+ markDirty();
+ }
+ });
+
+ createLabel(composite, CommonMessages.editorSecurityRealmName);
+
+ securityRealmName = toolkit.createText(composite, plan.getSecurityRealmName(), SWT.BORDER);
+ securityRealmName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
+ securityRealmName.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ plan.setSecurityRealmName(securityRealmName.getText());
+ markDirty();
+ }
+ });
+ }
+}
Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/sections/WebGeneralSection.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/v21/ui/sections/WebGeneralSection.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/v21/ui/sections/WebGeneralSection.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/v21/ui/wizards/AdminObjectWizard.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/v21/ui/wizards/AdminObjectWizard.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/AdminObjectWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/AdminObjectWizard.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,190 @@
+/*
+ * 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.v21.ui.wizards;
+
+import java.util.List;
+
+import org.apache.geronimo.jee.connector.Adminobject;
+import org.apache.geronimo.jee.connector.AdminobjectInstance;
+import org.apache.geronimo.jee.connector.ConfigPropertySetting;
+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.AbstractTreeWizard;
+import org.apache.geronimo.st.v21.core.jaxb.JAXBObjectFactoryImpl;
+import org.apache.geronimo.st.v21.ui.sections.AdminObjectSection;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class AdminObjectWizard extends AbstractTreeWizard {
+
+ private final int ADMIN_OBJECT = 0;
+ private final int ADMIN_OBJECT_INSTANCE = 1;
+ private final int CONFIG_PROPERTY_SETTING = 2;
+
+ public AdminObjectWizard(AbstractTreeSection section) {
+ super(section, 3, 2);
+ elementTypes[ADMIN_OBJECT] = "Admin Object";
+ elementTypes[ADMIN_OBJECT_INSTANCE] = "Admin Object Instance";
+ elementTypes[CONFIG_PROPERTY_SETTING] = "Config Property";
+ }
+
+ public class EjbRelationWizardPage extends AbstractTreeWizardPage {
+
+ public EjbRelationWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ protected void initControl () {
+ if (eObject == null) {
+ element.select(ADMIN_OBJECT);
+ if (Adminobject.class.isInstance(((AdminObjectSection)section).getSelectedObject())) {
+ element.remove(elementTypes[CONFIG_PROPERTY_SETTING]);
+ }
+ else if (AdminobjectInstance.class.isInstance(((AdminObjectSection)section).getSelectedObject())) {
+ element.select(CONFIG_PROPERTY_SETTING);
+ element.setEnabled(false);
+ }
+ else {
+ element.setEnabled(false);
+ }
+ }
+ else {
+ if (Adminobject.class.isInstance(eObject)) {
+ textList.get(0).setText(((Adminobject)eObject).getAdminobjectInterface());
+ textList.get(1).setText(((Adminobject)eObject).getAdminobjectClass());
+ element.select(ADMIN_OBJECT);
+ }
+ else if (AdminobjectInstance.class.isInstance(eObject)) {
+ textList.get(0).setText(((AdminobjectInstance)eObject).getMessageDestinationName());
+ element.select(ADMIN_OBJECT_INSTANCE);
+ }
+ else if (ConfigPropertySetting.class.isInstance(eObject)) {
+ textList.get(0).setText(((ConfigPropertySetting)eObject).getName());
+ textList.get(1).setText(((ConfigPropertySetting)eObject).getValue());
+ element.select(CONFIG_PROPERTY_SETTING);
+ }
+ element.setEnabled(false);
+ }
+ }
+
+ protected void toggleFields (boolean clearFields) {
+ if (element.getText().equals(elementTypes[ADMIN_OBJECT])) {
+ for (int i = 0; i < maxTextFields; i++) {
+ labelList.get(i).setVisible(true);
+ textList.get(i).setVisible(true);
+ if (clearFields == true) {
+ textList.get(i).setText("");
+ }
+ }
+ labelList.get(0).setText(CommonMessages.interfaceName);
+ labelList.get(1).setText(CommonMessages.className);
+ }
+ else if (element.getText().equals(elementTypes[ADMIN_OBJECT_INSTANCE])) {
+ for (int i = 0; i < maxTextFields; i++) {
+ labelList.get(i).setVisible(i < 1 ? true : false);
+ textList.get(i).setVisible(i < 1 ? true : false);
+ if (clearFields == true) {
+ textList.get(i).setText("");
+ }
+ }
+ labelList.get(0).setText(CommonMessages.messageDestinationName);
+ }
+ else if (element.getText().equals(elementTypes[CONFIG_PROPERTY_SETTING])) {
+ for (int i = 0; i < maxTextFields; i++) {
+ labelList.get(i).setVisible(true);
+ textList.get(i).setVisible(true);
+ if (clearFields == true) {
+ textList.get(i).setText("");
+ }
+ }
+ labelList.get(0).setText(CommonMessages.name);
+ labelList.get(1).setText(CommonMessages.value);
+ }
+ }
+
+ public String getWizardPageTitle() {
+ return CommonMessages.wizardPageTitle_AdminObject;
+ }
+
+ public String getWizardPageDescription() {
+ return CommonMessages.wizardPageDescription_AdminObject;
+ }
+ }
+
+ @Override
+ public void addPages() {
+ addPage(new EjbRelationWizardPage("Page0"));
+ }
+
+ @Override
+ public boolean performFinish() {
+ Adminobject admin;
+ if (element.getText().equals(elementTypes[ADMIN_OBJECT])) {
+ if (isEmpty(textList.get(0).getText()) || isEmpty(textList.get(1).getText())) {
+ return false;
+ }
+ admin = (Adminobject)eObject;
+ if (admin == null) {
+ admin = (Adminobject)getEFactory().create(Adminobject.class);
+ List objectList = (List)section.getInput();
+ objectList.add (admin);
+ }
+ admin.setAdminobjectInterface(textList.get(0).getText());
+ admin.setAdminobjectClass(textList.get(1).getText());
+ }
+ else if (element.getText().equals(elementTypes[ADMIN_OBJECT_INSTANCE])) {
+ if (isEmpty(textList.get(0).getText())) {
+ return false;
+ }
+ AdminobjectInstance aoInstance = (AdminobjectInstance)eObject;
+ if (aoInstance == null) {
+ aoInstance = (AdminobjectInstance)getEFactory().create(AdminobjectInstance.class);
+ admin = (Adminobject)((AdminObjectSection)section).getSelectedObject();
+ admin.getAdminobjectInstance().add(aoInstance);
+ }
+ aoInstance.setMessageDestinationName(textList.get(0).getText());
+ }
+ else if (element.getText().equals(elementTypes[CONFIG_PROPERTY_SETTING])) {
+ if (isEmpty(textList.get(0).getText()) || isEmpty(textList.get(1).getText())) {
+ return false;
+ }
+ ConfigPropertySetting property = (ConfigPropertySetting)eObject;
+ if (property == null) {
+ property = (ConfigPropertySetting)getEFactory().create(ConfigPropertySetting.class);
+ AdminobjectInstance aoInstance = (AdminobjectInstance)((AdminObjectSection)section).getSelectedObject();
+ aoInstance.getConfigPropertySetting().add(property);
+ }
+ property.setName(textList.get(0).getText());
+ property.setValue(textList.get(1).getText());
+ }
+ return true;
+ }
+
+ public JAXBObjectFactory getEFactory() {
+ return JAXBObjectFactoryImpl.getInstance();
+ }
+
+ public String getAddWizardWindowTitle() {
+ return CommonMessages.wizardNewTitle_AdminObject;
+ }
+
+ public String getEditWizardWindowTitle() {
+ return CommonMessages.wizardEditTitle_AdminObject;
+ }
+}
Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/AdminObjectWizard.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/v21/ui/wizards/AdminObjectWizard.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/v21/ui/wizards/AdminObjectWizard.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/v21/ui/wizards/ClassFilterWizard.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/v21/ui/wizards/ClassFilterWizard.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/ClassFilterWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/ClassFilterWizard.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,112 @@
+/*
+ * 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.v21.ui.wizards;
+
+import javax.xml.bind.JAXBElement;
+
+import org.apache.geronimo.st.core.jaxb.JAXBObjectFactory;
+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.v21.core.jaxb.JAXBModelUtils;
+import org.apache.geronimo.st.v21.core.jaxb.JAXBObjectFactoryImpl;
+import org.apache.geronimo.st.v21.ui.sections.ClassFilterSection;
+import org.apache.geronimo.jee.deployment.ClassFilter;
+import org.apache.geronimo.jee.deployment.Environment;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ClassFilterWizard extends AbstractTableWizard {
+
+ protected boolean isServerEnvironment;
+
+ public ClassFilterWizard(AbstractTableSection section, boolean isServerEnvironment) {
+ super(section);
+ this.isServerEnvironment = isServerEnvironment;
+ }
+
+ public JAXBObjectFactory getEFactory() {
+ return JAXBObjectFactoryImpl.getInstance();
+ }
+
+ public String[] getTableColumnEAttributes() {
+ return new String[] { "Value" };
+ }
+
+ public void addPages() {
+ addPage(new ClassFilterWizardPage("Page0"));
+ }
+
+ public String getAddWizardWindowTitle() {
+ return CommonMessages.wizardNewTitle_Dependency;
+ }
+
+ public String getEditWizardWindowTitle() {
+ return CommonMessages.wizardEditTitle_Dependency;
+ }
+
+ public class ClassFilterWizardPage extends AbstractTableWizardPage {
+ public ClassFilterWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ public String getWizardPageTitle() {
+ return CommonMessages.wizardPageTitle_Dependency;
+ }
+
+ public String getWizardPageDescription() {
+ return CommonMessages.wizardPageDescription_Dependency;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.geronimo.st.ui.wizards.AbstractTableWizard#performFinish()
+ */
+ public boolean performFinish() {
+ AbstractTableWizardPage page = (AbstractTableWizardPage) getPages()[0];
+
+ if (eObject == null) {
+ eObject = new String();
+ JAXBElement plan = section.getPlan();
+
+ Environment environment = null;
+ environment = JAXBModelUtils.getEnvironment(plan, isServerEnvironment);
+ if (environment == null) {
+ environment = (Environment)getEFactory().create(Environment.class);
+ JAXBModelUtils.setEnvironment (plan, environment, isServerEnvironment);
+ }
+
+ ClassFilter filter = ((ClassFilterSection)section).getClassFilter();
+ if (filter == null) {
+ filter = (ClassFilter)getEFactory().create(ClassFilter.class);
+ ((ClassFilterSection)section).setClassFilter (filter);
+ }
+ filter.getFilter().add(page.getTextEntry(0).getText());
+ }
+ else {
+ ClassFilter filter = ((ClassFilterSection)section).getClassFilter();
+ filter.getFilter().set(filter.getFilter().indexOf(eObject), page.getTextEntry(0).getText());
+ }
+
+ if (section.getViewer().getInput() == null) {
+ section.getViewer().setInput(section.getInput());
+ }
+
+ return true;
+ }
+}
Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/ClassFilterWizard.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/v21/ui/wizards/ClassFilterWizard.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/v21/ui/wizards/ClassFilterWizard.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/v21/ui/wizards/DBPoolWizard.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/v21/ui/wizards/DBPoolWizard.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/DBPoolWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/DBPoolWizard.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,926 @@
+package org.apache.geronimo.st.v21.ui.wizards;
+
+import java.util.ArrayList;
+import javax.xml.bind.JAXBElement;
+import org.apache.geronimo.jee.application.Application;
+import org.apache.geronimo.jee.application.ExtModule;
+import org.apache.geronimo.jee.application.Path;
+import org.apache.geronimo.jee.connector.ConfigPropertySetting;
+import org.apache.geronimo.jee.connector.ConnectionDefinition;
+import org.apache.geronimo.jee.connector.ConnectiondefinitionInstance;
+import org.apache.geronimo.jee.connector.Connectionmanager;
+import org.apache.geronimo.jee.connector.Connector;
+import org.apache.geronimo.jee.connector.OutboundResourceadapter;
+import org.apache.geronimo.jee.connector.Resourceadapter;
+import org.apache.geronimo.jee.connector.Singlepool;
+import org.apache.geronimo.jee.connector.Xatransaction;
+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.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.v21.core.jaxb.JAXBObjectFactoryImpl;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+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.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+public class DBPoolWizard extends AbstractTableWizard {
+
+ protected ImageDescriptor descriptor = Activator.imageDescriptorFromPlugin(
+ "org.apache.geronimo.st.ui", "icons/bigG.gif");
+
+ public DBPoolWizard(AbstractTableSection section) {
+ super(section);
+ }
+
+ @Override
+ public JAXBObjectFactory getEFactory() {
+ return JAXBObjectFactoryImpl.getInstance();
+ }
+
+ @Override
+ public String[] getTableColumnEAttributes() {
+ return new String[] {};
+ }
+
+ @Override
+ protected String getAddWizardWindowTitle() {
+ return "New Database Pool";// TODO put into message
+ }
+
+ @Override
+ protected String getEditWizardWindowTitle() {
+ return "Edit Database Pool";// TODO put into message
+ }
+
+ public void addPages() {
+ ExternalPathPage page0 = new ExternalPathPage("Page0");
+ page0.setImageDescriptor(descriptor);
+ addPage(page0);
+
+ DBPoolBasicPage page1 = new DBPoolBasicPage("Page1");
+ page1.setImageDescriptor(descriptor);
+ addPage(page1);
+
+ DBPoolAdvancedPage page2 = new DBPoolAdvancedPage("Page2");
+ page2.setImageDescriptor(descriptor);
+ addPage(page2);
+
+ ConnectionPoolPage page3 = new ConnectionPoolPage("Page3");
+ page3.setImageDescriptor(descriptor);
+ addPage(page3);
+ }
+
+ public boolean performFinish() {
+ JAXBElement plan = this.section.getPlan();
+
+ // all pages
+ ExternalPathPage page0 = (ExternalPathPage) getPages()[0];
+ DBPoolBasicPage page1 = (DBPoolBasicPage) getPages()[1];
+ DBPoolAdvancedPage page2 = (DBPoolAdvancedPage) getPages()[2];
+ ConnectionPoolPage page3 = (ConnectionPoolPage) getPages()[3];
+
+ // check necessary info has been filled
+ if (page1.getPoolName() == null
+ || page1.getPoolName().trim().length() == 0
+ || page1.getPoolName().contains(" ")) {
+ MessageDialog.openWarning(this.getShell(), "Pool Name Invalid",
+ "Pool name specified is invalid");
+ return false;
+ }
+ if (page1.getDBPooolType() == null
+ || page1.getDBPooolType().trim().length() == 0) {
+ MessageDialog.openWarning(this.getShell(), "Pool type invalid",
+ "Pool type specified is invalid");
+ return false;
+ }
+ if (page1.getDBName() == null || page1.getDBName().trim().length() == 0
+ || page1.getDBName().contains(" ")) {
+ MessageDialog.openWarning(this.getShell(), "Database name invalid",
+ "Database name specified is invalid");
+ return false;
+ }
+ if (page1.getDrivers() == null || page1.getDrivers().length == 0) {
+ MessageDialog.openWarning(this.getShell(), "Driver invalid",
+ "You havent selected a driver");
+ return false;
+ }
+
+ // add the dependencies and ext-module to plan
+ if (Application.class.isInstance(plan.getValue())) {
+ Application application = (Application) plan.getValue();
+ Environment env = application.getEnvironment();
+ if (env == null) {
+ env = new Environment();
+ application.setEnvironment(env);
+ }
+ Dependencies dependencies = env.getDependencies();
+ if (dependencies == null) {
+ dependencies = new Dependencies();
+ env.setDependencies(dependencies);
+ }
+
+ // if there are no same dependencies in plan,then add them
+ for (int i = 0; i < page1.getDrivers().length; i++) {
+ Dependency selectedDependency = (Dependency) page1.getDrivers()[i];
+ if (!dependencies.getDependency().contains(selectedDependency)) {
+ dependencies.getDependency().add(selectedDependency);
+ }
+ }
+
+ ExtModule extModule;
+ if (eObject == null) {
+ eObject = getEFactory().create(ExtModule.class);
+ extModule = (ExtModule) eObject;
+ java.util.List<ExtModule> extModuleList = application
+ .getExtModule();
+ extModuleList.add(extModule);
+ } else {
+ extModule = (ExtModule) eObject;
+ }
+
+ // NOTE!! this replaces the call to processEAttributes (page);
+ Path path = (Path) getEFactory().create(Path.class);
+ path.setValue(page0.text[0].getText());
+ extModule.setConnector(path);
+
+ Pattern pattern = (Pattern) getEFactory().create(Pattern.class);
+ extModule.setExternalPath(pattern);
+ pattern.setGroupId(page0.text[1].getText());
+ pattern.setArtifactId(page0.text[2].getText());
+ //empty version element will cause deploy failure
+ String version = page0.text[3].getText();
+ if (version!=null && version.length()!=0)
+ pattern.setVersion(page0.text[3].getText());
+ pattern.setType(page0.text[4].getText().trim());
+
+ Connector conn = new Connector();
+ // attention here <connector/> is unmashalled as a JAXBElement
+ JAXBElement<Connector> connElement = (new org.apache.geronimo.jee.connector.ObjectFactory())
+ .createConnector(conn);
+ extModule.setAny(connElement);
+ Resourceadapter adapter = new Resourceadapter();
+ conn.getResourceadapter().add(adapter);
+
+ OutboundResourceadapter outboundAdpater = new OutboundResourceadapter();
+ ConnectionDefinition definition = new ConnectionDefinition();
+ definition.setConnectionfactoryInterface("javax.sql.DataSource");
+ ConnectiondefinitionInstance instance = new ConnectiondefinitionInstance();
+ instance.setName(page1.getPoolName());
+
+ String[] loginData = page2.getLoginData();
+ if (!loginData[1].equals(loginData[2])) {
+ Status status = new Status(IStatus.WARNING, "Login Error", 0,
+ "Password provided in both fiels do not match", null);
+ ErrorDialog.openError(this.getShell(), "Login Error",
+ "Invalid Login Details", status);
+ return false;
+ }
+ ConfigPropertySetting setting1 = new ConfigPropertySetting();
+ setting1.setName("Password");
+ setting1.setValue(loginData[1]);
+ instance.getConfigPropertySetting().add(setting1);
+ ConfigPropertySetting setting2 = new ConfigPropertySetting();
+ setting2.setName("LoginTimeout");
+ setting2.setValue(page2.getLoginTimeout());
+ instance.getConfigPropertySetting().add(setting2);
+ ConfigPropertySetting setting3 = new ConfigPropertySetting();
+ setting3.setName("DatabaseName");
+ setting3.setValue(page1.getDBName());
+ instance.getConfigPropertySetting().add(setting3);
+ ConfigPropertySetting setting4 = new ConfigPropertySetting();
+ setting4.setName("CreateDatabase");
+ setting4.setValue(page2.getCreateDatabase());
+ instance.getConfigPropertySetting().add(setting4);
+ ConfigPropertySetting setting5 = new ConfigPropertySetting();
+ setting5.setName("UserName");
+ setting5.setValue(loginData[0]);
+ instance.getConfigPropertySetting().add(setting5);
+
+ instance.setConnectionmanager(page3.getConnectionManager());
+ definition.getConnectiondefinitionInstance().add(instance);
+ outboundAdpater.getConnectionDefinition().add(definition);
+ adapter.setOutboundResourceadapter(outboundAdpater);
+
+ if (section.getViewer().getInput() == section.getPlan()) {
+ section.getViewer().setInput(section.getInput());
+ }
+ return true;
+ }
+
+ return true;
+ }
+
+ public class ExternalPathPage extends AbstractTableWizardPage {
+ Text[] text = new Text[5];
+
+ protected ExternalPathPage(String pageName) {
+ super(pageName);
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ Composite composite = createComposite(parent);
+
+ GridData groupGridData1;
+ GridData groupGridData2;
+ GridData textGridData;
+ GridLayout gridLayout1;
+ GridLayout gridLayout2;
+ Label label;
+
+ Group group = new Group(composite, SWT.NONE);
+ gridLayout1 = new GridLayout();
+ gridLayout1.numColumns = 2;
+ group.setLayout(gridLayout1);
+ groupGridData1 = new GridData();
+ groupGridData1.horizontalAlignment = GridData.FILL;
+ groupGridData1.grabExcessHorizontalSpace = true;
+ groupGridData1.horizontalSpan = 2;
+ group.setLayoutData(groupGridData1);
+
+ label = new Label(group, SWT.LEFT);
+ label.setText("Connector:");
+
+ text[0] = new Text(group, SWT.SINGLE | SWT.BORDER);
+ textGridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL
+ | GridData.VERTICAL_ALIGN_FILL);
+ textGridData.grabExcessHorizontalSpace = true;
+ textGridData.widthHint = 100;
+ text[0].setLayoutData(textGridData);
+
+ Group group2 = new Group(composite, SWT.NONE);
+ gridLayout2 = new GridLayout();
+ gridLayout2.numColumns = 2;
+ group2.setLayout(gridLayout2);
+ groupGridData2 = new GridData();
+ groupGridData2.horizontalAlignment = GridData.FILL;
+ groupGridData2.grabExcessHorizontalSpace = true;
+ groupGridData2.horizontalSpan = 2;
+ groupGridData2.verticalAlignment = GridData.FILL;
+ group2.setLayoutData(groupGridData2);
+ group2.setText("External Path");
+
+ label = new Label(group2, SWT.LEFT);
+ label.setText("Group Id:");
+ text[1] = new Text(group2, SWT.SINGLE | SWT.BORDER);
+ text[1].setLayoutData(textGridData);
+
+ label = new Label(group2, SWT.LEFT);
+ label.setText("Artifact Id:");
+ text[2] = new Text(group2, SWT.SINGLE | SWT.BORDER);
+ text[2].setLayoutData(textGridData);
+
+ label = new Label(group2, SWT.LEFT);
+ label.setText("Version:");
+ text[3] = new Text(group2, SWT.SINGLE | SWT.BORDER);
+ text[3].setLayoutData(textGridData);
+
+ label = new Label(group2, SWT.LEFT);
+ label.setText("Type:");
+ text[4] = new Text(group2, SWT.SINGLE | SWT.BORDER);
+ text[4].setLayoutData(textGridData);
+
+ // if edit a pool,the info must be filled into wizard
+ if (eObject != null && ExtModule.class.isInstance(eObject)) {
+ ExtModule extModule = (ExtModule) eObject;
+ if (extModule.getConnector() != null) {
+ text[0].setText(extModule.getConnector().getValue());
+ }
+ if (extModule.getExternalPath() != null) {
+ text[1]
+ .setText(extModule.getExternalPath().getGroupId() == null ? ""
+ : extModule.getExternalPath().getGroupId());
+ text[2]
+ .setText(extModule.getExternalPath()
+ .getArtifactId() == null ? "" : extModule
+ .getExternalPath().getArtifactId());
+ text[3]
+ .setText(extModule.getExternalPath().getVersion() == null ? ""
+ : extModule.getExternalPath().getVersion());
+ text[4]
+ .setText(extModule.getExternalPath().getType() == null ? ""
+ : extModule.getExternalPath().getType());
+ }
+ }
+
+ setControl(composite);
+ }
+
+ @Override
+ protected String getWizardPageDescription() {
+ return "Specify the connector rar in the repository";
+ }
+
+ @Override
+ protected String getWizardPageTitle() {
+ return "External Path";
+ }
+
+ }
+
+ public class DBPoolBasicPage extends AbstractTableWizardPage {
+
+ Text text[] = new Text[2];
+ Combo combo;
+ ListViewer listViewer;
+ ArrayList<Dependency> dependencies = new ArrayList<Dependency>();
+
+ protected DBPoolBasicPage(String pageName) {
+ super(pageName);
+ setTitle(CommonMessages.wizardBasicPageTitle_DBPool);
+ setDescription(CommonMessages.wizardBasicPageDescription_DBPool);
+ }
+
+ protected Object[] getDrivers() {
+ StructuredSelection sel = (StructuredSelection) listViewer
+ .getSelection();
+ return sel.toArray();
+ }
+
+ protected String getPoolName() {
+ return text[0].getText();
+ }
+
+ protected String getDBName() {
+ return text[1].getText();
+ }
+
+ protected String getDBPooolType() {
+ if (combo.getSelectionIndex() == -1) {
+ return null;
+ }
+ return combo.getItem(combo.getSelectionIndex());
+ }
+
+ 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(CommonMessages.basicGroup);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 4;
+ data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ // data.grabExcessVerticalSpace = true;
+ data.horizontalSpan = 2;
+ basicGroup.setLayout(layout);
+ data.grabExcessHorizontalSpace = true;
+ basicGroup.setLayoutData(data);
+ Label label = new Label(basicGroup, SWT.LEFT);
+ label.setText(CommonMessages.poolName);
+ GridData labelData = new GridData();
+ labelData.horizontalAlignment = GridData.FILL;
+ label.setLayoutData(labelData);
+ text[0] = new Text(basicGroup, SWT.BORDER);
+ GridData textData = new GridData(GridData.HORIZONTAL_ALIGN_FILL
+ | GridData.VERTICAL_ALIGN_FILL);
+ textData.grabExcessHorizontalSpace = true;
+ textData.widthHint = 100;
+ text[0].setLayoutData(textData);
+ label = new Label(basicGroup, SWT.LEFT);
+ label.setText(CommonMessages.dbType);
+ label.setLayoutData(labelData);
+ combo = new Combo(basicGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
+ combo.setLayoutData(textData);
+ combo.add("Derby Embedded");
+ combo.add("Derby Embedded XA");
+ combo.select(1);
+ label = new Label(basicGroup, SWT.LEFT);
+ label.setText(CommonMessages.dbName);
+ label.setLayoutData(labelData);
+ text[1] = new Text(basicGroup, SWT.BORDER);
+ text[1].setLayoutData(textData);
+
+ Group driverGroup = new Group(composite, SWT.NONE);
+ driverGroup.setText(CommonMessages.driverGroup);
+ driverGroup.setLayout(layout);
+ driverGroup.setLayoutData(data);
+ List list = new List(driverGroup, SWT.BORDER | SWT.MULTI
+ | SWT.V_SCROLL);
+ GridData listData = new GridData(SWT.FILL, SWT.FILL, true, true);
+ list.setLayoutData(listData);
+ listViewer = new ListViewer(list);
+ listViewer.setContentProvider(new IStructuredContentProvider() {
+ public Object[] getElements(Object element) {
+ return ((java.util.List<?>) element).toArray();
+ }
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
+ }
+ });
+ listViewer.setInput(getInput());
+ MenuManager popupMenu = new MenuManager();
+ Action helpAction = new Action("Add New Driver") { //$NON-NLS-1$
+ public void run() {
+ DriverDialog dialog = new DriverDialog(Display.getCurrent()
+ .getActiveShell());
+ dialog.open();
+ if (dialog.getReturnCode() == 0) {
+ if (dialog.getDependency() != null) {
+ dependencies.add(dialog.getDependency());
+ listViewer.refresh();
+ }
+ }
+ }
+ };
+ popupMenu.add(helpAction);
+ Menu menu = popupMenu.createContextMenu(list);
+ list.setMenu(menu);
+
+ // if edit a pool,the info must be filled into wizard
+ if (eObject != null && ExtModule.class.isInstance(eObject)) {
+ ExtModule extModule = (ExtModule) eObject;
+
+ try {
+ ConnectiondefinitionInstance conndefInstance = ((JAXBElement<Connector>) extModule
+ .getAny()).getValue().getResourceadapter().get(0)
+ .getOutboundResourceadapter()
+ .getConnectionDefinition().get(0)
+ .getConnectiondefinitionInstance().get(0);
+ text[0].setText(conndefInstance.getName());
+ java.util.List<ConfigPropertySetting> configPropertySettingList = conndefInstance
+ .getConfigPropertySetting();
+ for (ConfigPropertySetting cps : configPropertySettingList) {
+ if (cps.getName().equals("DatabaseName")) {
+ text[1].setText(cps.getValue());
+ }
+ }
+
+ // there need some improvement
+ list.setSelection(new int[] { 0 });
+ listViewer.refresh();
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ setControl(composite);
+
+ }
+
+ public Object getInput() {
+ // to be obtained dynamically
+ Dependency dependency = new Dependency();
+ dependency.setArtifactId("system-database");
+ dependency.setGroupId("org.apache.geronimo.configs");
+ dependency.setVersion("");
+ dependency.setType("car");
+ dependencies.add(dependency);
+ return dependencies;
+ }
+
+ @Override
+ protected String getWizardPageDescription() {
+ return "";
+ }
+
+ @Override
+ protected String getWizardPageTitle() {
+ return "";
+ }
+
+ }
+
+ public class DBPoolAdvancedPage extends AbstractTableWizardPage {
+
+ Button createDatabase;
+ Text text[] = new Text[4];
+
+ protected String[] getLoginData() {
+ return new String[] { text[1].getText(), text[2].getText(),
+ text[3].getText() };
+ }
+
+ protected String getCreateDatabase() {
+ return createDatabase.getSelection() ? "true" : "false";
+ }
+
+ protected String getLoginTimeout() {
+ return text[0].getText();
+ }
+
+ protected DBPoolAdvancedPage(String pageName) {
+ super(pageName);
+ setTitle(CommonMessages.wizardAdvancedPageTitle__DBPool);
+ setDescription(CommonMessages.wizardAdvancedPageDescription__DBPool);
+ }
+
+ 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 advancedGroup = createGroup(composite,
+ CommonMessages.advancedGroup, 2);
+ createDatabase = new Button(advancedGroup, SWT.CHECK);
+ createDatabase.setText(CommonMessages.createDatabase);
+ createDatabase.setLayoutData(new GridData(GridData.FILL,
+ GridData.FILL, true, false, 4, 1));
+ createDatabase.setSelection(true);
+ createLabel(advancedGroup, CommonMessages.loginTimeout, 2);
+ text[0] = createText(advancedGroup, 2);
+
+ Group userGroup = createGroup(composite, CommonMessages.loginGroup,
+ 2);
+ createLabel(userGroup, CommonMessages.username, 2);
+ text[1] = createText(userGroup, 2);
+ text[1].setText("system");
+ createLabel(userGroup, CommonMessages.password, 2);
+ text[2] = createText(userGroup, 2);
+ text[2].setEchoChar('*');
+ text[2].setText("manager");
+ createLabel(userGroup, CommonMessages.confirmPassword, 2);
+ text[3] = createText(userGroup, 2);
+ text[3].setEchoChar('*');
+ text[3].setText("manager");
+
+ // if edit a pool,the info must be filled into wizard
+ if (eObject != null && ExtModule.class.isInstance(eObject)) {
+ ExtModule extModule = (ExtModule) eObject;
+ try {
+ ConnectiondefinitionInstance conndefInstance = ((JAXBElement<Connector>) extModule
+ .getAny()).getValue().getResourceadapter().get(0)
+ .getOutboundResourceadapter()
+ .getConnectionDefinition().get(0)
+ .getConnectiondefinitionInstance().get(0);
+ java.util.List<ConfigPropertySetting> configPropertySettingList = conndefInstance
+ .getConfigPropertySetting();
+ for (ConfigPropertySetting cps : configPropertySettingList) {
+ if (cps.getName().equals("CreateDatabase")) {
+ if (cps.getValue().equals("true"))
+ createDatabase.setSelection(true);
+ else
+ createDatabase.setSelection(false);
+ } else if (cps.getName().equals("LoginTimeout")) {
+ text[0].setText(cps.getValue());
+ } else if (cps.getName().equals("UserName")) {
+ text[1].setText(cps.getValue());
+ } else if (cps.getName().equals("Password")) {
+ text[2].setEchoChar('*');
+ text[2].setText(cps.getValue());
+ text[3].setEchoChar('*');
+ text[3].setText(cps.getValue());
+ }
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ setControl(composite);
+
+ }
+
+ protected Group createGroup(Composite composite, String value, int span) {
+ Group group = new Group(composite, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 4;
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ data.horizontalSpan = span;
+ group.setLayout(layout);
+ group.setLayoutData(data);
+ group.setText(value);
+ return group;
+ }
+
+ 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;
+ }
+
+ @Override
+ protected String getWizardPageDescription() {
+ return "";
+ }
+
+ @Override
+ protected String getWizardPageTitle() {
+ return "";
+ }
+
+ }
+
+ public class ConnectionPoolPage extends AbstractTableWizardPage {
+
+ Combo combo;
+ Text text[] = new Text[4];
+
+ protected ConnectionPoolPage(String pageName) {
+ super(pageName);
+ setTitle(CommonMessages.wizardConnectionPageTitle__DBPool);
+ setDescription(CommonMessages.wizardConnectionPageDescription__DBPool);
+ }
+
+ protected Connectionmanager getConnectionManager() {
+ Connectionmanager manager = new Connectionmanager();
+
+ // add the pool's transaction type into plan
+ int poolTypeIndex = combo.getSelectionIndex();
+ // pool type is XA
+ if (poolTypeIndex == 0) {
+ Xatransaction xaTransaction = new Xatransaction();
+ xaTransaction
+ .setTransactionCaching(new org.apache.geronimo.jee.connector.Empty());
+ manager.setXaTransaction(xaTransaction);
+ }
+ // pool type is LOCAL
+ else if (poolTypeIndex == 1) {
+ manager
+ .setLocalTransaction(new org.apache.geronimo.jee.connector.Empty());
+ }
+ // pool type is NONE
+ else if (poolTypeIndex == 2) {
+ manager
+ .setNoTransaction(new org.apache.geronimo.jee.connector.Empty());
+ }
+
+ Singlepool pool = new Singlepool();
+ pool.setMinSize(text[0].getText().trim().length() == 0 ? 0
+ : new Integer(text[0].getText()));
+ pool.setMaxSize(text[1].getText().trim().length() == 0 ? 10
+ : new Integer(text[1].getText()));
+ pool.setBlockingTimeoutMilliseconds(text[2].getText().trim()
+ .length() == 0 ? null : new Integer(text[2].getText()));
+ pool
+ .setIdleTimeoutMinutes(text[3].getText().trim().length() == 0 ? null
+ : new Integer(text[3].getText()));
+ pool.setMatchOne(new org.apache.geronimo.jee.connector.Empty());
+ manager.setSinglePool(pool);
+ return manager;
+ }
+
+ 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 = createGroup(composite,
+ CommonMessages.wizardConnectionPageTitle__DBPool, 2);
+ createLabel(connectionGroup, CommonMessages.transactionType, 2);
+ combo = new Combo(connectionGroup, SWT.NONE | SWT.READ_ONLY);
+ combo.add("XA");
+ combo.add("LOCAL");
+ combo.add("NONE");
+ combo.select(0);
+ GridData textData = new GridData(GridData.HORIZONTAL_ALIGN_FILL
+ | GridData.VERTICAL_ALIGN_FILL);
+ textData.grabExcessHorizontalSpace = true;
+ textData.horizontalSpan = 2;
+ textData.widthHint = 100;
+ combo.setLayoutData(textData);
+ createLabel(connectionGroup, CommonMessages.minPoolSize, 2);
+ text[0] = createText(connectionGroup, 2);
+ text[0].setText("0");
+ createLabel(connectionGroup, CommonMessages.maxPoolSize, 2);
+ text[1] = createText(connectionGroup, 2);
+ text[1].setText("10");
+ createLabel(connectionGroup, CommonMessages.blockingTimeout, 2);
+ text[2] = createText(connectionGroup, 2);
+ createLabel(connectionGroup, CommonMessages.idleTimeout, 2);
+ text[3] = createText(connectionGroup, 2);
+
+ // if edit a pool,the info must be filled into wizard
+ if (eObject != null && ExtModule.class.isInstance(eObject)) {
+ ExtModule extModule = (ExtModule) eObject;
+ try {
+ ConnectiondefinitionInstance conndefInstance = ((JAXBElement<Connector>) extModule
+ .getAny()).getValue().getResourceadapter().get(0)
+ .getOutboundResourceadapter()
+ .getConnectionDefinition().get(0)
+ .getConnectiondefinitionInstance().get(0);
+
+ Connectionmanager connManager = conndefInstance
+ .getConnectionmanager();
+ if (connManager.getXaTransaction() != null) {
+ combo.select(0);
+ } else if (connManager.getLocalTransaction() != null) {
+ combo.select(1);
+ } else if (connManager.getNoTransaction() != null) {
+ combo.select(2);
+ }
+ Singlepool singlepool = connManager.getSinglePool();
+ if (singlepool != null) {
+ text[0].setText(singlepool.getMaxSize() == null ? ""
+ : singlepool.getMaxSize().toString());
+ text[1].setText(singlepool.getMinSize() == null ? ""
+ : singlepool.getMinSize().toString());
+ text[2].setText(singlepool
+ .getBlockingTimeoutMilliseconds() == null ? ""
+ : singlepool.getBlockingTimeoutMilliseconds()
+ .toString());
+ text[3]
+ .setText(singlepool.getIdleTimeoutMinutes() == null ? ""
+ : singlepool.getIdleTimeoutMinutes()
+ .toString());
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ setControl(composite);
+
+ }
+
+ protected Group createGroup(Composite composite, String value, int span) {
+ Group group = new Group(composite, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 4;
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ data.horizontalSpan = span;
+ group.setLayout(layout);
+ group.setLayoutData(data);
+ group.setText(value);
+ return group;
+ }
+
+ 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;
+ }
+
+ @Override
+ protected String getWizardPageDescription() {
+ return "";
+ }
+
+ @Override
+ protected String getWizardPageTitle() {
+ return "";
+ }
+
+ }
+
+}
+
+class DriverDialog extends Dialog {
+
+ String data[] = new String[4];
+ Text text[] = new Text[4];
+
+ public DriverDialog(Shell parent) {
+ super(parent);
+ }
+
+ public Dependency getDependency() {
+ if (data[0].trim().length() == 0 || data[1].trim().length() == 0
+ || data[2].trim().length() == 0 || data[3].trim().length() == 0) {
+ return null;
+ }
+ Dependency dependency = new Dependency();
+ dependency.setGroupId(data[0]);
+ dependency.setArtifactId(data[1]);
+ dependency.setVersion(data[2]);
+ dependency.setType(data[3]);
+ return dependency;
+ }
+
+ protected Control createContents(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);
+
+ createLabel(composite, CommonMessages.groupId, 2);
+ text[0] = createText(composite, 2);
+ createLabel(composite, CommonMessages.artifactId, 2);
+ text[1] = createText(composite, 2);
+ createLabel(composite, CommonMessages.version, 2);
+ text[2] = createText(composite, 2);
+ createLabel(composite, CommonMessages.artifactType, 2);
+ text[3] = createText(composite, 2);
+
+ createButtonBar(parent);
+
+ return composite;
+ }
+
+ protected void okPressed() {
+ for (int i = 0; i < text.length; i++) {
+ data[i] = text[i].getText();
+ }
+ super.okPressed();
+ }
+
+ 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/v21/ui/wizards/DBPoolWizard.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/v21/ui/wizards/DBPoolWizard.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/v21/ui/wizards/DBPoolWizard.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/v21/ui/wizards/DependencyWizard.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/v21/ui/wizards/DependencyWizard.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/DependencyWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/DependencyWizard.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,166 @@
+/*
+ * 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.v21.ui.wizards;
+
+import java.util.List;
+
+import org.apache.geronimo.jee.deployment.Dependency;
+import org.apache.geronimo.st.core.jaxb.JAXBObjectFactory;
+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.v21.core.GeronimoServerInfo;
+import org.apache.geronimo.st.v21.core.jaxb.JAXBObjectFactoryImpl;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DependencyWizard extends AbstractTableWizard {
+
+ private Table dependencyTable;
+ private TabFolder tabFolder;
+
+ public DependencyWizard(AbstractTableSection section) {
+ super(section);
+ }
+
+ public JAXBObjectFactory getEFactory() {
+ return JAXBObjectFactoryImpl.getInstance();
+ }
+
+ public String[] getTableColumnEAttributes() {
+ return new String[] { "GroupId", "ArtifactId", "Version", "Type" };
+ }
+
+ protected String[] dependencyToStringArray(Dependency dependency) {
+ String[] stringArray = new String[getTableColumnEAttributes().length];
+ stringArray[0] = dependency.getGroupId();
+ stringArray[1] = dependency.getArtifactId();
+ stringArray[2] = dependency.getVersion();
+ stringArray[3] = dependency.getType();
+ return stringArray;
+ }
+
+ public void addPages() {
+ addPage(new DependencyWizardPage("AddDependencyPage"));
+ }
+
+ public class DependencyWizardPage extends AbstractTableWizardPage {
+
+ public DependencyWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ public void createControl(Composite parent) {
+ parent.setLayoutData(createGridData());
+
+ Composite composite = createComposite(parent);
+ tabFolder = new TabFolder(composite, SWT.NONE);
+ tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ TabItem item1 = new TabItem(tabFolder, SWT.NONE);
+ item1.setText(CommonMessages.wizardTabManual_Dependency);
+ Composite addManuallyComposite = createComposite(tabFolder);
+ createEditFields(addManuallyComposite);
+ item1.setControl(addManuallyComposite);
+
+ if (eObject == null) {
+ TabItem item2 = new TabItem(tabFolder, SWT.NONE);
+ item2.setText(CommonMessages.wizardTabServer_Dependency);
+ int columnWidths[] = { 80, 220, 50, 65 };
+ dependencyTable = createTable(tabFolder, section.getTableColumnNames(), columnWidths);
+ populateTable();
+ item2.setControl(dependencyTable);
+ }
+ tabFolder.pack();
+ doCustom(composite);
+ 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 = 230;
+ data.widthHint = 300;
+ return data;
+ }
+
+ public void populateTable() {
+ List<Dependency> serverList = GeronimoServerInfo.getInstance().getCommonLibs();
+ List<Dependency> alreadyAddedDependencies = (List<Dependency>) section.getObjectContainer();
+ serverList.removeAll(alreadyAddedDependencies);
+ for (int i = 0; i < serverList.size(); ++i) {
+ TableItem tabItem = new TableItem(dependencyTable, SWT.NONE);
+ Dependency dependency = serverList.get(i);
+ tabItem.setData(dependency);
+ tabItem.setText(dependencyToStringArray(dependency));
+ }
+ }
+
+ public String getWizardPageTitle() {
+ return CommonMessages.wizardPageTitle_Dependency;
+ }
+
+ public String getWizardPageDescription() {
+ return CommonMessages.wizardPageDescription_Dependency;
+ }
+ }
+
+ public boolean performFinish() {
+ switch (tabFolder.getSelectionIndex()) {
+ case -1:
+ // no item selected!
+ return false;
+ case 0:
+ // Adding Manually
+ if (eObject == null) {
+ eObject = new Dependency();
+ section.getObjectContainer().add(eObject);
+ }
+ processEAttributes(getPages()[0]);
+ break;
+ case 1:
+ // Adding from Server
+ TableItem[] selectedItems = dependencyTable.getSelection();
+ for (int i = 0; i < selectedItems.length; i++) {
+ TableItem selectedItem = selectedItems[i];
+ Dependency dependency = (Dependency) selectedItem.getData();
+ section.getObjectContainer().add(dependency);
+ }
+ break;
+ }
+ return true;
+ }
+
+ public String getAddWizardWindowTitle() {
+ return CommonMessages.wizardNewTitle_Dependency;
+ }
+
+ public String getEditWizardWindowTitle() {
+ return CommonMessages.wizardEditTitle_Dependency;
+ }
+}
Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/DependencyWizard.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/v21/ui/wizards/DependencyWizard.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/v21/ui/wizards/DependencyWizard.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/v21/ui/wizards/EjbLocalRefWizard.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/v21/ui/wizards/EjbLocalRefWizard.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbLocalRefWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbLocalRefWizard.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,67 @@
+/*
+ * 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.v21.ui.wizards;
+
+import org.apache.geronimo.st.core.jaxb.JAXBObjectFactory;
+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.v21.core.jaxb.JAXBObjectFactoryImpl;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class EjbLocalRefWizard extends AbstractTableWizard {
+
+ public EjbLocalRefWizard(AbstractTableSection section) {
+ super(section);
+ }
+
+ public JAXBObjectFactory getEFactory() {
+ return JAXBObjectFactoryImpl.getInstance();
+ }
+
+ public String[] getTableColumnEAttributes() {
+ return new String[] { "RefName", "EjbLink" };
+ }
+
+ public String getAddWizardWindowTitle() {
+ return CommonMessages.wizardNewTitle_EjbLocalRef;
+ }
+
+ public String getEditWizardWindowTitle() {
+ return CommonMessages.wizardEditTitle_EjbLocalRef;
+ }
+
+ public void addPages() {
+ addPage(new EjbLocalRefWizardPage("Page0"));
+ }
+
+ public class EjbLocalRefWizardPage extends AbstractTableWizardPage {
+ public EjbLocalRefWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ public String getWizardPageTitle() {
+ return CommonMessages.wizardPageTitle_EjbLocalRef;
+ }
+
+ public String getWizardPageDescription() {
+ return CommonMessages.wizardPageDescription_EjbLocalRef;
+ }
+ }
+}
Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbLocalRefWizard.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/v21/ui/wizards/EjbLocalRefWizard.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/v21/ui/wizards/EjbLocalRefWizard.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/v21/ui/wizards/EjbRefWizard.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/v21/ui/wizards/EjbRefWizard.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbRefWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbRefWizard.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,67 @@
+/*
+ * 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.v21.ui.wizards;
+
+import org.apache.geronimo.st.core.jaxb.JAXBObjectFactory;
+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.v21.core.jaxb.JAXBObjectFactoryImpl;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class EjbRefWizard extends AbstractTableWizard {
+
+ public EjbRefWizard(AbstractTableSection section) {
+ super(section);
+ }
+
+ public JAXBObjectFactory getEFactory() {
+ return JAXBObjectFactoryImpl.getInstance();
+ }
+
+ public String[] getTableColumnEAttributes() {
+ return new String[] { "RefName", "EjbLink" };
+ }
+
+ public String getAddWizardWindowTitle() {
+ return CommonMessages.wizardNewTitle_EjbRef;
+ }
+
+ public String getEditWizardWindowTitle() {
+ return CommonMessages.wizardEditTitle_EjbRef;
+ }
+
+ public void addPages() {
+ addPage(new EjbRefWizardPage("Page0"));
+ }
+
+ public class EjbRefWizardPage extends AbstractTableWizardPage {
+ public EjbRefWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ public String getWizardPageTitle() {
+ return CommonMessages.wizardPageTitle_EjbRef;
+ }
+
+ public String getWizardPageDescription() {
+ return CommonMessages.wizardPageDescription_EjbRef;
+ }
+ }
+}
Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbRefWizard.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/v21/ui/wizards/EjbRefWizard.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/v21/ui/wizards/EjbRefWizard.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/v21/ui/wizards/EjbRelationWizard.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/v21/ui/wizards/EjbRelationWizard.java?rev=921247&view=auto
==============================================================================
--- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbRelationWizard.java (added)
+++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbRelationWizard.java Wed Mar 10 08:31:28 2010
@@ -0,0 +1,223 @@
+/*
+ * 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.v21.ui.wizards;
+
+import javax.xml.bind.JAXBElement;
+
+import org.apache.geronimo.jee.openejb.EjbRelation;
+import org.apache.geronimo.jee.openejb.EjbRelationshipRole;
+import org.apache.geronimo.jee.openejb.Relationships;
+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.AbstractTreeWizard;
+import org.apache.geronimo.st.v21.core.jaxb.JAXBModelUtils;
+import org.apache.geronimo.st.v21.core.jaxb.JAXBObjectFactoryImpl;
+import org.apache.geronimo.st.v21.ui.sections.EjbRelationSection;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class EjbRelationWizard extends AbstractTreeWizard {
+
+ private final int EJB_RELATION = 0;
+ private final int RELATIONSHIP_ROLE = 1;
+ private final int CMR_FIELD_MAPPING = 2;
+
+ public EjbRelationWizard(AbstractTreeSection section) {
+ super(section, 3, 3);
+ elementTypes[EJB_RELATION] = "EJB Relation";
+ elementTypes[RELATIONSHIP_ROLE] = "EJB Relationship Role";
+ elementTypes[CMR_FIELD_MAPPING] = "CMR Field Mapping";
+ }
+
+ public class EjbRelationWizardPage extends AbstractTreeWizardPage {
+
+ public EjbRelationWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ protected void initControl () {
+ if (eObject == null) {
+ element.select(EJB_RELATION);
+ if (EjbRelation.class.isInstance(((EjbRelationSection)section).getSelectedObject())) {
+ element.remove(elementTypes[CMR_FIELD_MAPPING]);
+ }
+ else if (EjbRelationshipRole.class.isInstance(((EjbRelationSection)section).getSelectedObject())) {
+ element.select(CMR_FIELD_MAPPING);
+ element.setEnabled(false);
+ }
+ else {
+ element.setEnabled(false);
+ }
+ }
+ else {
+ if (EjbRelation.class.isInstance(eObject)) {
+ textList.get(0).setText(((EjbRelation)eObject).getEjbRelationName());
+ textList.get(1).setText(((EjbRelation)eObject).getManyToManyTableName());
+ element.select(EJB_RELATION);
+ }
+ else if (EjbRelationshipRole.class.isInstance(eObject)) {
+ EjbRelationshipRole role = (EjbRelationshipRole)eObject;
+ textList.get(0).setText(role.getEjbRelationshipRoleName());
+ textList.get(1).setText(role.getRelationshipRoleSource().getEjbName());
+ textList.get(2).setText(role.getCmrField().getCmrFieldName());
+ element.select(RELATIONSHIP_ROLE);
+ }
+ else if (EjbRelationshipRole.RoleMapping.CmrFieldMapping.class.isInstance(eObject)) {
+ EjbRelationshipRole.RoleMapping.CmrFieldMapping fieldMapping =
+ (EjbRelationshipRole.RoleMapping.CmrFieldMapping)eObject;
+ textList.get(0).setText(fieldMapping.getKeyColumn());
+ textList.get(1).setText(fieldMapping.getForeignKeyColumn());
+ element.select(CMR_FIELD_MAPPING);
+ }
+ element.setEnabled(false);
+ }
+ }
+
+ protected void toggleFields (boolean clearFields) {
+ if (element.getText().equals(elementTypes[EJB_RELATION])) {
+ for (int i = 0; i < maxTextFields; i++) {
+ labelList.get(i).setVisible(i < 2 ? true : false);
+ textList.get(i).setVisible(i < 2 ? true : false);
+ if (clearFields == true) {
+ textList.get(i).setText("");
+ }
+ }
+ labelList.get(0).setText(CommonMessages.name);
+ labelList.get(1).setText(CommonMessages.mtmTableName);
+ // if we are doing an add, then we need to make sure that the longest
+ // text can be handled
+ labelList.get(2).setText(CommonMessages.foreignKeyColumn);
+ }
+ else if (element.getText().equals(elementTypes[RELATIONSHIP_ROLE])) {
+ for (int i = 0; i < maxTextFields; i++) {
+ labelList.get(i).setVisible(true);
+ textList.get(i).setVisible(true);
+ if (clearFields == true) {
+ textList.get(i).setText("");
+ }
+ }
+ labelList.get(0).setText(CommonMessages.name);
+ labelList.get(1).setText(CommonMessages.ejbSourceName);
+ labelList.get(2).setText(CommonMessages.cmrFieldName);
+ }
+ else if (element.getText().equals(elementTypes[CMR_FIELD_MAPPING])) {
+ for (int i = 0; i < maxTextFields; i++) {
+ labelList.get(i).setVisible(i < 2 ? true : false);
+ textList.get(i).setVisible(i < 2 ? true : false);
+ if (clearFields == true) {
+ textList.get(i).setText("");
+ }
+ }
+ labelList.get(0).setText(CommonMessages.keyColumn);
+ labelList.get(1).setText(CommonMessages.foreignKeyColumn);
+ }
+ }
+
+ public String getWizardPageTitle() {
+ return CommonMessages.wizardPageTitle_EjbRelation;
+ }
+
+ public String getWizardPageDescription() {
+ return CommonMessages.wizardPageDescription_EjbRelation;
+ }
+ }
+
+ @Override
+ public void addPages() {
+ addPage(new EjbRelationWizardPage("Page0"));
+ }
+
+ @Override
+ public boolean performFinish() {
+ EjbRelation relation;
+ if (element.getText().equals(elementTypes[EJB_RELATION])) {
+ relation = (EjbRelation)eObject;
+ if (relation == null) {
+ relation = (EjbRelation)getEFactory().create(EjbRelation.class);
+ JAXBElement plan = section.getPlan();
+
+ if (JAXBModelUtils.getEjbRelationships(plan) == null) {
+ Relationships relationships = (Relationships)getEFactory().create(Relationships.class);
+
+ JAXBModelUtils.setEjbRelationships(plan, relationships);
+ ((EjbRelationSection)section).resetInput(relationships);
+ }
+ JAXBModelUtils.getEjbRelationships(plan).add(relation);
+ }
+ relation.setEjbRelationName(textList.get(0).getText());
+ relation.setManyToManyTableName(textList.get(1).getText());
+ }
+ else if (element.getText().equals(elementTypes[RELATIONSHIP_ROLE])) {
+ if (isEmpty(textList.get(1).getText())) {
+ return false;
+ }
+ EjbRelationshipRole role = (EjbRelationshipRole)eObject;
+ if (role == null) {
+ role = (EjbRelationshipRole)getEFactory().create(EjbRelationshipRole.class);
+ relation = (EjbRelation)((EjbRelationSection)section).getSelectedObject();
+ relation.getEjbRelationshipRole().add(role);
+ }
+ role.setEjbRelationshipRoleName(textList.get(0).getText());
+ EjbRelationshipRole.RelationshipRoleSource source = role.getRelationshipRoleSource();
+ if (source == null) {
+ source = (EjbRelationshipRole.RelationshipRoleSource)getEFactory().create(EjbRelationshipRole.RelationshipRoleSource.class);
+ role.setRelationshipRoleSource(source);
+ }
+ source.setEjbName(textList.get(1).getText());
+ EjbRelationshipRole.CmrField cmrField = role.getCmrField();
+ if (cmrField == null) {
+ cmrField = (EjbRelationshipRole.CmrField)getEFactory().create(EjbRelationshipRole.CmrField.class);
+ role.setCmrField(cmrField);
+ }
+ cmrField.setCmrFieldName(textList.get(2).getText());
+ }
+ else if (element.getText().equals(elementTypes[CMR_FIELD_MAPPING])) {
+ if (isEmpty(textList.get(0).getText()) || isEmpty(textList.get(1).getText())) {
+ return false;
+ }
+ EjbRelationshipRole.RoleMapping.CmrFieldMapping fieldMapping =
+ (EjbRelationshipRole.RoleMapping.CmrFieldMapping)eObject;
+ if (fieldMapping == null) {
+ fieldMapping = (EjbRelationshipRole.RoleMapping.CmrFieldMapping)getEFactory().create(EjbRelationshipRole.RoleMapping.CmrFieldMapping.class);
+ EjbRelationshipRole role = (EjbRelationshipRole)((EjbRelationSection)section).getSelectedObject();
+ EjbRelationshipRole.RoleMapping roleMapping = role.getRoleMapping();
+ if (roleMapping == null) {
+ roleMapping = (EjbRelationshipRole.RoleMapping)getEFactory().create(EjbRelationshipRole.RoleMapping.class);
+ role.setRoleMapping(roleMapping);
+ }
+ role.getRoleMapping().getCmrFieldMapping().add(fieldMapping);
+ }
+ fieldMapping.setKeyColumn(textList.get(0).getText());
+ fieldMapping.setForeignKeyColumn(textList.get(1).getText());
+ }
+ return true;
+ }
+
+ public JAXBObjectFactory getEFactory() {
+ return JAXBObjectFactoryImpl.getInstance();
+ }
+
+ public String getAddWizardWindowTitle() {
+ return CommonMessages.wizardNewTitle_EjbRelation;
+ }
+
+ public String getEditWizardWindowTitle() {
+ return CommonMessages.wizardEditTitle_EjbRelation;
+ }
+}
Propchange: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/EjbRelationWizard.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/v21/ui/wizards/EjbRelationWizard.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/v21/ui/wizards/EjbRelationWizard.java
------------------------------------------------------------------------------
svn:mime-type = text/plain