[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
Mon Nov 6 16:36:52 EST 2006
User: mculpepper
Date: 06/11/06 16:36:52
Added: core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers
PackagesContentProvider.java
PackagesLabelProvider.java
Log:
initial commit of the new "packages" tooling ui plugin
Revision Changes Path
1.1 date: 2006/11/06 21:36:52; author: mculpepper; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers/PackagesContentProvider.java
Index: PackagesContentProvider.java
===================================================================
package org.jboss.ide.eclipse.packages.ui.providers;
import java.util.ArrayList;
import java.util.Hashtable;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
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.IPackageNode;
import org.jboss.ide.eclipse.packages.core.model.IPackageNodeVisitor;
import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
public class PackagesContentProvider implements ITreeContentProvider {
private Hashtable filesetProperties;
public PackagesContentProvider ()
{
filesetProperties = new Hashtable();
}
public static class FileSetProperty {
private IPackageFileSet fileset;
private String name;
public FileSetProperty(String name, IPackageFileSet fileset)
{
this.name = name;
this.fileset = fileset;
}
public String getName () { return name; }
public IPackageFileSet getFileSet() { return fileset; }
}
public static final String FILESET_PROP_SRC_CONTAINER = "srcContainer";
public static final String FILESET_PROP_SRC_PROJECT = "srcProject";
public static final String FILESET_PROP_DIR = "dir";
public static final String FILESET_PROP_INCLUDES = "includes";
public static final String FILESET_PROP_EXCLUDES = "excludes";
public static final String FILESET_PROP_DEST_FILE = "destFile";
public static final String FILESET_PROP_FILE = "file";
public void addFilesetProperties (IProject project, IPackageFileSet fileset)
{
ArrayList props = new ArrayList();
if (fileset.isSingleFile())
{
if (fileset.getDestinationFilename() != null && fileset.getDestinationFilename().length() > 0)
props.add(new FileSetProperty(FILESET_PROP_DEST_FILE, fileset));
props.add(new FileSetProperty(FILESET_PROP_FILE, fileset));
}
else {
if (fileset.getExcludesPattern() != null && fileset.getExcludesPattern().length() > 0)
props.add(new FileSetProperty(FILESET_PROP_EXCLUDES, fileset));
if (fileset.getIncludesPattern() != null && fileset.getIncludesPattern().length() > 0)
props.add(new FileSetProperty(FILESET_PROP_INCLUDES, fileset));
if (fileset.isInWorkspace())
{
IContainer sourceContainer = fileset.getSourceContainer();
if (!(sourceContainer.getType() == IResource.PROJECT && sourceContainer.equals(project)))
props.add(new FileSetProperty(FILESET_PROP_SRC_CONTAINER, fileset));
} else {
props.add(new FileSetProperty(FILESET_PROP_DIR, fileset));
}
if (!fileset.getProject().equals(project))
props.add(new FileSetProperty(FILESET_PROP_SRC_PROJECT, fileset));
}
filesetProperties.put(fileset, props);
}
public Object[] getChildren(Object parentElement) {
if (parentElement instanceof IPackageFileSet)
{
IPackageFileSet fileset = (IPackageFileSet) parentElement;
return ((ArrayList)filesetProperties.get(fileset)).toArray();
}
else if (parentElement instanceof IPackageNode)
{
IPackageNode node = (IPackageNode)parentElement;
return node.getAllChildren();
}
else return new Object[0];
}
public Object getParent(Object element) {
if (element instanceof IPackageNode)
{
IPackageNode node = (IPackageNode) element;
return node.getParent();
}
else if (element instanceof FileSetProperty)
{
return ((FileSetProperty)element).getFileSet();
}
return new Object[0];
}
public boolean hasChildren(Object element) {
if (element instanceof IPackageFileSet)
{
return true;
}
else if (element instanceof IPackageNode)
{
IPackageNode node = (IPackageNode) element;
return node.hasChildren();
}
return false;
}
public Object[] getElements(Object inputElement) {
return (Object[]) inputElement;
}
public void dispose() {}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
if (newInput == null) return;
IPackage packages[] = (IPackage[]) newInput;
if (oldInput != newInput && packages.length > 0)
{
final IProject project = (IProject) packages[0].getProject();
filesetProperties.clear();
PackagesCore.visitProjectPackages(project, new IPackageNodeVisitor() {
public boolean visit(IPackageNode node) {
if (node.getNodeType() == IPackageNode.TYPE_PACKAGE_FILESET)
{
IPackageFileSet fileset = (IPackageFileSet) node;
addFilesetProperties(project, fileset);
}
return true;
}
});
}
}
}
1.1 date: 2006/11/06 21:36:52; author: mculpepper; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/providers/PackagesLabelProvider.java
Index: PackagesLabelProvider.java
===================================================================
package org.jboss.ide.eclipse.packages.ui.providers;
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.eclipse.ui.ide.IDE;
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.PackagesUIMessages;
import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
import org.jboss.ide.eclipse.packages.ui.providers.PackagesContentProvider.FileSetProperty;
public class PackagesLabelProvider implements ILabelProvider {
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) {
if (element instanceof IPackageNode)
{
IPackageNode node = (IPackageNode) element;
switch (node.getNodeType())
{
case IPackageNode.TYPE_PACKAGE: {
IPackage pkg = (IPackage) node;
if (!pkg.isExploded())
return PackagesUIPlugin.getImage(PackagesUIPlugin.IMG_PACKAGE);
else
return PackagesUIPlugin.getImage(PackagesUIPlugin.IMG_PACKAGE_EXPLODED);
}
case IPackageNode.TYPE_PACKAGE_FOLDER: return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
case IPackageNode.TYPE_PACKAGE_FILESET: {
IPackageFileSet fileset = (IPackageFileSet) node;
if (fileset.isSingleFile())
return PackagesUIPlugin.getImage(PackagesUIPlugin.IMG_SINGLE_FILE);
else
return PackagesUIPlugin.getImage(PackagesUIPlugin.IMG_MULTIPLE_FILES);
}
}
}
else if (element instanceof FileSetProperty)
{
FileSetProperty prop = (FileSetProperty)element;
if (PackagesContentProvider.FILESET_PROP_DEST_FILE.equals(prop.getName())
|| PackagesContentProvider.FILESET_PROP_FILE.equals(prop.getName()))
{
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
}
else if (PackagesContentProvider.FILESET_PROP_EXCLUDES.equals(prop.getName()))
{
return PackagesUIPlugin.getDefault().getImageRegistry().get(PackagesUIPlugin.IMG_EXCLUDES);
}
else if (PackagesContentProvider.FILESET_PROP_INCLUDES.equals(prop.getName()))
{
return PackagesUIPlugin.getDefault().getImageRegistry().get(PackagesUIPlugin.IMG_INCLUDES);
}
else if (PackagesContentProvider.FILESET_PROP_SRC_CONTAINER.equals(prop.getName())
|| PackagesContentProvider.FILESET_PROP_DIR.equals(prop.getName()))
{
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
}
else if (PackagesContentProvider.FILESET_PROP_SRC_PROJECT.equals(prop.getName()))
{
return PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
}
}
return null;
}
private String internalGetText(Object element) {
if (element instanceof IPackageNode)
{
IPackageNode node = (IPackageNode) element;
switch (node.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);
}
}
else if (element instanceof FileSetProperty)
{
return getFileSetPropertyText((FileSetProperty)element);
}
return "";
}
private String getPackageText (IPackage pkg)
{
return pkg.getName();
}
private String getPackageFolderText (IPackageFolder folder)
{
return folder.getName();
}
private String getPackageFileSetText (IPackageFileSet fileset)
{
if (fileset.isSingleFile())
{
return fileset.getFile().getProjectRelativePath().toString();
}
else
{
if (fileset.isInWorkspace())
{
String text = fileset.getSourceContainer().getName();
if (fileset.getIncludesPattern() != null)
text += " : " + fileset.getIncludesPattern();
return text;
} else {
return fileset.getIncludesPattern();
}
}
}
private String getFileSetPropertyText (FileSetProperty property)
{
if (PackagesContentProvider.FILESET_PROP_FILE.equals(property.getName()))
{
return PackagesUIMessages.PackagesLabelProvider_filesetProperty_file + property.getFileSet().getFile().getProjectRelativePath().toString();
}
else if (PackagesContentProvider.FILESET_PROP_DEST_FILE.equals(property.getName()))
{
return PackagesUIMessages.PackagesLabelProvider_filesetProperty_destination + property.getFileSet().getDestinationFilename();
}
else if (PackagesContentProvider.FILESET_PROP_EXCLUDES.equals(property.getName()))
{
return PackagesUIMessages.PackagesLabelProvider_filesetProperty_excludes + property.getFileSet().getExcludesPattern();
}
else if (PackagesContentProvider.FILESET_PROP_INCLUDES.equals(property.getName()))
{
return PackagesUIMessages.PackagesLabelProvider_filesetProperty_includes + property.getFileSet().getIncludesPattern();
}
else if (PackagesContentProvider.FILESET_PROP_SRC_CONTAINER.equals(property.getName()))
{
return PackagesUIMessages.PackagesLabelProvider_filesetProperty_sourceFolder + property.getFileSet().getSourceContainer().getProjectRelativePath().toString();
}
else if (PackagesContentProvider.FILESET_PROP_SRC_PROJECT.equals(property.getName()))
{
return PackagesUIMessages.PackagesLabelProvider_filesetProperty_project + property.getFileSet().getSourceProject().getName();
}
else if (PackagesContentProvider.FILESET_PROP_DIR.equals(property.getName()))
{
return PackagesUIMessages.PackagesLabelProvider_filesetProperty_dir + property.getFileSet().getSourceFolder().toString();
}
return "";
}
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