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

Marshall Culpepper mculpepper at jboss.com
Sat Mar 3 19:41:20 EST 2007


  User: mculpepper
  Date: 07/03/03 19:41:20

  Modified:    core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers  
                        PackagesLabelProvider.java
                        PackagesContentProvider.java
  Log:
  the packages content provider now uses IAdaptable (which IPackageNode now implements) instead of NodeWtihProperties/IPackageNode directly. This will allow for more diverse models to be used w/ PackagesLabel/ContentProviders
  
  Revision  Changes    Path
  1.9       +32 -25    jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers/PackagesLabelProvider.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PackagesLabelProvider.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers/PackagesLabelProvider.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -b -r1.8 -r1.9
  --- PackagesLabelProvider.java	3 Mar 2007 01:28:46 -0000	1.8
  +++ PackagesLabelProvider.java	4 Mar 2007 00:41:20 -0000	1.9
  @@ -1,5 +1,6 @@
   package org.jboss.ide.eclipse.packages.ui.providers;
   
  +import org.eclipse.core.runtime.IAdaptable;
   import org.eclipse.jface.viewers.ILabelProvider;
   import org.eclipse.jface.viewers.ILabelProviderListener;
   import org.eclipse.swt.graphics.Image;
  @@ -12,7 +13,6 @@
   import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
   import org.jboss.ide.eclipse.packages.ui.PackagesUIMessages;
   import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
  -import org.jboss.ide.eclipse.packages.ui.properties.NodeWithProperties;
   import org.jboss.ide.eclipse.packages.ui.providers.PackagesContentProvider.FileSetProperty;
   
   public class PackagesLabelProvider implements ILabelProvider {
  @@ -43,9 +43,11 @@
   		{
   			return PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
   		}
  -		else if (element instanceof NodeWithProperties)
  +		else if (element instanceof IAdaptable)
  +		{
  +			IPackageNode node = (IPackageNode) ((IAdaptable)element).getAdapter(IPackageNode.class);
  +			if (node != null)
   		{
  -			IPackageNode node = ((NodeWithProperties) element).getNode();
   			switch (node.getNodeType())
   			{
   				case IPackageNode.TYPE_PACKAGE: {
  @@ -65,6 +67,7 @@
   				}
   			}
   		}
  +		}
   		else if (element instanceof FileSetProperty)
   		{
   			FileSetProperty prop = (FileSetProperty)element;
  @@ -99,9 +102,12 @@
   		{
   			return ((PackagesContentProvider.ProjectWrapper)element).project.getName();
   		}
  -		else if (element instanceof NodeWithProperties)
  +		else if (element instanceof IAdaptable)
  +		{
  +			IPackageNode node = (IPackageNode) ((IAdaptable)element).getAdapter(IPackageNode.class);
  +			
  +			if (node != null)
   		{
  -			IPackageNode node = ((NodeWithProperties) element).getNode();
   			switch (node.getNodeType())
   			{
   				case IPackageNode.TYPE_PACKAGE: return getPackageText((IPackage)node);
  @@ -109,6 +115,7 @@
   				case IPackageNode.TYPE_PACKAGE_FILESET: return getPackageFileSetText((IPackageFileSet)node);
   			}
   		}
  +		}
   		else if (element instanceof FileSetProperty)
   		{
   			return getFileSetPropertyText((FileSetProperty)element);
  
  
  
  1.7       +49 -31    jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers/PackagesContentProvider.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PackagesContentProvider.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers/PackagesContentProvider.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- PackagesContentProvider.java	3 Mar 2007 01:28:46 -0000	1.6
  +++ PackagesContentProvider.java	4 Mar 2007 00:41:20 -0000	1.7
  @@ -6,6 +6,7 @@
   import org.eclipse.core.resources.IContainer;
   import org.eclipse.core.resources.IProject;
   import org.eclipse.core.resources.IResource;
  +import org.eclipse.core.runtime.IAdaptable;
   import org.eclipse.jface.viewers.ITreeContentProvider;
   import org.eclipse.jface.viewers.Viewer;
   import org.jboss.ide.eclipse.packages.core.model.IPackage;
  @@ -20,10 +21,12 @@
   public class PackagesContentProvider implements ITreeContentProvider {
   	
   	private Hashtable filesetProperties;
  +	protected boolean adaptNodeProperties;
   	
  -	public PackagesContentProvider ()
  +	public PackagesContentProvider (boolean adaptNodeProperties)
   	{
   		filesetProperties = new Hashtable();
  +		this.adaptNodeProperties = adaptNodeProperties;
   	}
   	
   	private boolean showProjectRoot ()
  @@ -96,7 +99,9 @@
   		filesetProperties.put(fileset, props);
   	}
   	
  -	private NodeWithProperties[] wrapNodes (IPackageNode[] nodes)
  +	private Object[] wrapNodes (IPackageNode[] nodes)
  +	{
  +		if (adaptNodeProperties)
   	{
   		NodeWithProperties[] nodesWithProps = new NodeWithProperties[nodes.length];
   		for (int i = 0; i < nodes.length; i++)
  @@ -105,33 +110,42 @@
   		}
   		return nodesWithProps;
   	}
  +		else {
  +			return nodes;
  +		}
  +	}
   	
   	public Object[] getChildren(Object parentElement) {
   		if (parentElement instanceof ProjectWrapper)
   		{
   			return wrapNodes(PackagesCore.getProjectPackages(((ProjectWrapper)parentElement).project, null));
   		}
  -		else if (parentElement instanceof NodeWithProperties)
  +		else if (parentElement instanceof IAdaptable)
  +		{
  +			IPackageNode node = (IPackageNode) ((IAdaptable)parentElement).getAdapter(IPackageNode.class);
  +			if (node != null)
   		{
  -			IPackageNode node = ((NodeWithProperties)parentElement).getNode();
   			if (node.getNodeType() == IPackageNode.TYPE_PACKAGE_FILESET)
   			{
   				IPackageFileSet fileset = (IPackageFileSet) node;
   				ArrayList result = ((ArrayList)filesetProperties.get(fileset));
  -				return result == null ? new Object[]{} : result.toArray();
  +					return result == null ? new Object[0] : result.toArray();
   			}
   			else
   			{
   				return wrapNodes(node.getAllChildren());
   			}
   		}
  -		else return new Object[0];
  +		}
  +		return new Object[0];
   	}
   
   	public Object getParent(Object element) {
  -		if (element instanceof NodeWithProperties)
  +		if (element instanceof IAdaptable)
  +		{
  +			IPackageNode node = (IPackageNode) ((IAdaptable)element).getAdapter(IPackageNode.class);
  +			if (node != null)
   		{
  -			IPackageNode node = ((NodeWithProperties) element).getNode();
   			if (node.getNodeType() == IPackageNode.TYPE_PACKAGE)
   			{
   				if (((IPackage)node).isTopLevel() && showProjectRoot()) {
  @@ -140,6 +154,7 @@
   			}
   			return node.getParent();
   		}
  +		}
   		else if (element instanceof FileSetProperty)
   		{
   			return ((FileSetProperty)element).getFileSet();
  @@ -152,17 +167,20 @@
   		{
   			return true;
   		}
  -		else if (element instanceof NodeWithProperties)
  +		else if (element instanceof IAdaptable)
   		{
  -			NodeWithProperties node = (NodeWithProperties)element;
  +			IPackageNode node = (IPackageNode) ((IAdaptable)element).getAdapter(IPackageNode.class);
   			
  -			if (node.getNode().getNodeType() == IPackageNode.TYPE_PACKAGE_FILESET)
  +			if (node != null)
  +			{
  +				if (node.getNodeType() == IPackageNode.TYPE_PACKAGE_FILESET)
   			{
   				return true;
   			}
   			else
   			{
  -				return node.getNode().hasChildren();
  +					return node.hasChildren();
  +				}
   			}
   		}
   		return false;
  
  
  



More information about the jboss-cvs-commits mailing list