[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