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

Marshall Culpepper mculpepper at jboss.com
Mon Nov 6 16:36:51 EST 2006


  User: mculpepper
  Date: 06/11/06 16:36:51

  Added:       core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/util  
                        PackageNodeDestinationComposite.java
                        PackageDestinationComposite.java
  Log:
  initial commit of the new "packages" tooling ui plugin
  
  Revision  Changes    Path
  1.1      date: 2006/11/06 21:36:51;  author: mculpepper;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/util/PackageNodeDestinationComposite.java
  
  Index: PackageNodeDestinationComposite.java
  ===================================================================
  package org.jboss.ide.eclipse.packages.ui.util;
  
  import org.eclipse.core.resources.IFolder;
  import org.eclipse.core.resources.IProject;
  import org.eclipse.jface.dialogs.Dialog;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.events.SelectionAdapter;
  import org.eclipse.swt.events.SelectionEvent;
  import org.eclipse.swt.layout.GridData;
  import org.eclipse.swt.layout.GridLayout;
  import org.eclipse.swt.widgets.Button;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.swt.widgets.Label;
  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.IPackageFolder;
  import org.jboss.ide.eclipse.packages.ui.PackagesUIMessages;
  import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
  import org.jboss.ide.eclipse.packages.ui.dialogs.PackageNodeDestinationDialog;
  
  public class PackageNodeDestinationComposite extends Composite {
  
  	protected Composite parent;
  	protected Label destinationImage;
  	protected Label destinationText;
  	protected Button destinationBrowseButton;
  	protected Object packageDestination;
  	protected boolean editable;
  	
  	public PackageNodeDestinationComposite(Composite parent, int style, Object destination)
  	{
  		super(parent, style);
  		this.parent = parent;
  		this.packageDestination = destination;
  		this.editable = true;
  		createComposite();
  	}
  	
  	protected void createComposite()
  	{
  		setLayout(new GridLayout(2, false));
  		setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  		
  		destinationImage = new Label(this, SWT.NONE);
  		destinationText = new Label(this, SWT.NONE);
  		updateDestinationViewer();
  		
  		destinationText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  		
  		createBrowseButton(parent);
  	}
  	
  	protected void createBrowseButton (Composite parent)
  	{
  		destinationBrowseButton = new Button(parent, SWT.PUSH); 
  		destinationBrowseButton.setText(PackagesUIMessages.PackageNodeDestinationComposite_destinationBrowseButton_label);
  		
  		destinationBrowseButton.addSelectionListener(new SelectionAdapter () {
  			public void widgetSelected(SelectionEvent e) {
  				openDestinationDialog();
  			}
  		});
  		destinationBrowseButton.setEnabled(editable);
  	}
  	
  	protected void openDestinationDialog ()
  	{
  		PackageNodeDestinationDialog dialog = new PackageNodeDestinationDialog(getShell(), packageDestination, true, true);
  		if (packageDestination != null)
  			dialog.setInitialSelection(packageDestination);
  		
  		int response = dialog.open();
  		if (response == Dialog.OK)
  		{
  			Object object = dialog.getResult()[0];
  			packageDestination = object;
  			
  			updateDestinationViewer();
  		}
  	}
  	
  	protected void updateDestinationViewer ()
  	{
  		if (packageDestination == null) return;
  		
  		if (packageDestination instanceof IPackage)
  		{
  			IPackage pkg = (IPackage) packageDestination;
  			
  			if (pkg.isExploded()) {
  				destinationImage.setImage(PackagesUIPlugin.getImage(PackagesUIPlugin.IMG_PACKAGE_EXPLODED));
  			} else {
  				destinationImage.setImage(PackagesUIPlugin.getImage(PackagesUIPlugin.IMG_PACKAGE));
  			}
  			destinationText.setText(pkg.getName());
  		}
  		else if (packageDestination instanceof IPackageFolder)
  		{
  			IPackageFolder folder = (IPackageFolder) packageDestination;
  			destinationImage.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
  			destinationText.setText(folder.getPackageRelativePath().toString());
  		}
  		else if (packageDestination instanceof IProject)
  		{
  			IProject project = (IProject) packageDestination;
  			destinationImage.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT));
  			destinationText.setText(project.getName());
  		}
  		else if (packageDestination instanceof IFolder)
  		{
  			IFolder folder = (IFolder) packageDestination;
  			destinationImage.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
  			destinationText.setText(folder.getProjectRelativePath().toString());
  		}
  	}
  	
  	public Object getPackageNodeDestination ()
  	{
  		return packageDestination;
  	}
  
  	public void setEditable(boolean editable) {
  		this.editable = editable;
  		if (destinationBrowseButton != null)
  		{
  			destinationBrowseButton.setEnabled(editable);
  		}
  	}
  }
  
  
  
  1.1      date: 2006/11/06 21:36:51;  author: mculpepper;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/util/PackageDestinationComposite.java
  
  Index: PackageDestinationComposite.java
  ===================================================================
  package org.jboss.ide.eclipse.packages.ui.util;
  
  import org.eclipse.core.resources.IContainer;
  import org.eclipse.core.runtime.IPath;
  import org.eclipse.core.runtime.Path;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.events.SelectionAdapter;
  import org.eclipse.swt.events.SelectionEvent;
  import org.eclipse.swt.layout.GridLayout;
  import org.eclipse.swt.widgets.Button;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.swt.widgets.DirectoryDialog;
  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;
  
  public class PackageDestinationComposite extends PackageNodeDestinationComposite {
  
  	protected boolean inWorkspace;
  	protected Button filesystemBrowseButton, workspaceBrowseButton;
  	
  	public PackageDestinationComposite (Composite parent, int style, Object destination) {
  		super(parent, style, destination);
  	}
  	
  	protected void createBrowseButton(Composite parent) {
  		Composite browseComposite = new Composite(parent, SWT.NONE);
  		browseComposite.setLayout(new GridLayout(2, false));
  		
  		filesystemBrowseButton = new Button(browseComposite, SWT.PUSH);
  		filesystemBrowseButton.setText(PackagesUIMessages.PackageDestinationComposite_filesystemBrowseButton_label);
  		filesystemBrowseButton.addSelectionListener(new SelectionAdapter () {
  			public void widgetSelected(SelectionEvent e) {
  				browseFilesystem();
  			}
  		});
  		
  		workspaceBrowseButton = new Button(browseComposite, SWT.PUSH);
  		workspaceBrowseButton.setText(PackagesUIMessages.PackageDestinationComposite_workspaceBrowseButton_label);
  		workspaceBrowseButton.addSelectionListener(new SelectionAdapter () {
  			public void widgetSelected(SelectionEvent e) {
  				openDestinationDialog();
  			}
  		});
  	}
  	
  	protected void browseFilesystem ()
  	{
  		DirectoryDialog dialog = new DirectoryDialog(getShell());
  		String currentPath = destinationText.getText();
  		if (currentPath != null && currentPath.length() > 0 && !inWorkspace)
  		{
  			dialog.setFilterPath(destinationText.getText());
  		}
  		
  		String path = dialog.open();
  		if (path != null)
  		{
  			packageDestination = new Path(path);
  			updateDestinationViewer();
  		}	
  	}
  	
  	protected void updateDestinationViewer()
  	{
  		super.updateDestinationViewer();
  
  		if (packageDestination instanceof IPath)
  		{
  			inWorkspace = false;
  			IPath path = (IPath) packageDestination;
  			destinationImage.setImage(PackagesUIPlugin.getImage(PackagesUIPlugin.IMG_EXTERNAL_FILE));
  			destinationText.setText(path.toString());
  		}
  		else if (packageDestination instanceof IContainer || packageDestination instanceof IPackageNode)
  		{
  			inWorkspace = true;
  		}
  	}
  	
  	public void setEditable(boolean editable) {
  		super.setEditable(editable);
  		
  		workspaceBrowseButton.setEnabled(editable);
  		filesystemBrowseButton.setEnabled(editable);
  	}
  }
  
  
  



More information about the jboss-cvs-commits mailing list