[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/util ...

Robert Stryker rawblem at gmail.com
Fri Jan 12 16:42:28 EST 2007


  User: rawb    
  Date: 07/01/12 16:42:28

  Added:       core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/util 
                        FilesetPreviewComposite.java
  Log:
  Pulled out the preview composite
  
  Revision  Changes    Path
  1.1      date: 2007/01/12 21:42:28;  author: rawb;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/util/FilesetPreviewComposite.java
  
  Index: FilesetPreviewComposite.java
  ===================================================================
  /**
   * JBoss, a Division of Red Hat
   * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
  * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
   * the License, or (at your option) any later version.
   *
   * This software is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
   * License along with this software; if not, write to the Free
   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
   */
  package org.jboss.ide.eclipse.packages.ui.util;
  
  import org.eclipse.core.resources.IContainer;
  import org.eclipse.core.resources.IResource;
  import org.eclipse.core.runtime.IPath;
  import org.eclipse.core.runtime.Path;
  import org.eclipse.jface.viewers.ArrayContentProvider;
  import org.eclipse.jface.viewers.ILabelProvider;
  import org.eclipse.jface.viewers.ILabelProviderListener;
  import org.eclipse.jface.viewers.TableViewer;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.graphics.Image;
  import org.eclipse.swt.layout.GridData;
  import org.eclipse.swt.layout.GridLayout;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.ui.ISharedImages;
  import org.eclipse.ui.PlatformUI;
  import org.eclipse.ui.ide.IDE;
  
  /**
   *
   * @author rob.stryker at jboss.com
   */
  public class FilesetPreviewComposite extends Composite  {
  	private IContainer container;
  	private IPath folder;
  	private TableViewer previewTable;
  	public FilesetPreviewComposite (Composite parent, int style)
  	{
  		super(parent, style);
  		setLayout(new GridLayout(1, false));
  		previewTable = new TableViewer(parent, SWT.BORDER);
  		previewTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
  		previewTable.setContentProvider(new ArrayContentProvider());
  		previewTable.setLabelProvider(new ResourceLabelProvider());
  
  	}
  	
  	public FilesetPreviewComposite (Composite parent)
  	{
  		this(parent, SWT.NONE);
  	}
  
  	public void setInput(Object[] o) {
  		previewTable.setInput(o);
  	}
  	public void setEnabled(boolean bool) {
  		previewTable.getTable().setEnabled(bool);
  	}
  	public void clearAll() {
  		previewTable.getTable().clearAll();
  	}
  	public void setRootContainer(IContainer container) {
  		this.container = container;
  	}
  	public void setRootFolder(IPath folder) {
  		this.folder = folder;
  	}
  	
  	private IPath getContainerRelativePath(IContainer container, IResource resource)
  	{
  		String path = "";
  		IContainer parent = resource.getParent();
  		while (parent != null)
  		{
  			if (parent.equals(container))
  			{
  				break;
  			}
  			path = parent.getName() + "/" + path;
  			parent = parent.getParent();
  		}
  		
  		path += (path.length() == 0 ? "" : "/") + resource.getName();
  		
  		return new Path(path);
  	}
  	private String getFolderRelativePath(IPath root, IPath resource) {
  		IPath out = resource.removeFirstSegments(resource.matchingFirstSegments(root));
  		String out2 = "";
  		for( int i = 0; i < out.segmentCount(); i++ ) {
  			out2 += Path.SEPARATOR + out.segment(i);
  		}
  		return out2;
  	}
  
  	private class ResourceLabelProvider implements ILabelProvider
  	{
  
  		public Image getImage(Object element) {
  			if (element instanceof IResource)
  			{
  				IResource resource = (IResource) element;
  				if (resource.getType() == IResource.PROJECT)
  				{
  					return PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
  				}
  				else if (resource.getType() == IResource.FOLDER)
  				{
  					return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
  				}
  				else if (resource.getType() == IResource.FILE)
  				{
  					return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
  				}
  			} else if (element instanceof IPath) {
  				return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
  			}
  			return null;
  		}
  
  		public String getText(Object element) {
  			if (element instanceof IResource)
  			{
  				return getContainerRelativePath(container, (IResource)element).toString();
  			} else if (element instanceof IPath) {
  				return folder == null ? ((IPath)element).toString() : getFolderRelativePath(folder, (IPath)element);
  			}
  			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