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

Robert Stryker rob.stryker at jboss.com
Mon Apr 16 13:56:53 EDT 2007


  User: rawb    
  Date: 07/04/16 13:56:53

  Added:       core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/actions    
                        ActionWithDelegate.java NewJARAction.java
                        NewPackageAction.java INodeActionDelegate.java
  Log:
  Complete rewrite of the the two plugins leading to a cleaner, leaner project. 
  
  Revision  Changes    Path
  1.1      date: 2007/04/16 17:56:53;  author: rawb;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/actions/ActionWithDelegate.java
  
  Index: ActionWithDelegate.java
  ===================================================================
  package org.jboss.ide.eclipse.packages.ui.actions;
  
  import org.eclipse.jface.action.Action;
  import org.eclipse.jface.action.IAction;
  import org.eclipse.jface.viewers.ISelection;
  import org.eclipse.jface.viewers.IStructuredSelection;
  import org.eclipse.ui.IActionDelegate;
  import org.eclipse.ui.ISelectionListener;
  import org.eclipse.ui.IWorkbenchPart;
  
  public abstract class ActionWithDelegate extends Action implements IActionDelegate, ISelectionListener {
  	
  	public ActionWithDelegate () { 
  	}
  	
  	public abstract void run ();
  	
  	public void run(IAction action) {
  		run();
  	}
  	
  	public abstract IStructuredSelection getSelection();
  	public void selectionChanged(IAction action, ISelection selection) {
  	}
  
  	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
  	}
  
  }
  
  
  1.7       +8 -8      jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/actions/NewJARAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: NewJARAction.java
  ===================================================================
  RCS file: NewJARAction.java
  diff -N NewJARAction.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ NewJARAction.java	16 Apr 2007 17:56:53 -0000	1.7
  @@ -0,0 +1,42 @@
  +package org.jboss.ide.eclipse.packages.ui.actions;
  +
  +import org.eclipse.jface.dialogs.Dialog;
  +import org.eclipse.jface.resource.ImageDescriptor;
  +import org.eclipse.jface.viewers.IStructuredSelection;
  +import org.eclipse.jface.wizard.WizardDialog;
  +import org.eclipse.ui.PlatformUI;
  +import org.jboss.ide.eclipse.packages.ui.PackagesSharedImages;
  +import org.jboss.ide.eclipse.packages.ui.views.ProjectPackagesView;
  +import org.jboss.ide.eclipse.packages.ui.wizards.NewJARWizard;
  +
  +public class NewJARAction extends ActionWithDelegate {
  +	public void run() {
  +		try {
  +		NewJARWizard wizard = new NewJARWizard();
  +		
  +		wizard.init(PlatformUI.getWorkbench(), getSelection());
  +		
  +		WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
  +		int response = dialog.open();
  +		if (response == Dialog.OK) {
  +		}
  +		} catch( Exception e ) {
  +			e.printStackTrace();
  +		}
  +	}
  +	
  +	public IStructuredSelection getSelection() {
  +		return ProjectPackagesView.getInstance().getSelection();
  +	}
  +	public ImageDescriptor getImageDescriptor() {
  +		return PackagesSharedImages.getImageDescriptor(PackagesSharedImages.IMG_NEW_PACKAGE);
  +	}
  +	
  +	public String getText() {
  +		return "JAR";
  +	}
  +	
  +	public String getToolTipText() {
  +		return "Create a new JAR package";
  +	}
  +}
  
  
  
  1.4       +3 -0      jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/actions/NewPackageAction.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: NewPackageAction.java
  ===================================================================
  RCS file: NewPackageAction.java
  diff -N NewPackageAction.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ NewPackageAction.java	16 Apr 2007 17:56:53 -0000	1.4
  @@ -0,0 +1,73 @@
  +package org.jboss.ide.eclipse.packages.ui.actions;
  +
  +import java.net.URL;
  +
  +import org.eclipse.core.runtime.CoreException;
  +import org.eclipse.core.runtime.FileLocator;
  +import org.eclipse.core.runtime.IConfigurationElement;
  +import org.eclipse.core.runtime.Path;
  +import org.eclipse.core.runtime.Platform;
  +import org.eclipse.jface.resource.ImageDescriptor;
  +import org.eclipse.swt.graphics.Image;
  +import org.eclipse.ui.IActionDelegate;
  +import org.jboss.ide.eclipse.packages.core.Trace;
  +import org.osgi.framework.Bundle;
  +
  +/**
  + * This is an action wrapper. It wraps the extension point
  + */
  +public class NewPackageAction {
  +
  +	private String id, label;
  +	private ImageDescriptor icon;
  +	private Image iconImage;
  +	private IActionDelegate action;
  +	
  +	public NewPackageAction(IConfigurationElement element) {
  +		id = element.getAttribute("id");
  +		label = element.getAttribute("label");
  +		
  +		try {
  +			action = (IActionDelegate) element.createExecutableExtension("class");
  +		} catch (CoreException e) {
  +			Trace.trace(getClass(), e);
  +		}
  +		
  +		String iconPath = element.getAttribute("icon");
  +		String pluginId = element.getDeclaringExtension().getNamespaceIdentifier();
  +		Bundle bundle = Platform.getBundle(pluginId);
  +		URL iconURL = FileLocator.find(bundle, new Path(iconPath), null);
  +		if (iconURL == null)
  +		{
  +			iconURL = bundle.getEntry(iconPath);
  +		}
  +		icon = ImageDescriptor.createFromURL(iconURL);
  +		iconImage = icon.createImage();
  +	}
  +
  +	public IActionDelegate getAction() {
  +		return action;
  +	}
  +
  +	public ImageDescriptor getIconDescriptor() {
  +		return icon;
  +	}
  +	
  +	public Image getIcon()
  +	{
  +		return iconImage;
  +	}
  +
  +	public String getId() {
  +		return id;
  +	}
  +
  +	public String getLabel() {
  +		return label;
  +	}
  +	
  +	protected void finalize() throws Throwable {
  +		iconImage.dispose();
  +	}
  +
  +}
  
  
  
  1.5       +0 -0      jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/actions/INodeActionDelegate.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: INodeActionDelegate.java
  ===================================================================
  RCS file: INodeActionDelegate.java
  diff -N INodeActionDelegate.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ INodeActionDelegate.java	16 Apr 2007 17:56:53 -0000	1.5
  @@ -0,0 +1,24 @@
  +package org.jboss.ide.eclipse.packages.ui.actions;
  +
  +import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
  +
  +/**
  + * All extensions of org.jboss.ide.eclipse.packages.ui.nodePopupMenus should implement this interface
  + * (also see AbstractNodeActionDelegate)
  + * @author Marshall
  + *
  + */
  +public interface INodeActionDelegate {
  +
  +	/**
  +	 * @param node
  +	 * @return Whether or not this action delegate will be enabled (viewable) for a specific package node.
  +	 */
  +	public boolean isEnabledFor (IPackageNode node);
  +	
  +	/**
  +	 * Run this action delegate on the passed-in node
  +	 * @param node A package node
  +	 */
  +	public void run (IPackageNode node);
  +}
  
  
  



More information about the jboss-cvs-commits mailing list