Author: rob.stryker(a)jboss.com
Date: 2009-07-18 21:55:04 -0400 (Sat, 18 Jul 2009)
New Revision: 16660
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/schema/referenceWizardFragment.exsd
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/JarReferenceWizardFragment.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceRootWizardFragment.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceWizard.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ProjectReferenceWizardFragment.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/AddModuleDependenciesPropertiesPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ComponentDependencyContentProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/DependencyPageExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/impl/EarModuleDependenciesPropertyPage.java
Log:
Making changes on a saturday, checking out a new look, checking it in to let WTP team have
a glance if they choose
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF 2009-07-18
22:03:00 UTC (rev 16659)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF 2009-07-19
01:55:04 UTC (rev 16660)
@@ -21,6 +21,9 @@
org.eclipse.jem.util;bundle-version="2.0.200",
org.eclipse.jst.jee;bundle-version="1.0.200",
org.eclipse.jdt.ui;bundle-version="3.5.0",
- org.jboss.ide.eclipse.as.wtp.override.core;bundle-version="1.0.0"
+ org.jboss.ide.eclipse.as.wtp.override.core;bundle-version="1.0.0",
+ org.eclipse.wst.server.ui;bundle-version="1.1.102",
+ org.eclipse.wst.server.core;bundle-version="1.1.101",
+ org.eclipse.wst.common.emfworkbench.integration;bundle-version="1.1.300"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml 2009-07-18
22:03:00 UTC (rev 16659)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml 2009-07-19
01:55:04 UTC (rev 16660)
@@ -2,6 +2,7 @@
<?eclipse version="3.4"?>
<plugin>
<extension-point id="moduleDependencyPropertyPage"
name="org.jboss.ide.eclipse.as.wtp.override.moduleDependencyPropertyPage"
schema="schema/moduleDependencyPropertyPage.exsd"/>
+ <extension-point id="referenceWizardFragment"
name="referenceWizardFragment"
schema="schema/referenceWizardFragment.exsd"/>
<extension point="org.eclipse.ui.propertyPages">
@@ -28,4 +29,27 @@
id="org.jboss.ide.eclipse.as.wtp.override.ui.earDependencyPage">
</dependencyPage>
</extension>
+ <extension
+
point="org.jboss.ide.eclipse.as.wtp.override.ui.referenceWizardFragment">
+ <referenceFragment
+
class="org.jboss.ide.eclipse.as.wtp.override.ui.propertypage.ProjectReferenceWizardFragment"
+ id="org.jboss.ide.eclipse.as.wtp.override.ui.newProjectReference"
+ name="Project">
+ </referenceFragment>
+ <referenceFragment
+
class="org.jboss.ide.eclipse.as.wtp.override.ui.propertypage.JarReferenceWizardFragment"
+ id="org.jboss.ide.eclipse.as.wtp.override.ui.jarReference"
+ name="Jar">
+ </referenceFragment>
+ <referenceFragment
+
class="org.jboss.ide.eclipse.as.wtp.override.ui.propertypage.ExternalJarReferenceWizardFragment"
+
id="org.jboss.ide.eclipse.as.wtp.override.ui.externalJarReference"
+ name="External Jar">
+ </referenceFragment>
+ <referenceFragment
+
class="org.jboss.ide.eclipse.as.wtp.override.ui.propertypage.VariableReferenceWizardFragment"
+ id="org.jboss.ide.eclipse.as.wtp.override.ui.variableReference"
+ name="Variable">
+ </referenceFragment>
+ </extension>
</plugin>
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/schema/referenceWizardFragment.exsd
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/schema/referenceWizardFragment.exsd
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/schema/referenceWizardFragment.exsd 2009-07-19
01:55:04 UTC (rev 16660)
@@ -0,0 +1,126 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.jboss.ide.eclipse.as.wtp.override.ui"
xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.jboss.ide.eclipse.as.wtp.override.ui"
id="referenceWizardFragment" name="referenceWizardFragment"/>
+ </appinfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="referenceFragment"/>
+ </sequence>
+ <attribute name="point" type="string"
use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="referenceFragment">
+ <complexType>
+ <attribute name="id" type="string"
use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string"
use="required">
+ <annotation>
+ <documentation>
+ The name will be displayed in the UI, inside the viewer
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="resource"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java"
basedOn="org.eclipse.wst.server.ui.wizard.WizardFragment:"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/AddModuleDependenciesPropertiesPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/AddModuleDependenciesPropertiesPage.java 2009-07-18
22:03:00 UTC (rev 16659)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/AddModuleDependenciesPropertiesPage.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -12,15 +12,12 @@
*******************************************************************************/
package org.jboss.ide.eclipse.as.wtp.override.ui.propertypage;
-import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.resources.IProject;
@@ -33,31 +30,22 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.window.Window;
-import org.eclipse.jst.j2ee.internal.ManifestUIResourceHandler;
+import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
-import org.eclipse.jst.j2ee.project.facet.IJavaProjectMigrationDataModelProperties;
-import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationDataModelProvider;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
@@ -75,11 +63,8 @@
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.ModuleCoreNature;
import
org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
import
org.eclipse.wst.common.componentcore.internal.operation.CreateReferenceComponentsDataModelProvider;
import
org.eclipse.wst.common.componentcore.internal.operation.RemoveReferenceComponentsDataModelProvider;
@@ -108,10 +93,7 @@
protected Text componentNameText;
protected Label availableModules;
protected TableViewer availableComponentsViewer;
- protected Button projectButton, removeButton;
- protected Button projectJarButton;
- protected Button externalJarButton;
- protected Button addVariableButton;
+ protected Button referenceButton, removeButton;
protected Composite buttonColumn;
protected static final IStatus OK_STATUS = IDataModelProvider.OK_STATUS;
protected Listener tableListener;
@@ -120,7 +102,7 @@
protected HashMap<IVirtualComponent, String> oldComponentToRuntimePath = new
HashMap<IVirtualComponent, String>();
// This should keep a list of all elements currently in the list (not removed)
- protected HashMap<Object, String> objectToRuntimePath = new HashMap<Object,
String>();
+ protected HashMap<IVirtualComponent, String> objectToRuntimePath = new
HashMap<IVirtualComponent, String>();
/**
* Constructor for AddModulestoEARPropertiesControl.
@@ -144,7 +126,7 @@
composite.setLayout(layout);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
ModuleAssemblyRootPage.createDescriptionComposite(composite,
- ManifestUIResourceHandler.EAR_Modules_Desc);
+ "TODO Change this: Create and change packaging structure for this project
");
createListGroup(composite);
refresh();
Dialog.applyDialogFont(parent);
@@ -165,8 +147,7 @@
availableModules = new Label(listGroup, SWT.NONE);
gData = new GridData(GridData.HORIZONTAL_ALIGN_FILL
| GridData.VERTICAL_ALIGN_FILL);
- availableModules.setText(J2EEUIMessages
- .getResourceString("AVAILABLE_J2EE_COMPONENTS")); //$NON-NLS-1$ =
"Available dependent JARs:"
+ availableModules.setText("Available dependent modules"); //$NON-NLS-1$
availableModules.setLayoutData(gData);
createTableComposite(listGroup);
}
@@ -196,14 +177,9 @@
}
protected void createPushButtons() {
- projectButton =
createPushButton(Messages.AddModuleDependenciesPropertiesPage_AddProjectButton);
- projectJarButton = createPushButton(J2EEUIMessages
- .getResourceString(J2EEUIMessages.PROJECT_JAR));
- externalJarButton = createPushButton(J2EEUIMessages
- .getResourceString(J2EEUIMessages.EXTERNAL_JAR));
- addVariableButton = createPushButton(J2EEUIMessages
- .getResourceString(J2EEUIMessages.ADDVARIABLE));
- removeButton =
createPushButton(Messages.AddModuleDependenciesPropertiesPage_RemoveSelectedButton);
+ // TODO add the resource button
+ referenceButton = createPushButton("Add Reference...");
+ removeButton = createPushButton("Remove selected...");
}
protected Button createPushButton(String label) {
@@ -411,7 +387,7 @@
public void modify(Object element, String property, Object value) {
if (property.equals(DEPLOY_PATH_PROPERTY)) {
TableItem item = (TableItem) element;
- objectToRuntimePath.put(item.getData(), (String) value);
+ objectToRuntimePath.put((IVirtualComponent)item.getData(), (String) value);
refresh();
}
}
@@ -419,194 +395,133 @@
}
public void handleEvent(Event event) {
- if (event.widget == projectButton)
- handleSelectProjectButton();
- else if (event.widget == projectJarButton)
- handleSelectProjectJarButton();
- else if (event.widget == externalJarButton)
- handleSelectExternalJarButton();
- else if (event.widget == addVariableButton)
- handleSelectVariableButton();
+ if( event.widget == referenceButton)
+ handleAddReferenceButton();
else if( event.widget == removeButton )
handleRemoveSelectedButton();
}
- private void handleSelectProjectButton() {
- SelectProjectDialog d = new SelectProjectDialog(new Shell(),
- getProjectLabelProvider(), getProjectContentProvider());
- if (d.open() == Window.OK) {
- IProject selected = (IProject) d.getFirstResult();
- Object selected2 = ModuleCoreNature.isFlexibleProject(selected) ?
- ComponentCore.createComponent(selected) : selected;
- IPath path = new Path("/"); //$NON-NLS-1$
- path = path.append(selected2 instanceof IVirtualComponent ?
- getVirtualComponentNameWithExtension((IVirtualComponent)selected2) :
selected.getName() + ".jar"); //$NON-NLS-1$
- objectToRuntimePath.put(selected2, path.toString());
- refresh();
- TableItem[] items = availableComponentsViewer.getTable().getItems();
- for (int i = 0; i < items.length; i++)
- if (items[i].getData().equals(selected2))
- items[i].setChecked(true);
- }
- }
+// /**
+// * [Bug 238264] Add an archive as a potential new reference for
+// * this.earComponent NOTE1: the given archive will not be added as a
+// * potential reference if there is already a reference to it NOTE2: the
+// * given archive will only be added as an actual reference when
+// * this.performOk is invoked
+// *
+// * @param archive
+// * the archive to add as a potential new reference in
+// * this.earComponent
+// *
+// */
+// private void addPotentialNewReference(IVirtualComponent archive) {
+// // check to see if a reference to the given archive already exists
+// IVirtualReference[] existingRefs = rootComponent.getReferences();
+// IVirtualComponent referencedComponent;
+// boolean refAlreadyExists = false;
+// for (int i = 0; i < existingRefs.length && !refAlreadyExists; i++) {
+// referencedComponent = existingRefs[i].getReferencedComponent();
+// refAlreadyExists = referencedComponent.equals(archive);
+// }
+//
+// // verify it's not already in the list... ugh
+// TableItem[] allItems = availableComponentsViewer.getTable().getItems();
+// for (int i = 0; i < allItems.length; i++) {
+// if (allItems[i].getData().equals(archive)) {
+// allItems[i].setChecked(true);
+// refAlreadyExists = true;
+// }
+// }
+//
+// // only add the archive as a potentialy new reference
+// // if it does not already exist
+// if (!refAlreadyExists) {
+// String name = new Path(archive.getName()).lastSegment();
+// if( archive instanceof VirtualArchiveComponent &&
+// ((VirtualArchiveComponent)archive).getArchiveType()
+// .equals(VirtualArchiveComponent.VARARCHIVETYPE)) {
+// File f = ((VirtualArchiveComponent)archive).getUnderlyingDiskFile();
+// if( f != null )
+// name = new Path(f.getAbsolutePath()).lastSegment();
+// }
+// this.objectToRuntimePath.put(archive, new
Path("/").append(name).toString()); //$NON-NLS-1$
+// availableComponentsViewer.add(archive);
+// } else {
+// // TODO should inform user that they selected an already referenced
+// // archive?
+// }
+// }
+//
+// private void handleSelectExternalJarButton() {
+// IPath[] selected = BuildPathDialogAccess
+// .chooseExternalJAREntries(propPage.getShell());
+//
+// if (selected != null) {
+// for (int i = 0; i < selected.length; i++) {
+//
+// String type = VirtualArchiveComponent.LIBARCHIVETYPE
+// + IPath.SEPARATOR;
+// IVirtualComponent archive = ComponentCore
+// .createArchiveComponent(rootComponent.getProject(),
+// type + selected[i].toString());
+//
+// this.addPotentialNewReference(archive);
+// }
+// refresh();
+// }
+//
+// }
+//
+// private void handleSelectVariableButton() {
+// IPath existingPath[] = new Path[0];
+// IPath[] paths = BuildPathDialogAccess.chooseVariableEntries(propPage
+// .getShell(), existingPath);
+//
+// if (paths != null) {
+// refresh();
+// for (int i = 0; i < paths.length; i++) {
+// IPath resolvedPath = JavaCore.getResolvedVariablePath(paths[i]);
+//
+// java.io.File file = new java.io.File(resolvedPath.toOSString());
+// if (file.isFile() && file.exists()) {
+// String type = VirtualArchiveComponent.VARARCHIVETYPE
+// + IPath.SEPARATOR;
+//
+// IVirtualComponent archive = ComponentCore
+// .createArchiveComponent(rootComponent.getProject(),
+// type + paths[i].toString());
+//
+// this.addPotentialNewReference(archive);
+// } else {
+// // display error
+// }
+// }
+// refresh();
+// }
+// }
- protected class SelectProjectDialog extends ElementTreeSelectionDialog {
- public SelectProjectDialog(Shell parent, ILabelProvider labelProvider,
- ITreeContentProvider contentProvider) {
- super(parent, labelProvider, contentProvider);
- setAllowMultiple(false);
- setTitle(Messages.AddModuleDependenciesPropertiesPage_SelectAProjectTitle);
- setInput(ResourcesPlugin.getWorkspace());
- }
- }
-
- protected ILabelProvider getProjectLabelProvider() {
- return new LabelProvider() {
- public Image getImage(Object element) {
- if (element instanceof IProject)
- return PlatformUI.getWorkbench().getSharedImages()
- .getImage(ISharedImages.IMG_OBJ_PROJECT);
- return null;
+ protected void handleAddReferenceButton() {
+ NewReferenceWizard wizard = new NewReferenceWizard();
+ // fill the task model
+ wizard.getTaskModel().putObject(NewReferenceWizard.PROJECT, project);
+ wizard.getTaskModel().putObject(NewReferenceWizard.ROOT_COMPONENT, rootComponent);
+
+ WizardDialog wd = new WizardDialog(referenceButton.getShell(), wizard);
+ if( wd.open() != Window.CANCEL) {
+ Object c1 = wizard.getTaskModel().getObject(NewReferenceWizard.COMPONENT);
+ Object p1 = wizard.getTaskModel().getObject(NewReferenceWizard.COMPONENT_PATH);
+ IVirtualComponent[] compArr = c1 instanceof IVirtualComponent ?
+ new IVirtualComponent[] { (IVirtualComponent)c1 } :
+ (IVirtualComponent[])c1;
+ String[] pathArr = p1 instanceof String ?
+ new String[] { (String)p1 } :
+ (String[])p1;
+ for( int i = 0; i < compArr.length; i++ ) {
+ objectToRuntimePath.put(compArr[i], pathArr[i]);
}
-
- public String getText(Object element) {
- if (element instanceof IProject)
- return ((IProject) element).getName();
- return element == null ? "" : element.toString();//$NON-NLS-1$
- }
- };
- }
-
- protected ITreeContentProvider getProjectContentProvider() {
- return new ITreeContentProvider() {
- public Object[] getElements(Object inputElement) {
- return ResourcesPlugin.getWorkspace().getRoot().getProjects();
- }
-
- public Object[] getChildren(Object parentElement) {
- return null;
- }
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return false;
- }
-
- public void dispose() {
- }
-
- public void inputChanged(Viewer viewer, Object oldInput,
- Object newInput) {
- }
-
- };
- }
-
- protected IProject[] filterAddProjectList(IProject[] list) {
- return list;
- }
-
- /**
- * [Bug 238264] Add an archive as a potential new reference for
- * this.earComponent NOTE1: the given archive will not be added as a
- * potential reference if there is already a reference to it NOTE2: the
- * given archive will only be added as an actual reference when
- * this.performOk is invoked
- *
- * @param archive
- * the archive to add as a potential new reference in
- * this.earComponent
- *
- */
- private void addPotentialNewReference(IVirtualComponent archive) {
- // check to see if a reference to the given archive already exists
- IVirtualReference[] existingRefs = rootComponent.getReferences();
- IVirtualComponent referencedComponent;
- boolean refAlreadyExists = false;
- for (int i = 0; i < existingRefs.length && !refAlreadyExists; i++) {
- referencedComponent = existingRefs[i].getReferencedComponent();
- refAlreadyExists = referencedComponent.equals(archive);
- }
-
- // verify it's not already in the list... ugh
- TableItem[] allItems = availableComponentsViewer.getTable().getItems();
- for (int i = 0; i < allItems.length; i++) {
- if (allItems[i].getData().equals(archive)) {
- allItems[i].setChecked(true);
- refAlreadyExists = true;
- }
- }
-
- // only add the archive as a potentialy new reference
- // if it does not already exist
- if (!refAlreadyExists) {
- String name = new Path(archive.getName()).lastSegment();
- if( archive instanceof VirtualArchiveComponent &&
- ((VirtualArchiveComponent)archive).getArchiveType()
- .equals(VirtualArchiveComponent.VARARCHIVETYPE)) {
- File f = ((VirtualArchiveComponent)archive).getUnderlyingDiskFile();
- if( f != null )
- name = new Path(f.getAbsolutePath()).lastSegment();
- }
- this.objectToRuntimePath.put(archive, new
Path("/").append(name).toString()); //$NON-NLS-1$
- availableComponentsViewer.add(archive);
- } else {
- // TODO should inform user that they selected an already referenced
- // archive?
- }
- }
-
- private void handleSelectExternalJarButton() {
- IPath[] selected = BuildPathDialogAccess
- .chooseExternalJAREntries(propPage.getShell());
-
- if (selected != null) {
- for (int i = 0; i < selected.length; i++) {
-
- String type = VirtualArchiveComponent.LIBARCHIVETYPE
- + IPath.SEPARATOR;
- IVirtualComponent archive = ComponentCore
- .createArchiveComponent(rootComponent.getProject(),
- type + selected[i].toString());
-
- this.addPotentialNewReference(archive);
- }
refresh();
}
-
}
-
- private void handleSelectVariableButton() {
- IPath existingPath[] = new Path[0];
- IPath[] paths = BuildPathDialogAccess.chooseVariableEntries(propPage
- .getShell(), existingPath);
-
- if (paths != null) {
- refresh();
- for (int i = 0; i < paths.length; i++) {
- IPath resolvedPath = JavaCore.getResolvedVariablePath(paths[i]);
-
- java.io.File file = new java.io.File(resolvedPath.toOSString());
- if (file.isFile() && file.exists()) {
- String type = VirtualArchiveComponent.VARARCHIVETYPE
- + IPath.SEPARATOR;
-
- IVirtualComponent archive = ComponentCore
- .createArchiveComponent(rootComponent.getProject(),
- type + paths[i].toString());
-
- this.addPotentialNewReference(archive);
- } else {
- // display error
- }
- }
- refresh();
- }
- }
-
+
protected void handleRemoveSelectedButton() {
ISelection sel = availableComponentsViewer.getSelection();
if( sel instanceof IStructuredSelection ) {
@@ -654,26 +569,6 @@
}
}
- private void handleSelectProjectJarButton() {
- IPath[] selected = BuildPathDialogAccess.chooseJAREntries(propPage
- .getShell(), project.getLocation(), new IPath[0]);
-
- if (selected != null) {
- for (int i = 0; i < selected.length; i++) {
- // IPath fullPath = project.getFile(selected[i]).getFullPath();
- String type = VirtualArchiveComponent.LIBARCHIVETYPE
- + IPath.SEPARATOR;
- IVirtualComponent archive = ComponentCore
- .createArchiveComponent(rootComponent.getProject(),
- type + selected[i].makeRelative().toString());
-
- this.addPotentialNewReference(archive);
- }
- refresh();
- }
-
- }
-
/**
* This should only be called on changes, such as adding a project
* reference, adding a lib reference etc.
@@ -709,7 +604,6 @@
IVirtualComponent comp;
for( int i = 0; i < refs.length; i++ ) {
comp = refs[i].getReferencedComponent();
- String archiveName = refs[i].getArchiveName();
String val = refs[i].getRuntimePath().append(refs[i].getArchiveName()).toString();
objectToRuntimePath.put(comp, val);
oldComponentToRuntimePath.put((IVirtualComponent) comp, val);
@@ -760,17 +654,17 @@
public boolean performOk() {
// grab what's checked
- ArrayList<Object> checked = new ArrayList<Object>();
+ ArrayList<IVirtualComponent> checked = new ArrayList<IVirtualComponent>();
TableItem[] items = availableComponentsViewer.getTable().getItems();
for (int i = 0; i < items.length; i++)
- checked.add(items[i].getData());
+ checked.add((IVirtualComponent)items[i].getData());
// Fill our delta lists
- ArrayList<Object> added = new ArrayList<Object>();
+ ArrayList<IVirtualComponent> added = new ArrayList<IVirtualComponent>();
ArrayList<IVirtualComponent> removed = new ArrayList<IVirtualComponent>();
ArrayList<IVirtualComponent> changed = new ArrayList<IVirtualComponent>();
- Iterator j = oldComponentToRuntimePath.keySet().iterator();
+ Iterator<IVirtualComponent> j = oldComponentToRuntimePath.keySet().iterator();
Object key, val;
while (j.hasNext()) {
key = j.next();
@@ -785,7 +679,7 @@
while (j.hasNext()) {
key = j.next();
if (!oldComponentToRuntimePath.containsKey(key))
- added.add(key);
+ added.add((IVirtualComponent)key);
}
NullProgressMonitor monitor = new NullProgressMonitor();
@@ -798,18 +692,12 @@
// Now update the variables
oldComponentToRuntimePath.clear();
- ArrayList keys = new ArrayList();
+ ArrayList<IVirtualComponent> keys = new ArrayList<IVirtualComponent>();
keys.addAll(objectToRuntimePath.keySet());
- Iterator i = keys.iterator();
+ Iterator<IVirtualComponent> i = keys.iterator();
while(i.hasNext()) {
- Object component = i.next();
- IVirtualComponent vc = component instanceof IVirtualComponent ?
(IVirtualComponent)component : null;
- String path = objectToRuntimePath.get(component);
- if( component instanceof IProject ) {
- objectToRuntimePath.remove(component);
- vc = ComponentCore.createComponent((IProject)component);
- objectToRuntimePath.put(vc, path);
- }
+ IVirtualComponent vc = i.next();
+ String path = objectToRuntimePath.get(vc);
oldComponentToRuntimePath.put(vc, path);
}
return subResult;
@@ -817,9 +705,9 @@
// Subclass can override if it has a good way to handle changed elements
protected void handleDeltas(ArrayList<IVirtualComponent> removed,
- ArrayList<IVirtualComponent> changed, ArrayList<Object> added) {
+ ArrayList<IVirtualComponent> changed, ArrayList<IVirtualComponent> added)
{
ArrayList<IVirtualComponent> removed2 = new
ArrayList<IVirtualComponent>();
- ArrayList<Object> added2 = new ArrayList<Object>();
+ ArrayList<IVirtualComponent> added2 = new ArrayList<IVirtualComponent>();
removed2.addAll(removed);
removed2.addAll(changed);
added2.addAll(added);
@@ -852,11 +740,11 @@
IDataModelProvider provider = getRemoveReferenceDataModelProvider(component);
IDataModel model = DataModelFactory.createDataModel(provider);
model.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT,
rootComponent);
- List modHandlesList = (List)
model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+ List<IVirtualComponent> modHandlesList = (List<IVirtualComponent>)
model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
modHandlesList.add(component);
model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST,
modHandlesList);
model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH,
path);
- Map uriMap = new HashMap();
+ Map<IVirtualComponent, String> uriMap = new HashMap<IVirtualComponent,
String>();
uriMap.put(component, archiveName);
model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP,
uriMap);
return model.getDefaultOperation();
@@ -880,24 +768,17 @@
}
}
- protected void handleAdded(ArrayList<Object> added) {
- final ArrayList<IProject> projects = new ArrayList<IProject>();
+ protected void handleAdded(ArrayList<IVirtualComponent> added) {
final ArrayList<IVirtualComponent> components = new
ArrayList<IVirtualComponent>();
- Iterator i = added.iterator();
- Object o;
+ Iterator<IVirtualComponent> i = added.iterator();
+ IVirtualComponent o;
while(i.hasNext()) {
o = i.next();
- if( o instanceof IProject && !ModuleCoreNature.isFlexibleProject((IProject)o))
- projects.add((IProject)o);
- else if( o instanceof IProject )
- components.add(ComponentCore.createComponent(((IProject)o)));
- else if( o instanceof IVirtualComponent)
- components.add((IVirtualComponent)o);
+ components.add((IVirtualComponent)o);
}
IWorkspaceRunnable runnable = new IWorkspaceRunnable(){
public void run(IProgressMonitor monitor) throws CoreException{
- addProjects(projects);
addComponents(components);
}
};
@@ -907,49 +788,7 @@
J2EEUIPlugin.logError(e);
}
}
-
- protected void addProjects(ArrayList<IProject> projects) throws CoreException {
- // These projects need to be converted to utility projects first
- Iterator<IProject> i = projects.iterator();
- IProject proj;
- Set moduleProjects = new HashSet();
- String path, archiveName;
- while(i.hasNext()) {
- proj = i.next();
- path = new Path(objectToRuntimePath.get(proj)).removeLastSegments(1).toString();
- archiveName = new Path(objectToRuntimePath.get(proj)).lastSegment();
- try {
- moduleProjects.add(proj);
- IDataModel migrationdm = DataModelFactory.createDataModel(new
JavaProjectMigrationDataModelProvider());
- migrationdm.setProperty(IJavaProjectMigrationDataModelProperties.PROJECT_NAME,
proj.getName());
- migrationdm.getDefaultOperation().execute(new NullProgressMonitor(), null);
-
-
- IDataModel refdm = DataModelFactory.createDataModel(new
CreateReferenceComponentsDataModelProvider());
- List targetCompList = (List)
refdm.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
-
- IVirtualComponent targetcomponent = ComponentCore.createComponent(proj);
- targetCompList.add(targetcomponent);
-
- refdm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT,
rootComponent);
- refdm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST,
targetCompList);
- refdm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH,
path);
-
- Map uriMap = new HashMap();
- uriMap.put(targetcomponent, archiveName);
- refdm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP,
uriMap);
-
- refdm.getDefaultOperation().execute(new NullProgressMonitor(), null);
- } catch (ExecutionException e) {
- J2EEUIPlugin.logError(e);
- }
- }
- postAddProjects(moduleProjects);
- }
- protected void postAddProjects(Set moduleProjects) throws CoreException {
- }
-
protected void addComponents(ArrayList<IVirtualComponent> components) throws
CoreException {
Iterator<IVirtualComponent> i = components.iterator();
while(i.hasNext()) {
@@ -973,7 +812,7 @@
dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST,
Arrays.asList(component));
//[Bug 238264] the uri map needs to be manually set correctly
- Map uriMap = new HashMap();
+ Map<IVirtualComponent, String> uriMap = new HashMap<IVirtualComponent,
String>();
uriMap.put(component, archiveName);
dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP,
uriMap);
dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH,
path);
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ComponentDependencyContentProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ComponentDependencyContentProvider.java 2009-07-18
22:03:00 UTC (rev 16659)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ComponentDependencyContentProvider.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -11,7 +11,6 @@
*******************************************************************************/
package org.jboss.ide.eclipse.as.wtp.override.ui.propertypage;
-import java.io.File;
import java.util.HashMap;
import org.eclipse.core.resources.IProject;
@@ -39,13 +38,13 @@
final static String PATH_SEPARATOR = String.valueOf(IPath.SEPARATOR);
- private HashMap<Object, String> runtimePaths;
+ private HashMap<IVirtualComponent, String> runtimePaths;
public ComponentDependencyContentProvider() {
super();
}
- public void setRuntimePaths(HashMap<Object, String> paths) {
+ public void setRuntimePaths(HashMap<IVirtualComponent, String> paths) {
this.runtimePaths = paths;
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/DependencyPageExtensionManager.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/DependencyPageExtensionManager.java 2009-07-18
22:03:00 UTC (rev 16659)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/DependencyPageExtensionManager.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -1,5 +1,6 @@
package org.jboss.ide.eclipse.as.wtp.override.ui.propertypage;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -7,7 +8,9 @@
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
import org.jboss.ide.eclipse.as.wtp.override.ui.WTPOveridePlugin;
public class DependencyPageExtensionManager {
@@ -47,4 +50,48 @@
providers = temp;
}
+ public WizardFragment loadReferenceWizardFragment(String id) {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+ WTPOveridePlugin.PLUGIN_ID, "referenceWizardFragment"); //$NON-NLS-1$
+ for( int i = 0; i < cf.length; i++ ) {
+ if( cf[i].getAttribute("id").equals(id))
+ try {
+ return (WizardFragment)cf[i].createExecutableExtension("class");
+ } catch( CoreException ce) {}
+ }
+ return null;
+ }
+
+ public ReferenceExtension[] getReferenceExtensions() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+ WTPOveridePlugin.PLUGIN_ID, "referenceWizardFragment"); //$NON-NLS-1$
+ ArrayList<ReferenceExtension> list = new ArrayList<ReferenceExtension>();
+ for( int i = 0; i < cf.length; i++ ) {
+ list.add(new ReferenceExtension(cf[i]));
+ }
+ return (ReferenceExtension[]) list
+ .toArray(new ReferenceExtension[list.size()]);
+ }
+
+ public class ReferenceExtension {
+ private String id, name, imageLoc;
+ private Image image;
+ public ReferenceExtension(IConfigurationElement element) {
+ this.id = element.getAttribute("id");
+ this.name = element.getAttribute("name");
+ this.imageLoc = element.getAttribute("icon");
+ }
+ public String getId() { return this.id;}
+ public String getName() { return this.name; }
+ public Image getImage() {
+ return null;
+ }
+ public void dispose() {
+ if( image != null ) {
+ image.dispose();
+ }
+ }
+ }
}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/JarReferenceWizardFragment.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/JarReferenceWizardFragment.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/JarReferenceWizardFragment.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -0,0 +1,161 @@
+package org.jboss.ide.eclipse.as.wtp.override.ui.propertypage;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jst.j2ee.project.facet.IJavaProjectMigrationDataModelProperties;
+import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationDataModelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.server.ui.wizard.IWizardHandle;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
+import org.jboss.ide.eclipse.as.wtp.override.core.vcf.ComponentUtils;
+
+public class JarReferenceWizardFragment extends WizardFragment {
+ private LabelProvider labelProvider = null;
+ private ITreeContentProvider contentProvider = null;
+ private TreeViewer viewer;
+ private Button browse;
+ private IPath[] paths;
+ private IWizardHandle handle;
+ private IPath[] selected = new IPath[]{};
+ public boolean hasComposite() {
+ return true;
+ }
+
+ public Composite createComposite(Composite parent, IWizardHandle handle) {
+ this.handle = handle;
+ handle.setTitle("Add a Jar Reference");
+ handle.setDescription("Here you can reference a workspace Jar\n"
+ + "This is not a suggested use-case, but is here for backwards
compatability.");
+
+ Composite c = new Composite(parent, SWT.NONE);
+ c.setLayout(new FormLayout());
+ viewer = new TreeViewer(c, SWT.SINGLE | SWT.BORDER);
+ viewer.setContentProvider(getContentProvider());
+ viewer.setLabelProvider(getLabelProvider());
+ viewer.setInput(ResourcesPlugin.getWorkspace());
+
+ browse = new Button(c, SWT.NONE);
+ browse.setText("Browse...");
+ FormData fd = new FormData();
+ fd.left = new FormAttachment(0, 5);
+ fd.bottom = new FormAttachment(100, -5);
+ browse.setLayoutData(fd);
+
+ fd = new FormData();
+ fd.left = new FormAttachment(0, 5);
+ fd.top = new FormAttachment(0, 5);
+ fd.right = new FormAttachment(100, -5);
+ fd.bottom = new FormAttachment(browse, -5);
+ viewer.getTree().setLayoutData(fd);
+
+ browse.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ buttonPressed();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ });
+ return c;
+ }
+
+ private void buttonPressed() {
+ IProject project = (IProject)getTaskModel().getObject(NewReferenceWizard.PROJECT);
+ selected = BuildPathDialogAccess.chooseJAREntries(
+ browse.getShell(),
+ project.getLocation(), new IPath[0]);
+ viewer.refresh();
+ }
+
+ public void performFinish(IProgressMonitor monitor) throws CoreException {
+ IVirtualComponent rootComponent =
(IVirtualComponent)getTaskModel().getObject(NewReferenceWizard.ROOT_COMPONENT);
+ if (selected != null && selected.length > 0) {
+ ArrayList<IVirtualComponent> compList = new
ArrayList<IVirtualComponent>();
+ ArrayList<String> paths = new ArrayList<String>();
+ for (int i = 0; i < selected.length; i++) {
+ // IPath fullPath = project.getFile(selected[i]).getFullPath();
+ String type = VirtualArchiveComponent.LIBARCHIVETYPE
+ + IPath.SEPARATOR;
+ IVirtualComponent archive = ComponentCore
+ .createArchiveComponent(rootComponent.getProject(),
+ type + selected[i].makeRelative().toString());
+ compList.add(archive);
+ paths.add(selected[i].lastSegment());
+ }
+ IVirtualComponent[] components = (IVirtualComponent[]) compList.toArray(new
IVirtualComponent[compList.size()]);
+ String[] paths2 = (String[]) paths.toArray(new String[paths.size()]);
+ getTaskModel().putObject(NewReferenceWizard.COMPONENT, components);
+ getTaskModel().putObject(NewReferenceWizard.COMPONENT_PATH, paths2);
+ }
+ }
+
+ protected LabelProvider getLabelProvider() {
+ if (labelProvider == null) {
+ labelProvider = new LabelProvider() {
+ public Image getImage(Object element) {
+ return null;
+ }
+
+ public String getText(Object element) {
+ return element == null ? "" : element.toString();//$NON-NLS-1$
+ }
+ };
+ }
+ return labelProvider;
+ }
+
+ protected ITreeContentProvider getContentProvider() {
+ if (contentProvider == null) {
+ contentProvider = new ITreeContentProvider() {
+ public Object[] getElements(Object inputElement) {
+ return selected == null ? new Object[]{} : selected;
+ }
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+ public void dispose() {
+ }
+ public boolean hasChildren(Object element) {
+ return false;
+ }
+ public Object getParent(Object element) {
+ return null;
+ }
+ public Object[] getChildren(Object parentElement) {
+ return null;
+ }
+ };
+ }
+ return contentProvider;
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceRootWizardFragment.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceRootWizardFragment.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceRootWizardFragment.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -0,0 +1,138 @@
+package org.jboss.ide.eclipse.as.wtp.override.ui.propertypage;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.server.ui.wizard.IWizardHandle;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
+import
org.jboss.ide.eclipse.as.wtp.override.ui.propertypage.DependencyPageExtensionManager.ReferenceExtension;
+
+public class NewReferenceRootWizardFragment extends WizardFragment {
+ protected Map<String, WizardFragment> fragmentMap =
+ new HashMap<String, WizardFragment>();
+ private IWizardHandle wizard;
+ private TreeViewer viewer;
+ public boolean hasComposite() {
+ return true;
+ }
+
+ public Composite createComposite(Composite parent, IWizardHandle wizard) {
+ this.wizard = wizard;
+ wizard.setTitle("Select a reference type");
+ wizard.setDescription("Here you can select one of many types of references to
add");
+ Composite c = new Composite(parent, SWT.NONE);
+ c.setLayout(new FillLayout());
+ viewer = new TreeViewer(c, SWT.SINGLE | SWT.BORDER);
+ viewer.setLabelProvider(getLabelProvider());
+ viewer.setContentProvider(getContentProvider());
+ viewer.setInput(ResourcesPlugin.getWorkspace());
+ viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ viewerSelectionChanged();
+ }
+ });
+ return c;
+ }
+
+ protected void viewerSelectionChanged() {
+ wizard.update();
+ }
+
+ protected WizardFragment getWizardFragment(String extensionPointID) {
+ try {
+ WizardFragment fragment = fragmentMap.get(extensionPointID);
+ if (fragment != null)
+ return fragment;
+ } catch (Exception e) {
+ // ignore
+ }
+
+ WizardFragment fragment =
DependencyPageExtensionManager.getManager().loadReferenceWizardFragment(extensionPointID);
+ if (fragment != null)
+ fragmentMap.put(extensionPointID, fragment);
+ return fragment;
+ }
+
+ public List getChildFragments() {
+ List<WizardFragment> listImpl = new ArrayList<WizardFragment>();
+ createChildFragments(listImpl);
+ return listImpl;
+ }
+
+ protected void createChildFragments(List<WizardFragment> list) {
+ // Instantiate and add the fragment for the current ID
+ if( viewer != null ) {
+ IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+ ReferenceExtension selected = (ReferenceExtension)sel.getFirstElement();
+ if( selected != null ) {
+ WizardFragment child = getWizardFragment(selected.getId());
+ if( child != null )
+ list.add(child);
+ }
+ }
+ }
+
+ public boolean isComplete() {
+ return true;
+ }
+
+
+ private LabelProvider labelProvider = null;
+ private ITreeContentProvider contentProvider = null;
+ protected LabelProvider getLabelProvider() {
+ if( labelProvider == null ) {
+ labelProvider = new LabelProvider() {
+ public Image getImage(Object element) {
+ return null;
+ }
+ public String getText(Object element) {
+ if( element instanceof ReferenceExtension)
+ return ((ReferenceExtension)element).getName();
+ return element == null ? "" : element.toString();//$NON-NLS-1$
+ }
+ };
+ }
+ return labelProvider;
+ }
+
+ private ReferenceExtension[] extensions = null;
+ protected ITreeContentProvider getContentProvider() {
+ if( contentProvider == null ) {
+ contentProvider = new ITreeContentProvider() {
+ public Object[] getElements(Object inputElement) {
+ if( extensions == null )
+ extensions = DependencyPageExtensionManager.getManager().getReferenceExtensions();
+ return extensions;
+ }
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+ public void dispose() {
+ }
+ public boolean hasChildren(Object element) {
+ return false;
+ }
+ public Object getParent(Object element) {
+ return null;
+ }
+ public Object[] getChildren(Object parentElement) {
+ return null;
+ }
+ };
+ }
+ return contentProvider;
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceWizard.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceWizard.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/NewReferenceWizard.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -0,0 +1,28 @@
+package org.jboss.ide.eclipse.as.wtp.override.ui.propertypage;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.wst.server.ui.internal.wizard.TaskWizard;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
+
+public class NewReferenceWizard extends TaskWizard {
+
+ public static final String COMPONENT = "dependency.component";
+ public static final String COMPONENT_PATH = "dependency.component.path";
+ public static final String PROJECT = "root.project";
+ public static final String ROOT_COMPONENT = "root.component";
+
+ public NewReferenceWizard() {
+ super("New Reference Wizard", new WizardFragment() {
+ protected void createChildFragments(List<WizardFragment> list) {
+ list.add(new NewReferenceRootWizardFragment());
+ }
+ });
+ }
+
+ public void init(IWorkbench newWorkbench, IStructuredSelection newSelection) {
+ // do nothing
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ProjectReferenceWizardFragment.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ProjectReferenceWizardFragment.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/ProjectReferenceWizardFragment.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -0,0 +1,142 @@
+package org.jboss.ide.eclipse.as.wtp.override.ui.propertypage;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jst.j2ee.project.facet.IJavaProjectMigrationDataModelProperties;
+import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationDataModelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.server.ui.wizard.IWizardHandle;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
+import org.jboss.ide.eclipse.as.wtp.override.core.vcf.ComponentUtils;
+
+public class ProjectReferenceWizardFragment extends WizardFragment {
+ private LabelProvider labelProvider = null;
+ private ITreeContentProvider contentProvider = null;
+ private TreeViewer viewer;
+ private IProject selected;
+
+ public boolean hasComposite() {
+ return true;
+ }
+
+ public Composite createComposite(Composite parent, IWizardHandle handle) {
+ handle.setTitle("Add a Project Reference");
+ handle.setDescription("Here you can make a project into a reference.\n" +
+ "If the project is not already a flexible project, it will be converted into
one.");
+
+ Composite c = new Composite(parent, SWT.NONE);
+ c.setLayout(new FillLayout());
+ viewer = new TreeViewer(c, SWT.SINGLE | SWT.BORDER);
+ viewer.setContentProvider(getContentProvider());
+ viewer.setLabelProvider(getLabelProvider());
+ viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ selChanged();
+ }
+ });
+ viewer.setInput(ResourcesPlugin.getWorkspace());
+ return c;
+ }
+
+ private void selChanged() {
+ if( viewer != null ) {
+ IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
+ if( sel != null )
+ selected = (IProject)sel.getFirstElement();
+ }
+ }
+
+ public void performFinish(IProgressMonitor monitor) throws CoreException {
+ if( !ModuleCoreNature.isFlexibleProject(selected)) {
+ try {
+ IDataModel migrationdm = DataModelFactory.createDataModel(new
JavaProjectMigrationDataModelProvider());
+ migrationdm.setProperty(IJavaProjectMigrationDataModelProperties.PROJECT_NAME,
selected.getName());
+ migrationdm.getDefaultOperation().execute(new NullProgressMonitor(), null);
+ } catch( ExecutionException ee) {
+ // TODO something
+ }
+ }
+ IVirtualComponent comp = ComponentCore.createComponent(selected);
+ String path = selected.getName();
+ String extension = ComponentUtils.getDefaultProjectExtension(comp);
+ path += extension;
+
+ getTaskModel().putObject(NewReferenceWizard.COMPONENT, comp);
+ getTaskModel().putObject(NewReferenceWizard.COMPONENT_PATH, path);
+ }
+
+
+ protected LabelProvider getLabelProvider() {
+ if( labelProvider == null ) {
+ labelProvider = new LabelProvider() {
+ public Image getImage(Object element) {
+ return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_PROJECT);
+ }
+ public String getText(Object element) {
+ if( element instanceof IProject )
+ return ((IProject)element).getName();
+ return element == null ? "" : element.toString();//$NON-NLS-1$
+ }
+ };
+ }
+ return labelProvider;
+ }
+
+ protected ITreeContentProvider getContentProvider() {
+ if( contentProvider == null ) {
+ contentProvider = new ITreeContentProvider() {
+ public Object[] getElements(Object inputElement) {
+ IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+ ArrayList<IProject> list = new
ArrayList<IProject>(Arrays.asList(projects));
+ Iterator<IProject> i = list.iterator();
+ IProject p;
+ while(i.hasNext()) {
+ p = i.next();
+ if( !p.isOpen())
+ i.remove();
+ }
+ return (IProject[]) list.toArray(new IProject[list.size()]);
+ }
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+ public void dispose() {
+ }
+ public boolean hasChildren(Object element) {
+ return false;
+ }
+ public Object getParent(Object element) {
+ return null;
+ }
+ public Object[] getChildren(Object parentElement) {
+ return null;
+ }
+ };
+ }
+ return contentProvider;
+ }
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/impl/EarModuleDependenciesPropertyPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/impl/EarModuleDependenciesPropertyPage.java 2009-07-18
22:03:00 UTC (rev 16659)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/propertypage/impl/EarModuleDependenciesPropertyPage.java 2009-07-19
01:55:04 UTC (rev 16660)
@@ -188,9 +188,9 @@
return new RemoveComponentFromEnterpriseApplicationDataModelProvider();
}
- protected void postAddProjects(Set moduleProjects) throws CoreException {
- EarFacetRuntimeHandler.updateModuleProjectRuntime(rootComponent.getProject(),
moduleProjects, new NullProgressMonitor());
- }
+// protected void postAddProjects(Set moduleProjects) throws CoreException {
+// EarFacetRuntimeHandler.updateModuleProjectRuntime(rootComponent.getProject(),
moduleProjects, new NullProgressMonitor());
+// }
protected IDataModelProvider getAddReferenceDataModelProvider(IVirtualComponent
component) {
return new AddComponentToEnterpriseApplicationDataModelProvider();