Author: rob.stryker(a)jboss.com
Date: 2008-12-03 21:34:35 -0500 (Wed, 03 Dec 2008)
New Revision: 12269
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
JBIDE-3232 - =D
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java 2008-12-04
01:45:55 UTC (rev 12268)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java 2008-12-04
02:34:35 UTC (rev 12269)
@@ -1,17 +1,145 @@
package org.jboss.ide.eclipse.as.ui.views.server.extensions;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.CommonActionProvider;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.ICommonActionExtensionSite;
+import org.eclipse.ui.navigator.ICommonViewerSite;
+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
+import org.eclipse.ui.views.IViewDescriptor;
+import org.eclipse.ui.views.IViewRegistry;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.view.servers.AbstractServerAction;
+import org.jboss.ide.eclipse.as.core.extensions.jmx.JBossServerConnection;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JBossServerConnectionProvider;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+import org.jboss.tools.jmx.core.ExtensionManager;
import org.jboss.tools.jmx.core.IConnectionWrapper;
+import org.jboss.tools.jmx.ui.internal.views.navigator.JMXNavigator;
import org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider;
import org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerLabelProvider;
public class JMXProvider {
+ public static class ActionProvider extends CommonActionProvider {
+ private ICommonActionExtensionSite actionSite;
+ private ShowInJMXViewAction showInJMXViewAction;
+ public ActionProvider() {
+ super();
+ }
+
+ public void init(ICommonActionExtensionSite aSite) {
+ super.init(aSite);
+ this.actionSite = aSite;
+ createActions(aSite);
+ }
+
+ protected void createActions(ICommonActionExtensionSite aSite) {
+ ICommonViewerSite site = aSite.getViewSite();
+ if( site instanceof ICommonViewerWorkbenchSite ) {
+ StructuredViewer v = aSite.getStructuredViewer();
+ if( v instanceof CommonViewer ) {
+ CommonViewer cv = (CommonViewer)v;
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
+ showInJMXViewAction = new ShowInJMXViewAction(wsSite.getSelectionProvider());
+ }
+ }
+ }
+
+ public void fillContextMenu(IMenuManager menu) {
+ ICommonViewerSite site = actionSite.getViewSite();
+ IStructuredSelection selection = null;
+ if (site instanceof ICommonViewerWorkbenchSite) {
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite) site;
+ selection = (IStructuredSelection) wsSite.getSelectionProvider()
+ .getSelection();
+ }
+ if( selection != null && selection.toArray().length == 1 ) {
+ if( selection.getFirstElement() instanceof IServer ) {
+ if( menu instanceof MenuManager ) {
+ MenuManager mgr = (MenuManager)menu;
+ IContributionItem[] items = mgr.getItems();
+ for( int i = 0; i < items.length; i++ ) {
+ if( "org.eclipse.ui.navigate.showInQuickMenu".equals(items[i].getId()))
{
+ ((MenuManager)items[i]).add(showInJMXViewAction);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public class ShowInJMXViewAction extends AbstractServerAction {
+ public ShowInJMXViewAction(ISelectionProvider sp) {
+ super(sp, null);
+
+ IViewRegistry reg = PlatformUI.getWorkbench().getViewRegistry();
+ IViewDescriptor desc = reg.find(JMXNavigator.VIEW_ID);
+ setText(desc.getLabel());
+ setImageDescriptor(desc.getImageDescriptor());
+ }
+
+ public boolean accept(IServer server) {
+ return (server.getServerType() != null &&
+ server.loadAdapter(JBossServer.class, new NullProgressMonitor()) != null
+ && server.getServerState() == IServer.STATE_STARTED);
+ }
+
+ public void perform(final IServer server) {
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow() ;
+ if (window != null) {
+ IWorkbenchPage page = window.getActivePage();
+ if (page != null) {
+ IWorkbenchPart part = page.findView(JMXNavigator.VIEW_ID);
+ if (part == null) {
+ try {
+ part = page.showView(JMXNavigator.VIEW_ID);
+ } catch (PartInitException e) {
+ }
+ } else /* if( part != null ) */ {
+ final JMXNavigator view = (JMXNavigator) part.getAdapter(JMXNavigator.class);
+ if (view != null) {
+ view.setFocus();
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ JBossServerConnectionProvider provider =
+ (JBossServerConnectionProvider)ExtensionManager.getProvider(
+ JBossServerConnectionProvider.PROVIDER_ID);
+ JBossServerConnection connection = provider.getConnection(server);
+ if( connection != null ) {
+ view.getCommonViewer().collapseAll();
+ ISelection sel = new StructuredSelection(new Object[] { connection });
+ view.getCommonViewer().setSelection(sel, true);
+ view.getCommonViewer().expandToLevel(connection, 2);
+ }
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
public static class ContentProvider implements ITreeContentProvider {
private MBeanExplorerContentProvider delegate;
public ContentProvider() {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java 2008-12-04
01:45:55 UTC (rev 12268)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java 2008-12-04
02:34:35 UTC (rev 12269)
@@ -74,7 +74,7 @@
public class ShowInServerLogAction extends AbstractServerAction {
public ShowInServerLogAction(ISelectionProvider sp) {
- super(sp, "Server Log");
+ super(sp, null);
IViewRegistry reg = PlatformUI.getWorkbench().getViewRegistry();
IViewDescriptor desc = reg.find(ServerLogView.VIEW_ID);
@@ -98,8 +98,7 @@
part = page.showView(ServerLogView.VIEW_ID);
} catch (PartInitException e) {
}
- }
- if (part != null) {
+ } else /* if (part != null) */ {
ServerLogView view = (ServerLogView) part.getAdapter(ServerLogView.class);
if (view != null) {
view.setFocus();
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-12-04 01:45:55 UTC (rev
12268)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-12-04 02:34:35 UTC (rev
12269)
@@ -426,6 +426,15 @@
</instanceof>
</enablement>
</actionProvider>
+ <actionProvider
+
class="org.jboss.ide.eclipse.as.ui.views.server.extensions.JMXProvider$ActionProvider"
+ id="org.jboss.ide.eclipse.as.ui.extensions.showInJMXView">
+ <enablement>
+ <instanceof
+ value="org.eclipse.wst.server.core.IServer">
+ </instanceof>
+ </enablement>
+ </actionProvider>
<navigatorContent
activeByDefault="false"
contentProvider="org.jboss.ide.eclipse.as.ui.views.server.extensions.JMXProvider$ContentProvider"
@@ -487,6 +496,8 @@
<actionExtension
pattern="org.jboss.ide.eclipse.as.ui.extensions.serverLog"/>
<actionExtension
+
pattern="org.jboss.ide.eclipse.as.ui.extensions.showInJMXView"/>
+ <actionExtension
pattern="org.jboss.tools.jmx.ui.internal.views.navigator.actionProvider">
</actionExtension>
</includes>
Show replies by date