Author: rob.stryker(a)jboss.com
Date: 2009-09-28 19:49:44 -0400 (Mon, 28 Sep 2009)
New Revision: 17784
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/IReferenceEditor.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/AddModuleDependenciesPropertiesPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/DependencyPageExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/ExportedClasspathFoldersReferenceWizardFragment.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/NewReferenceWizard.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/OutputFolderReferenceWizardFragment.java
Log:
JBIDE-4957 - adding edit button to new reference wizard
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/AddModuleDependenciesPropertiesPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/AddModuleDependenciesPropertiesPage.java 2009-09-28
20:05:02 UTC (rev 17783)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/AddModuleDependenciesPropertiesPage.java 2009-09-28
23:49:44 UTC (rev 17784)
@@ -97,7 +97,7 @@
protected Text componentNameText;
protected Label availableModules;
protected TableViewer availableComponentsViewer;
- protected Button addMappingButton, addReferenceButton, removeButton;
+ protected Button addMappingButton, addReferenceButton, editReferenceButton,
removeButton;
protected Composite buttonColumn;
protected static final IStatus OK_STATUS = IDataModelProvider.OK_STATUS;
protected Listener tableListener;
@@ -191,6 +191,7 @@
protected void createPushButtons() {
addMappingButton = createPushButton("Add Folder...");
addReferenceButton = createPushButton("Add Reference...");
+ editReferenceButton = createPushButton("Edit Reference...");
removeButton = createPushButton("Remove selected");
}
@@ -424,6 +425,8 @@
handleAddMappingButton();
else if( event.widget == addReferenceButton)
handleAddReferenceButton();
+ else if( event.widget == editReferenceButton )
+ handleEditReferenceButton();
else if( event.widget == removeButton )
handleRemoveSelectedButton();
}
@@ -442,13 +445,35 @@
}
protected void handleAddReferenceButton() {
+ showReferenceWizard(false);
+ }
+
+ protected void handleEditReferenceButton() {
+ showReferenceWizard(true);
+ }
+
+ protected void showReferenceWizard(boolean editing) {
+
NewReferenceWizard wizard = new NewReferenceWizard();
// fill the task model
wizard.getTaskModel().putObject(NewReferenceWizard.PROJECT, project);
wizard.getTaskModel().putObject(NewReferenceWizard.ROOT_COMPONENT, rootComponent);
+
+ IVirtualComponent selected = null;
+ if( editing ) {
+ Object o =
((IStructuredSelection)availableComponentsViewer.getSelection()).getFirstElement();
+ if( o instanceof IVirtualComponent ) {
+ selected = (IVirtualComponent)o;
+ wizard.getTaskModel().putObject(NewReferenceWizard.COMPONENT, selected);
+ wizard.getTaskModel().putObject(NewReferenceWizard.COMPONENT_PATH,
objectToRuntimePath.get(selected));
+ }
+ }
WizardDialog wd = new WizardDialog(addReferenceButton.getShell(), wizard);
if( wd.open() != Window.CANCEL) {
+ if( editing && selected != null) {
+ objectToRuntimePath.remove(selected); // remove old
+ }
Object c1 = wizard.getTaskModel().getObject(NewReferenceWizard.COMPONENT);
Object p1 = wizard.getTaskModel().getObject(NewReferenceWizard.COMPONENT_PATH);
IVirtualComponent[] compArr = c1 instanceof IVirtualComponent ?
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/DependencyPageExtensionManager.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/DependencyPageExtensionManager.java 2009-09-28
20:05:02 UTC (rev 17783)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/DependencyPageExtensionManager.java 2009-09-28
23:49:44 UTC (rev 17784)
@@ -52,6 +52,19 @@
providers = temp;
}
+ public WizardFragment[] loadAllReferenceWizardFragments() {
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] cf = registry.getConfigurationElementsFor(
+ WTPOveridePlugin.PLUGIN_ID, "referenceWizardFragment"); //$NON-NLS-1$
+ ArrayList<WizardFragment> list = new ArrayList<WizardFragment>();
+ for( int i = 0; i < cf.length; i++ ) {
+ try {
+ list.add((WizardFragment)cf[i].createExecutableExtension("class"));
+ } catch( CoreException ce) {}
+ }
+ return (WizardFragment[]) list.toArray(new WizardFragment[list.size()]);
+ }
+
public WizardFragment loadReferenceWizardFragment(String id) {
IExtensionRegistry registry = Platform.getExtensionRegistry();
IConfigurationElement[] cf = registry.getConfigurationElementsFor(
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/ExportedClasspathFoldersReferenceWizardFragment.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/ExportedClasspathFoldersReferenceWizardFragment.java 2009-09-28
20:05:02 UTC (rev 17783)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/ExportedClasspathFoldersReferenceWizardFragment.java 2009-09-28
23:49:44 UTC (rev 17784)
@@ -43,8 +43,8 @@
import org.eclipse.wst.server.ui.wizard.WizardFragment;
import org.jboss.ide.eclipse.as.wtp.core.vcf.ExportedClasspathFoldersVirtualComponent;
-public class ExportedClasspathFoldersReferenceWizardFragment extends
- WizardFragment {
+public class ExportedClasspathFoldersReferenceWizardFragment
+ extends WizardFragment implements IReferenceEditor {
protected TreeViewer viewer;
protected IPath[] paths;
@@ -62,7 +62,6 @@
public Composite createComposite(Composite parent, IWizardHandle handle) {
this.handle = handle;
- int x = 1;
handle.setTitle("Add exported folders from the build pathx");
handle.setDescription("This reference will allow you to add references to exported
classpaths from this project's build page. Please select all entries you wish to be
published.");
IVirtualComponent parentComp =
(IVirtualComponent)getTaskModel().getObject(NewReferenceWizard.ROOT_COMPONENT);
@@ -209,4 +208,10 @@
protected IPath getNewPath(IClasspathEntry cpe) {
return new Path("/");
}
+
+ public boolean canEdit(IVirtualComponent vc) {
+ if( vc instanceof ExportedClasspathFoldersVirtualComponent )
+ return true;
+ return false;
+ }
}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/IReferenceEditor.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/IReferenceEditor.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/IReferenceEditor.java 2009-09-28
23:49:44 UTC (rev 17784)
@@ -0,0 +1,7 @@
+package org.jboss.ide.eclipse.as.wtp.ui.propertypage;
+
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+
+public interface IReferenceEditor {
+ public boolean canEdit(IVirtualComponent vc);
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/NewReferenceWizard.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/NewReferenceWizard.java 2009-09-28
20:05:02 UTC (rev 17783)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/NewReferenceWizard.java 2009-09-28
23:49:44 UTC (rev 17784)
@@ -4,6 +4,7 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.server.ui.internal.wizard.TaskWizard;
import org.eclipse.wst.server.ui.wizard.WizardFragment;
@@ -15,13 +16,30 @@
public static final String ROOT_COMPONENT = "root.component";
public NewReferenceWizard() {
- super("New Reference Wizard", new WizardFragment() {
- protected void createChildFragments(List<WizardFragment> list) {
+ super("New Reference Wizard", new RootWizardFragment());
+ getRootFragment().setTaskModel(getTaskModel());
+ }
+
+ protected static class RootWizardFragment extends WizardFragment {
+ protected void createChildFragments(List<WizardFragment> list) {
+ IVirtualComponent component = (IVirtualComponent)getTaskModel().getObject(COMPONENT);
+ if( component == null )
list.add(new NewReferenceRootWizardFragment());
+ else {
+ WizardFragment[] frags =
DependencyPageExtensionManager.getManager().loadAllReferenceWizardFragments();
+ for( int i = 0; i < frags.length; i++ ) {
+ if( frags[i] instanceof IReferenceEditor ) {
+ if( ((IReferenceEditor)frags[i]).canEdit(component)) {
+ // accept first one
+ list.add(frags[i]);
+ return;
+ }
+ }
+ }
}
- });
+ }
}
-
+
public void init(IWorkbench newWorkbench, IStructuredSelection newSelection) {
// do nothing
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/OutputFolderReferenceWizardFragment.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/OutputFolderReferenceWizardFragment.java 2009-09-28
20:05:02 UTC (rev 17783)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage/OutputFolderReferenceWizardFragment.java 2009-09-28
23:49:44 UTC (rev 17784)
@@ -25,7 +25,7 @@
import org.eclipse.wst.server.ui.wizard.WizardFragment;
import org.jboss.ide.eclipse.as.wtp.core.vcf.OutputFoldersVirtualComponent;
-public class OutputFolderReferenceWizardFragment extends WizardFragment {
+public class OutputFolderReferenceWizardFragment extends WizardFragment implements
IReferenceEditor {
protected TreeViewer viewer;
protected IPath[] paths;
@@ -59,11 +59,14 @@
viewer.getTree().setLayoutData(fd);
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
- IVirtualComponent parentComp =
(IVirtualComponent)getTaskModel().getObject(NewReferenceWizard.ROOT_COMPONENT);
IStructuredSelection sel = (IStructuredSelection)viewer.getSelection();
selected = (IProject)sel.getFirstElement();
}
});
+
+ IVirtualComponent vc =
(IVirtualComponent)getTaskModel().getObject(NewReferenceWizard.COMPONENT);
+ if( vc != null )
+ selected = vc.getProject();
return c;
}
@@ -104,6 +107,14 @@
selected = selected == null ? parentComp.getProject() : selected;
OutputFoldersVirtualComponent vc = new OutputFoldersVirtualComponent(selected,
parentComp);
getTaskModel().putObject(NewReferenceWizard.COMPONENT, vc);
- getTaskModel().putObject(NewReferenceWizard.COMPONENT_PATH, "/");
+ String s = (String)getTaskModel().getObject(NewReferenceWizard.COMPONENT_PATH);
+ if( s == null )
+ getTaskModel().putObject(NewReferenceWizard.COMPONENT_PATH, "/");
}
+
+ public boolean canEdit(IVirtualComponent vc) {
+ if( vc instanceof OutputFoldersVirtualComponent )
+ return true;
+ return false;
+ }
}