[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers ...
Robert Stryker
rob.stryker at jboss.com
Fri Apr 20 05:38:23 EDT 2007
User: rawb
Date: 07/04/20 05:38:23
Added: core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers
ArchivesContentProvider.java
ArchivesLabelProvider.java
Removed: core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers
PackagesLabelProvider.java
PackagesContentProvider.java
Log:
Global and project-specific view and builder preferences implemented
Revision Changes Path
1.1 date: 2007/04/20 09:38:23; author: rawb; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java
Index: ArchivesContentProvider.java
===================================================================
package org.jboss.ide.eclipse.archives.ui.providers;
import java.util.ArrayList;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.jboss.ide.eclipse.archives.core.model.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchivesModel;
import org.jboss.ide.eclipse.archives.ui.PrefsInitializer;
public class ArchivesContentProvider implements ITreeContentProvider {
public ArchivesContentProvider () {
}
public static class WrappedProject {
private IProject project;
public WrappedProject (IProject proj) { project = proj; }
public IProject getProject() { return project; }
}
private boolean showProjectRoot () {
return PrefsInitializer.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 ArchiveModelNode && showProjectRoot()) {
IProject[] projects;
if( PrefsInitializer.getBoolean(PrefsInitializer.PREF_SHOW_ALL_PROJECTS)) {
IProject[] projects2 = ResourcesPlugin.getWorkspace().getRoot().getProjects();
ArrayList list = new ArrayList();
for( int i = 0; i < projects2.length; i++ ) {
if( ArchivesCore.packageFileExists(projects2[i])) {
list.add(projects2[i]);
}
}
projects = (IProject[]) list.toArray(new IProject[list.size()]);
} else {
projects = new IProject[] { ((ArchiveModelNode)parentElement).getProject()};
}
return wrapProjects(projects);
}
if( parentElement instanceof ArchiveModelNode)
return ((ArchiveModelNode)parentElement).getAllChildren();
if( parentElement instanceof ArchivesModel ) {
// return all that's there
}
if( parentElement instanceof IProject ) {
return ArchivesModel.instance().getProjectArchives((IProject)parentElement);
}
if( parentElement instanceof IArchiveNode ) {
return ((IArchiveNode)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.1 date: 2007/04/20 09:38:23; author: rawb; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesLabelProvider.java
Index: ArchivesLabelProvider.java
===================================================================
package org.jboss.ide.eclipse.archives.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.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.ui.PackagesSharedImages;
import org.jboss.ide.eclipse.archives.ui.PackagesUIPlugin;
import org.jboss.ide.eclipse.archives.ui.PrefsInitializer;
public class ArchivesLabelProvider 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 IArchiveNode ) {
IArchiveNode node = (IArchiveNode) element;
if (node != null) {
switch (node.getNodeType()) {
case IArchiveNode.TYPE_ARCHIVE: {
IArchive pkg = (IArchive) node;
if (!pkg.isExploded())
return PackagesSharedImages.getImage(PackagesSharedImages.IMG_PACKAGE);
else
return PackagesSharedImages.getImage(PackagesSharedImages.IMG_PACKAGE_EXPLODED);
}
case IArchiveNode.TYPE_ARCHIVE_FOLDER: return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
case IArchiveNode.TYPE_ARCHIVE_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 IArchiveNode ) {
switch (((IArchiveNode)element).getNodeType()) {
case IArchiveNode.TYPE_ARCHIVE: return getPackageText((IArchive)element);
case IArchiveNode.TYPE_ARCHIVE_FOLDER: return getPackageFolderText((IArchiveFolder)element);
case IArchiveNode.TYPE_ARCHIVE_FILESET: return getPackageFileSetText((IArchiveFileSet)element);
}
}
return element.toString();
}
private String getPackageFolderText (IArchiveFolder folder) {
return folder.getName();
}
private String getPackageText (IArchive pkg) {
String text = pkg.getName();
if (PrefsInitializer.getBoolean( PrefsInitializer.PREF_SHOW_PACKAGE_OUTPUT_PATH)) {
text += " [" + pkg.getDestinationPath() + "]";
}
return text;
}
private String getPackageFileSetText (IArchiveFileSet fileset) {
boolean showFullPath = PrefsInitializer.getBoolean(
PrefsInitializer.PREF_SHOW_FULL_FILESET_ROOT_DIR);
String text = "";
if (fileset.getIncludesPattern() != null)
text += fileset.getIncludesPattern() + ": ";
if (showFullPath) {
text += fileset.getGlobalSourcePath().toString();
} else {
text += fileset.getGlobalSourcePath().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