[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