[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