[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers ...
Robert Stryker
rob.stryker at jboss.com
Mon Apr 16 13:56:54 EDT 2007
User: rawb
Date: 07/04/16 13:56:54
Added: core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers
PackagesContentProvider.java
PackagesLabelProvider.java
Log:
Complete rewrite of the the two plugins leading to a cleaner, leaner project.
Revision Changes Path
1.10 +32 -208 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: PackagesContentProvider.java
diff -N PackagesContentProvider.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ PackagesContentProvider.java 16 Apr 2007 17:56:54 -0000 1.10
@@ -0,0 +1,69 @@
+package org.jboss.ide.eclipse.packages.ui.providers;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
+import org.jboss.ide.eclipse.packages.core.model.internal.PackageModelNode;
+import org.jboss.ide.eclipse.packages.core.model.internal.PackagesModel;
+import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
+import org.jboss.ide.eclipse.packages.ui.PrefsInitializer;
+
+public class PackagesContentProvider implements ITreeContentProvider {
+
+ public PackagesContentProvider () {
+ }
+
+ public static class WrappedProject {
+ private IProject project;
+ public WrappedProject (IProject proj) { project = proj; }
+ public IProject getProject() { return project; }
+ }
+
+ private boolean showProjectRoot () {
+ return PackagesUIPlugin.getDefault().getPluginPreferences().getBoolean(PrefsInitializer.PREF_SHOW_PROJECT_ROOT);
+ }
+
+ private Object[] wrapProjects(IProject[] project) {
+ Object[] ret = new Object[project.length];
+ for( int i = 0; i < project.length; i++ )
+ ret[i] = new WrappedProject(project[i]);
+ return ret;
+ }
+ public Object[] getChildren(Object parentElement) {
+ if( parentElement instanceof PackageModelNode && showProjectRoot())
+ return wrapProjects(new IProject[] { ((PackageModelNode)parentElement).getProject()});
+
+ if( parentElement instanceof PackageModelNode)
+ return ((PackageModelNode)parentElement).getAllChildren();
+
+ if( parentElement instanceof PackagesModel ) {
+ // return all that's there
+ }
+ if( parentElement instanceof IProject ) {
+ return PackagesModel.instance().getProjectPackages((IProject)parentElement);
+ }
+ if( parentElement instanceof IPackageNode ) {
+ return ((IPackageNode)parentElement).getAllChildren();
+ }
+ return new Object[] {};
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return getChildren(element).length > 0;
+ }
+
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ public void dispose() {}
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+}
1.12 +59 -160 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: PackagesLabelProvider.java
diff -N PackagesLabelProvider.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ PackagesLabelProvider.java 16 Apr 2007 17:56:54 -0000 1.12
@@ -0,0 +1,132 @@
+package org.jboss.ide.eclipse.packages.ui.providers;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.jboss.ide.eclipse.packages.core.model.IPackage;
+import org.jboss.ide.eclipse.packages.core.model.IPackageFileSet;
+import org.jboss.ide.eclipse.packages.core.model.IPackageFolder;
+import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
+import org.jboss.ide.eclipse.packages.ui.PackagesSharedImages;
+import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
+import org.jboss.ide.eclipse.packages.ui.PrefsInitializer;
+
+public class PackagesLabelProvider implements ILabelProvider {
+
+
+ /*
+ * Important snippets to save
+ * image = PlatformUI.getWorkbench().getDecoratorManager().decorateImage(image, element);
+ * text = PlatformUI.getWorkbench().getDecoratorManager().decorateText(text, element);
+ */
+
+ public Image getImage(Object element) {
+ Image image = internalGetImage(element);
+
+ if (image != null) {
+ image = PlatformUI.getWorkbench().getDecoratorManager().decorateImage(image, element);
+ }
+
+ return image;
+ }
+
+ public String getText(Object element) {
+ String text = internalGetText(element);
+
+ if (text != null) {
+ text = PlatformUI.getWorkbench().getDecoratorManager().decorateText(text, element);
+ }
+ return text;
+ }
+
+ private Image internalGetImage(Object element) {
+ element = unwrapElement(element);
+ if( element instanceof IProject )
+ return PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ide.IDE.SharedImages.IMG_OBJ_PROJECT);
+ if( element instanceof IPackageNode ) {
+ IPackageNode node = (IPackageNode) element;
+ if (node != null) {
+ switch (node.getNodeType()) {
+ case IPackageNode.TYPE_PACKAGE: {
+ IPackage pkg = (IPackage) node;
+ if (!pkg.isExploded())
+ return PackagesSharedImages.getImage(PackagesSharedImages.IMG_PACKAGE);
+ else
+ return PackagesSharedImages.getImage(PackagesSharedImages.IMG_PACKAGE_EXPLODED);
+ }
+ case IPackageNode.TYPE_PACKAGE_FOLDER: return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
+ case IPackageNode.TYPE_PACKAGE_FILESET: {
+ return PackagesSharedImages.getImage(PackagesSharedImages.IMG_MULTIPLE_FILES);
+ }
+ }
+ }
+
+ }
+ return null;
+ }
+
+ private String internalGetText(Object element) {
+ element = unwrapElement(element);
+ if( element instanceof IProject)
+ return ((IProject)element).getName();
+ if( element instanceof IPackageNode ) {
+ switch (((IPackageNode)element).getNodeType()) {
+ case IPackageNode.TYPE_PACKAGE: return getPackageText((IPackage)element);
+ case IPackageNode.TYPE_PACKAGE_FOLDER: return getPackageFolderText((IPackageFolder)element);
+ case IPackageNode.TYPE_PACKAGE_FILESET: return getPackageFileSetText((IPackageFileSet)element);
+ }
+
+ }
+ return element.toString();
+ }
+
+
+ private String getPackageFolderText (IPackageFolder folder) {
+ return folder.getName();
+ }
+ private String getPackageText (IPackage pkg) {
+ String text = pkg.getName();
+ if (PackagesUIPlugin.getDefault().getPreferenceStore().getBoolean(
+ PrefsInitializer.PREF_SHOW_PACKAGE_OUTPUT_PATH)) {
+ text += " [" + pkg.getDestinationPath() + "]";
+ }
+ return text;
+ }
+
+ private String getPackageFileSetText (IPackageFileSet fileset) {
+ boolean showFullPath = PackagesUIPlugin.getDefault().getPreferenceStore().getBoolean(
+ PrefsInitializer.PREF_SHOW_FULL_FILESET_ROOT_DIR);
+ String text = "";
+ if (fileset.getIncludesPattern() != null)
+ text += fileset.getIncludesPattern() + ": ";
+
+ if (showFullPath) {
+ text += fileset.getSourcePath().toString();
+ } else {
+ text += fileset.getSourcePath().lastSegment();
+ }
+
+ return text;
+ }
+
+
+
+ protected Object unwrapElement(Object element) {
+ return element; // to be used if we wrap everything for preferences
+ }
+
+
+ public void addListener(ILabelProviderListener listener) {}
+
+ public void dispose() { }
+
+ public boolean isLabelProperty(Object element, String property) {
+ return true;
+ }
+
+ public void removeListener(ILabelProviderListener listener) { }
+
+}
More information about the jboss-cvs-commits
mailing list