[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards ...

Marshall Culpepper mculpepper at jboss.com
Wed Dec 20 14:56:42 EST 2006


  User: mculpepper
  Date: 06/12/20 14:56:42

  Modified:    core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards    
                        NewJARWizard.java AbstractPackageWizard.java
                        NewWARWizard.java FilesetWizard.java
  Log:
  got rid of the working copies idea, and eliminated the model bridge as it was making things too complicated. package nodes now keep references to their parents and children, (just like delegates). there shouldn't be any need for synch as addChild/removeChild take care of all the details there. the way to create a package node that isn't attached to the model yet is:
  
  pkg = PackagesCore.createDetachedPackage(project, true);
  pkg.setXXX..
  PackagesCore.attach(pkg, monitor);
  
  Revision  Changes    Path
  1.3       +9 -3      jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/NewJARWizard.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: NewJARWizard.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/NewJARWizard.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- NewJARWizard.java	20 Nov 2006 21:06:05 -0000	1.2
  +++ NewJARWizard.java	20 Dec 2006 19:56:42 -0000	1.3
  @@ -2,17 +2,21 @@
   
   import org.eclipse.jface.resource.ImageDescriptor;
   import org.eclipse.jface.wizard.WizardPage;
  -import org.jboss.ide.eclipse.packages.core.model.IPackageWorkingCopy;
  +import org.jboss.ide.eclipse.packages.core.Trace;
  +import org.jboss.ide.eclipse.packages.core.model.IPackage;
   import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
   import org.jboss.ide.eclipse.packages.core.model.types.JARPackageType;
   import org.jboss.ide.eclipse.packages.ui.PackagesUIMessages;
   import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
  +import org.jboss.ide.eclipse.packages.ui.wizards.pages.DefaultJARConfigWizardPage;
   
   public class NewJARWizard extends AbstractPackageWizard
   {
   	public WizardPage[] createWizardPages() {
   		
  -		return new WizardPage[0];
  +		return new WizardPage[] {
  +				new DefaultJARConfigWizardPage(this)
  +		};
   	}
   
   	public NewJARWizard ()
  @@ -20,7 +24,9 @@
   		setWindowTitle(PackagesUIMessages.NewJARWizard_windowTitle);
   	}
   	
  -	public boolean performFinish(IPackageWorkingCopy pkg) {
  +	public boolean performFinish(IPackage pkg) {
  +		Trace.trace(getClass(), "performing finish");
  +		
   		pkg.setPackageType(PackagesCore.getPackageType(JARPackageType.TYPE_ID));
   		return true;
   	}
  
  
  
  1.5       +42 -25    jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/AbstractPackageWizard.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AbstractPackageWizard.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/AbstractPackageWizard.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- AbstractPackageWizard.java	16 Nov 2006 20:56:57 -0000	1.4
  +++ AbstractPackageWizard.java	20 Dec 2006 19:56:42 -0000	1.5
  @@ -1,22 +1,27 @@
   package org.jboss.ide.eclipse.packages.ui.wizards;
   
  +import java.lang.reflect.InvocationTargetException;
  +
   import org.eclipse.core.resources.IContainer;
   import org.eclipse.core.resources.IProject;
  -import org.eclipse.core.runtime.IPath;
  +import org.eclipse.core.runtime.IProgressMonitor;
  +import org.eclipse.jface.operation.IRunnableWithProgress;
   import org.eclipse.jface.resource.ImageDescriptor;
   import org.eclipse.jface.viewers.IStructuredSelection;
  -import org.eclipse.jface.wizard.Wizard;
  +import org.eclipse.jface.wizard.IWizardPage;
   import org.eclipse.jface.wizard.WizardPage;
   import org.eclipse.ui.INewWizard;
   import org.eclipse.ui.IWorkbench;
   import org.jboss.ide.eclipse.core.util.ProjectUtil;
  +import org.jboss.ide.eclipse.packages.core.Trace;
   import org.jboss.ide.eclipse.packages.core.model.IPackage;
   import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
  -import org.jboss.ide.eclipse.packages.core.model.IPackageWorkingCopy;
   import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
   import org.jboss.ide.eclipse.packages.ui.wizards.pages.PackageInfoWizardPage;
  +import org.jboss.ide.eclipse.ui.wizards.WizardPageWithNotification;
  +import org.jboss.ide.eclipse.ui.wizards.WizardWithNotification;
   
  -public abstract class AbstractPackageWizard extends Wizard implements INewWizard
  +public abstract class AbstractPackageWizard extends WizardWithNotification implements INewWizard
   {
   	private PackageInfoWizardPage firstPage;
   	private WizardPage pages[];
  @@ -48,34 +53,34 @@
   	}
   	
   	public boolean performFinish() {
  -		Object destContainer = firstPage.getPackageDestination();
  -		
  -		boolean isTopLevel = (destContainer == null || (!(destContainer instanceof IPackageNode)));
  -		IPackage pkg = PackagesCore.createPackage(project, isTopLevel);
  -		IPackageWorkingCopy packageWC = pkg.createPackageWorkingCopy();
  +		IWizardPage currentPage = getContainer().getCurrentPage();
   		
  -		packageWC.setName(firstPage.getPackageName());
  -		packageWC.setExploded(firstPage.isPackageExploded());
  -		if (firstPage.isManifestEnabled())
  +		if (currentPage instanceof WizardPageWithNotification)
   		{
  -			packageWC.setManifest(firstPage.getManifestFile());
  +			((WizardPageWithNotification)currentPage).pageExited(WizardWithNotification.FINISH);
   		}
   		
  -		if (!destContainer.equals(project) && destContainer instanceof IContainer) {
  -			packageWC.setDestinationContainer((IContainer)destContainer);
  -		}
  -		else if (destContainer instanceof IPath)
  -		{
  -			packageWC.setDestinationFolder((IPath) destContainer);
  -		}
  +		final IPackage pkg = firstPage.getPackage();
  +		Object destination = firstPage.getPackageDestination();
   		
  -		boolean performed = performFinish(packageWC);
  +		boolean performed = performFinish(pkg);
   		
   		if (performed)
   		{
  -			pkg = packageWC.savePackage();
  -			if (destContainer instanceof IPackageNode) {
  -				IPackageNode node = (IPackageNode) destContainer;
  +			try {
  +				getContainer().run(false, false, new IRunnableWithProgress () {
  +					public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
  +						PackagesCore.attach(pkg, monitor);	
  +					}
  +				});
  +			} catch (InvocationTargetException e) {
  +				Trace.trace(getClass(), e);
  +			} catch (InterruptedException e) {
  +				Trace.trace(getClass(), e);
  +			}
  +			
  +			if (destination instanceof IPackageNode) {
  +				IPackageNode node = (IPackageNode) destination;
   				node.addChild(pkg);
   			}
   		}
  @@ -102,6 +107,8 @@
   		else {
   			selectedDestination = project;
   		}
  +		
  +		setNeedsProgressMonitor(true);
   	}
   	
   	public Object getSelectedDestination ()
  @@ -109,7 +116,7 @@
   		return selectedDestination;
   	}
   	
  -	public abstract boolean performFinish(IPackageWorkingCopy pkg);
  +	public abstract boolean performFinish(IPackage pkg);
   	public abstract WizardPage[] createWizardPages();
   	public abstract ImageDescriptor getImageDescriptor();
   	public abstract String getPackageExtension();
  @@ -117,4 +124,14 @@
   	public IProject getProject() {
   		return project;
   	}
  +	
  +	/**
  +	 * Returns the package created by this wizard.
  +	 * Note: This should only be called after the first page has been completed
  +	 * @return The package
  +	 */
  +	public IPackage getPackage ()
  +	{
  +		return firstPage.getPackage();
  +	}
   }
  
  
  
  1.2       +3 -3      jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/NewWARWizard.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: NewWARWizard.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/NewWARWizard.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- NewWARWizard.java	6 Nov 2006 21:36:50 -0000	1.1
  +++ NewWARWizard.java	20 Dec 2006 19:56:42 -0000	1.2
  @@ -2,7 +2,7 @@
   
   import org.eclipse.jface.resource.ImageDescriptor;
   import org.eclipse.jface.wizard.WizardPage;
  -import org.jboss.ide.eclipse.packages.core.model.IPackageWorkingCopy;
  +import org.jboss.ide.eclipse.packages.core.model.IPackage;
   import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
   import org.jboss.ide.eclipse.packages.ui.wizards.pages.WARInfoWizardPage;
   
  @@ -25,8 +25,8 @@
   		return new WizardPage[] { warInfoPage };
   	}
   
  -	public boolean performFinish(IPackageWorkingCopy pkg) {
  -		pkg.setPackageType("war");
  +	public boolean performFinish(IPackage pkg) {
  +		//pkg.setPackageType("war");
   		return true;
   	}
   	
  
  
  
  1.5       +24 -12    jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/FilesetWizard.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: FilesetWizard.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/wizards/FilesetWizard.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- FilesetWizard.java	6 Dec 2006 17:02:58 -0000	1.4
  +++ FilesetWizard.java	20 Dec 2006 19:56:42 -0000	1.5
  @@ -1,11 +1,15 @@
   package org.jboss.ide.eclipse.packages.ui.wizards;
   
  +import java.lang.reflect.InvocationTargetException;
  +
   import org.eclipse.core.resources.IContainer;
  +import org.eclipse.core.runtime.IProgressMonitor;
   import org.eclipse.core.runtime.Path;
  +import org.eclipse.jface.operation.IRunnableWithProgress;
   import org.eclipse.jface.wizard.Wizard;
  +import org.jboss.ide.eclipse.packages.core.Trace;
   import org.jboss.ide.eclipse.packages.core.model.IPackageFileSet;
  -import org.jboss.ide.eclipse.packages.core.model.IPackageFileSetWorkingCopy;
  -import org.jboss.ide.eclipse.packages.core.model.IPackageNodeBase;
  +import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
   import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
   import org.jboss.ide.eclipse.packages.ui.wizards.pages.FilesetInfoWizardPage;
   
  @@ -13,9 +17,9 @@
   
   	private FilesetInfoWizardPage page1;
   	private IPackageFileSet fileset;
  -	private IPackageNodeBase parentNode;
  +	private IPackageNode parentNode;
   	
  -	public FilesetWizard(IPackageFileSet fileset, IPackageNodeBase parentNode)
  +	public FilesetWizard(IPackageFileSet fileset, IPackageNode parentNode)
   	{
   		this.fileset = fileset;
   		this.parentNode = parentNode;
  @@ -25,21 +29,29 @@
   		boolean createFileset = this.fileset == null;
   		
   		if (createFileset)
  -			this.fileset = PackagesCore.createPackageFileSet(parentNode.getProject());
  -		
  -		IPackageFileSetWorkingCopy filesetWC = fileset.createFileSetWorkingCopy();
  -		
  -		fillFilesetFromPage(filesetWC);
  +			this.fileset = PackagesCore.createDetachedPackageFileSet(parentNode.getProject());
   
  -		filesetWC.save();
  +		fillFilesetFromPage(fileset);
   		
   		if (createFileset)
   			page1.getRootNode().addChild(this.fileset);
   		
  +		try {
  +			getContainer().run(false, false, new IRunnableWithProgress () {
  +				public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
  +					PackagesCore.attach(fileset, monitor);	
  +				}
  +			});
  +		} catch (InvocationTargetException e) {
  +			Trace.trace(getClass(), e);
  +		} catch (InterruptedException e) {
  +			Trace.trace(getClass(), e);
  +		}
  +		
   		return true;
   	}
   	
  -	private void fillFilesetFromPage (IPackageFileSetWorkingCopy fileset)
  +	private void fillFilesetFromPage (IPackageFileSet fileset)
   	{
   		if (page1.isSingleFile())
   		{
  
  
  



More information about the jboss-cvs-commits mailing list