Author: koen.aers(a)jboss.com
Date: 2011-12-06 13:56:41 -0500 (Tue, 06 Dec 2011)
New Revision: 37008
Added:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/ShowInForgeDelegate.java
Modified:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/plugin.xml
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeCommandFilter.java
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/PickUpPostProcessor.java
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java
Log:
JBIDE-10269: Implement "Show In Forge" for Workspace Selections
Modified: branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/plugin.xml
===================================================================
---
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/plugin.xml 2011-12-06
18:20:04 UTC (rev 37007)
+++
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/plugin.xml 2011-12-06
18:56:41 UTC (rev 37008)
@@ -32,7 +32,7 @@
id="org.jboss.tools.forge.menubar"
label="Forge">
</menu>
-<!-- <action
+ <action
class="org.jboss.tools.forge.ui.action.StopDelegate"
icon="icons/stop.gif"
id="org.jboss.tools.forge.stop"
@@ -49,21 +49,12 @@
menubarPath="org.jboss.tools.forge.menu"
style="push"
toolbarPath="org.jboss.tools.forge.toolbar">
- </action> -->
- <action
- class="org.jboss.tools.forge.ui.action.StopDelegate"
- icon="icons/stop.gif"
- id="org.jboss.tools.forge.stop"
- label="Stop Forge"
- menubarPath="org.jboss.tools.forge.menubar"
- style="push"
- toolbarPath="org.jboss.tools.forge.toolbar">
</action>
<action
- class="org.jboss.tools.forge.ui.action.StartDelegate"
- icon="icons/start.gif"
- id="org.jboss.tools.forge.start"
- label="Start Forge"
+ class="org.jboss.tools.forge.ui.action.ShowInForgeDelegate"
+ icon="icons/jbossforge_icon_16px.png"
+ id="org.jboss.tools.forge.show"
+ label="Show In Forge"
menubarPath="org.jboss.tools.forge.menu"
style="push"
toolbarPath="org.jboss.tools.forge.toolbar">
@@ -99,5 +90,22 @@
sequence="M1+4"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" />
</extension>
-
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension
+ targetID = "org.eclipse.jst.j2ee.J2EEPerspective">
+ <showInPart
+ id = "org.jboss.tools.forge.console"/>
+ </perspectiveExtension>
+ <perspectiveExtension
+ targetID = "org.eclipse.jdt.ui.JavaPerspective">
+ <showInPart
+ id = "org.jboss.tools.forge.console"/>
+ </perspectiveExtension>
+ <perspectiveExtension
+ targetID = "org.jboss.tools.common.ui.JBossPerspective">
+ <showInPart
+ id = "org.jboss.tools.forge.console"/>
+ </perspectiveExtension>
+ </extension>
</plugin>
Added:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/ShowInForgeDelegate.java
===================================================================
---
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/ShowInForgeDelegate.java
(rev 0)
+++
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/ShowInForgeDelegate.java 2011-12-06
18:56:41 UTC (rev 37008)
@@ -0,0 +1,32 @@
+package org.jboss.tools.forge.ui.action;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IViewActionDelegate;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.part.ShowInContext;
+import org.jboss.tools.forge.ui.part.ForgeView;
+
+public class ShowInForgeDelegate implements IViewActionDelegate {
+
+ private ForgeView forgeView = null;
+
+ @Override
+ public void run(IAction action) {
+ if (forgeView != null) {
+ forgeView.show(new ShowInContext(null, forgeView.getSelection()));
+ }
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ }
+
+ @Override
+ public void init(IViewPart view) {
+ if (view != null && view instanceof ForgeView) {
+ forgeView = (ForgeView)view;
+ }
+ }
+
+}
Property changes on:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/ShowInForgeDelegate.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java
===================================================================
---
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java 2011-12-06
18:20:04 UTC (rev 37007)
+++
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/action/StartDelegate.java 2011-12-06
18:56:41 UTC (rev 37008)
@@ -19,8 +19,6 @@
@Override
public void selectionChanged(IAction action, ISelection selection) {
- // TODO Auto-generated method stub
-
}
@Override
Modified:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeCommandFilter.java
===================================================================
---
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeCommandFilter.java 2011-12-06
18:20:04 UTC (rev 37007)
+++
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeCommandFilter.java 2011-12-06
18:56:41 UTC (rev 37008)
@@ -17,7 +17,6 @@
@Override
public void handleFilteredString(String str) {
- System.out.println("handle filtered string: " + str);
if (str.startsWith(" EC: ")) {
commandProcessor.postProcess(str);
} else if (str.startsWith("POM File Modified: ")) {
Modified:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java
===================================================================
---
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java 2011-12-06
18:20:04 UTC (rev 37007)
+++
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/ForgeTextViewer.java 2011-12-06
18:56:41 UTC (rev 37008)
@@ -168,32 +168,6 @@
}
};
outputListener = new ForgeCommandFilter(ansiCommandFilter);
-// outputListener = new ForgeHiddenOutputFilter(ansiCommandFilter) {
-// @Override
-// public void handleFilteredString(String str) {
-// System.out.println("handle filtered string: " + str);
-// if (str.startsWith("Intercepted Command: ")) {
-// commandProcessor.startCommand(str.substring(21));
-// } else if (str.startsWith("Executed Command: ")) {
-// commandProcessor.stopCurrentCommand(str);
-// } else if (str.startsWith("Execute Command: ")) {
-// str = str.substring(17);
-// int index = str.indexOf("Current Resource: ");
-// String line = "";
-// String resource = "";
-// if (index != -1) {
-// line = str.substring(0, index);
-// resource = str.substring(index + 18);
-// commandProcessor.executeCommand(line, resource);
-// }
-// } else if (str.startsWith("POM File Modified: ")) {
-// IProject project =
ResourcesPlugin.getWorkspace().getRoot().getProject(str.substring(19));
-// if (project != null) {
-// ProjectConfigurationUpdater.updateProject(project);
-// }
-// }
-// }
-// };
runtime.addOutputListener(outputListener);
}
Modified:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/PickUpPostProcessor.java
===================================================================
---
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/PickUpPostProcessor.java 2011-12-06
18:20:04 UTC (rev 37007)
+++
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/PickUpPostProcessor.java 2011-12-06
18:56:41 UTC (rev 37008)
@@ -149,13 +149,15 @@
for (String name : names) {
if (input != null && input instanceof IAdaptable) {
ISystemViewElementAdapter adapter = SystemAdapterHelpers.getViewAdapter(input);
- for (Object object : adapter.getChildren((IAdaptable)input, null)) {
- if (object instanceof IAdaptable) {
- adapter = SystemAdapterHelpers.getViewAdapter(object);
- if (name.equals(adapter.getText(object))) {
- input = object;
- treeSegments.add(input);
- break;
+ if (adapter != null) {
+ for (Object object : adapter.getChildren((IAdaptable)input, null)) {
+ if (object instanceof IAdaptable) {
+ adapter = SystemAdapterHelpers.getViewAdapter(object);
+ if (adapter != null && name.equals(adapter.getText(object))) {
+ input = object;
+ treeSegments.add(input);
+ break;
+ }
}
}
}
Modified:
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java
===================================================================
---
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java 2011-12-06
18:20:04 UTC (rev 37007)
+++
branches/jbosstools-3.3.0.M5/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/part/ForgeView.java 2011-12-06
18:56:41 UTC (rev 37008)
@@ -3,25 +3,35 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.IShowInTarget;
import org.eclipse.ui.part.MessagePage;
import org.eclipse.ui.part.Page;
import org.eclipse.ui.part.PageBook;
import org.eclipse.ui.part.PageSite;
+import org.eclipse.ui.part.ShowInContext;
import org.eclipse.ui.part.ViewPart;
import org.jboss.tools.forge.core.preferences.ForgeRuntimesPreferences;
import org.jboss.tools.forge.core.process.ForgeRuntime;
import org.jboss.tools.forge.ui.ForgeUIPlugin;
import org.jboss.tools.forge.ui.console.ForgeTextViewer;
-public class ForgeView extends ViewPart implements PropertyChangeListener {
+public class ForgeView extends ViewPart implements PropertyChangeListener, IShowInTarget
{
public static final String ID = "org.jboss.tools.forge.console";
@@ -62,20 +72,25 @@
private String notRunningMessage;
private ForgeRuntime runtime;
+ private ISelection selection;
-// public ForgeView() {
-// if (INSTANCE == null) {
-// INSTANCE = this;
-// }
-// }
-//
@Override
public void createPartControl(Composite parent) {
pageBook = new PageBook(parent, SWT.NONE);
createNotRunningPage(parent);
showPage(notRunning);
+ getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(new
ISelectionListener() {
+ @Override
+ public void selectionChanged(IWorkbenchPart part, ISelection newSelection) {
+ selection = newSelection;
+ }
+ });
}
+ public ISelection getSelection() {
+ return selection;
+ }
+
private void createNotRunningPage(Composite parent) {
MessagePage page = new MessagePage();
page.createControl(pageBook);
@@ -229,4 +244,30 @@
return runtime;
}
-}
+ public boolean show(ShowInContext context) {
+ if (context == null) {
+ return false;
+ }
+ if (runtime != null &&
ForgeRuntime.STATE_RUNNING.equals(runtime.getState())) {
+ ISelection sel = context.getSelection();
+ if (sel instanceof IStructuredSelection) {
+ IStructuredSelection ss = (IStructuredSelection)sel;
+ Object first = ss.getFirstElement();
+ if (first instanceof IResource) {
+ IPath path = ((IResource)first).getLocation();
+ runtime.sendInput("pick-up " + path + "\n");
+ } else if (first instanceof IJavaElement) {
+ try {
+ IPath path = ((IJavaElement)first).getCorrespondingResource().getLocation();
+ runtime.sendInput("pick-up " + path + "\n");
+ } catch (JavaModelException e) {
+ ForgeUIPlugin.log(e);
+ }
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
\ No newline at end of file
Show replies by date