[jbosstools-commits] JBoss Tools SVN: r17784 - trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/propertypage.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon Sep 28 19:49:44 EDT 2009


Author: rob.stryker at 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;
+	}
 }



More information about the jbosstools-commits mailing list