Author: akazakov
Date: 2012-04-09 13:14:21 -0400 (Mon, 09 Apr 2012)
New Revision: 40100
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/Messages.properties
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/ServerActionMessages.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/messages.properties
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/CommonActionProviderUtils.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/xpl/ExploreActionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
https://issues.jboss.org/browse/JBIDE-11153 Open With on Servers Tab
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2012-04-06 21:59:16
UTC (rev 40099)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2012-04-09 17:14:21
UTC (rev 40100)
@@ -57,7 +57,8 @@
org.eclipse.jst.common.project.facet.core;bundle-version="1.4.200",
org.eclipse.wst.common.emfworkbench.integration;bundle-version="1.2.100",
org.jboss.ide.eclipse.as.management.core;bundle-version="1.0.0",
- org.jboss.ide.eclipse.as.dmr;bundle-version="2.3.0"
+ org.jboss.ide.eclipse.as.dmr;bundle-version="2.3.0",
+ org.eclipse.ui.browser;bundle-version="3.3.101"
Bundle-ActivationPolicy: lazy
Export-Package: org.jboss.ide.eclipse.as.ui,
org.jboss.ide.eclipse.as.ui.actions,
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/Messages.properties
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/Messages.properties 2012-04-06
21:59:16 UTC (rev 40099)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/Messages.properties 2012-04-09
17:14:21 UTC (rev 40100)
@@ -196,7 +196,7 @@
EditorLocalDeployment=Local Deployment
EditorRefreshViewer=Refresh Table
-ExploreUtils_Action_Text=Explore
+ExploreUtils_Action_Text=File Browser
ExploreUtils_Description=Explore deploy directory
ShowInJMXConsole_Action_Text=JMX Management Console
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/ServerActionMessages.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/ServerActionMessages.java 2012-04-06
21:59:16 UTC (rev 40099)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/ServerActionMessages.java 2012-04-09
17:14:21 UTC (rev 40100)
@@ -22,4 +22,6 @@
public static String ChangeTimeStampActionDelegate_could_not_register_project;
public static String DeployActionMessageBoxTitle;
public static String DeployActionMessageBoxMsg;
+ public static String OpenWithBrowser;
+ public static String OpenWithBrowserDescription;
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/messages.properties
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/messages.properties 2012-04-06
21:59:16 UTC (rev 40099)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/actions/messages.properties 2012-04-09
17:14:21 UTC (rev 40100)
@@ -10,4 +10,6 @@
ChangeTimeStampActionDelegate_cannot_unregister=Cannot unregister project {0} from server
{1}
ChangeTimeStampActionDelegate_could_not_register_project=Could not register project {0}
DeployActionMessageBoxTitle=Really mark these resources as deployable?
-DeployActionMessageBoxMsg=The selection's enclosing projects are already able to be
deployed to servers. Marking the selected resources as deployable may be neither necessary
nor desired.\n\nYou may prefer to use "Run As -> Run on server"
instead.\n\nContinue marking these resources deployable?
\ No newline at end of file
+DeployActionMessageBoxMsg=The selection's enclosing projects are already able to be
deployed to servers. Marking the selected resources as deployable may be neither necessary
nor desired.\n\nYou may prefer to use "Run As -> Run on server"
instead.\n\nContinue marking these resources deployable?
+OpenWithBrowser=Web Browser
+OpenWithBrowserDescription=Open With Web Browser
\ No newline at end of file
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/CommonActionProviderUtils.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/CommonActionProviderUtils.java 2012-04-06
21:59:16 UTC (rev 40099)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/CommonActionProviderUtils.java 2012-04-09
17:14:21 UTC (rev 40100)
@@ -14,27 +14,32 @@
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.bindings.TriggerSequence;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.IWorkbench;
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.keys.IBindingService;
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.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.cnf.ServerActionProvider;
/**
* @author André Dietisheim
*/
public class CommonActionProviderUtils {
- private static final String SHOW_IN_QUICK_MENU_ID =
"org.eclipse.ui.navigate.showInQuickMenu"; //$NON-NLS-1$
+ private static final String SHOW_IN_QUICK_MENU_ID =
ServerActionProvider.SHOW_IN_MENU_ID;
public static ICommonViewerWorkbenchSite
getCommonViewerWorkbenchSite(ICommonActionExtensionSite actionExtensionSite) {
ICommonViewerWorkbenchSite wsSite = null;
@@ -67,15 +72,32 @@
return selection != null
&& selection.getFirstElement() instanceof IServer;
}
-
+
public static IContributionItem getShowInQuickMenu(IMenuManager menuManager) {
+ return getShowInQuickMenu(menuManager, false);
+ }
+
+ public static IContributionItem getShowInQuickMenu(IMenuManager menuManager, boolean
createShowInMenu) {
IContributionItem item = null;
if (menuManager != null) {
item = menuManager.find(SHOW_IN_QUICK_MENU_ID);
+ if(item==null && createShowInMenu) {
+ String text = Messages.actionShowIn;
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ final IBindingService bindingService = (IBindingService) workbench
+ .getAdapter(IBindingService.class);
+ final TriggerSequence[] activeBindings = bindingService
+ .getActiveBindingsFor(SHOW_IN_QUICK_MENU_ID);
+ if (activeBindings.length > 0) {
+ text += "\t" + activeBindings[0].format();
+ }
+ item = new MenuManager(text, SHOW_IN_QUICK_MENU_ID);
+ menuManager.insertAfter(ServerActionProvider.TOP_SECTION_END_SEPARATOR, item);
+ }
}
return item;
}
-
+
public static void addToShowInQuickSubMenu(IAction action, IMenuManager menu,
ICommonActionExtensionSite actionSite) {
IStructuredSelection selection = CommonActionProviderUtils.getSelection(actionSite);
IContributionItem menuItem = CommonActionProviderUtils.getShowInQuickMenu(menu);
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java 2012-04-06
21:59:16 UTC (rev 40099)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java 2012-04-09
17:14:21 UTC (rev 40100)
@@ -10,42 +10,163 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.ui.views.server.extensions;
-import org.eclipse.core.runtime.CoreException;
+import java.net.URL;
+
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.internal.browser.ImageResource;
+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.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IModuleType;
import org.eclipse.wst.server.core.IServer;
-import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.eclipse.wst.server.core.model.IURLProvider;
+import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
import
org.jboss.ide.eclipse.as.core.server.internal.extendedproperties.ServerExtendedProperties;
-import org.jboss.ide.eclipse.as.core.util.ServerUtil;
-import org.jboss.ide.eclipse.as.ui.Messages;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.actions.ServerActionMessages;
+import org.jboss.ide.eclipse.as.ui.launch.JBTWebLaunchableClient;
-import com.ibm.icu.text.MessageFormat;
+public class ShowInWelcomePageActionProvider extends CommonActionProvider {
-public class ShowInWelcomePageActionProvider extends AbstractOpenBrowserServerAction {
+ private Action action;
+ private ICommonActionExtensionSite actionSite;
- private static String WELCOME_PAGE_URL_PATTERN = "http://{0}:{1}/";
//$NON-NLS-1$
- protected String getActionText() {
- return Messages.ShowInWelcomePage_Action_Text;
+ /*
+ * (non-Javadoc)
+ * @see
org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
+ */
+ @Override
+ public void init(ICommonActionExtensionSite aSite) {
+ super.init(aSite);
+ actionSite = aSite;
+ ICommonViewerSite site = aSite.getViewSite();
+ if( site instanceof ICommonViewerWorkbenchSite ) {
+ StructuredViewer v = aSite.getStructuredViewer();
+ if( v instanceof CommonViewer ) {
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
+ createActions((CommonViewer)v, wsSite.getSelectionProvider());
+ }
+ }
}
-
- protected boolean shouldAddForSelection(IStructuredSelection sel) {
- IServer server = getSingleServer(sel);
- if( server != null ) {
- ServerExtendedProperties props = (ServerExtendedProperties)
- server.loadAdapter(ServerExtendedProperties.class, new NullProgressMonitor());
- if( props != null && props.hasWelcomePage())
- return true;
+
+ public void createActions(CommonViewer tableViewer, ISelectionProvider provider) {
+ action = new Action() {
+ @Override
+ public void run() {
+ String url = getUrl();
+ if(url!=null) {
+ JBTWebLaunchableClient.checkedCreateInternalBrowser(url, getServer().getName(),
JBossServerUIPlugin.PLUGIN_ID, JBossServerUIPlugin.getDefault().getLog());
+ }
+ }
+ };
+ action.setText(ServerActionMessages.OpenWithBrowser);
+ action.setDescription(ServerActionMessages.OpenWithBrowserDescription);
+ action.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_INTERNAL_BROWSER));
+ }
+
+ private String getUrl() {
+ String urlString = null;
+ IServer server = getServer();
+ if(server!=null && server.getServerState() == IServer.STATE_STARTED) {
+ ModuleServer ms = getModuleServer();
+ if(ms!=null) {
+ IModule[] mss = ms.getModule();
+ IModule m = getWebModule(mss);
+ if(m!=null) {
+ IServer s = getServer();
+ Object o = s.loadAdapter(IURLProvider.class, null);
+ if(o instanceof IURLProvider) {
+ URL url = ((IURLProvider)o).getModuleRootURL(m);
+ if(url!=null) {
+ urlString = url.toString();
+ }
+ }
+ }
+ } else {
+ ServerExtendedProperties props =
(ServerExtendedProperties)server.loadAdapter(ServerExtendedProperties.class, new
NullProgressMonitor());
+ urlString = props.getWelcomePageUrl();
+ }
}
- return false;
+ return urlString;
}
- protected boolean accepts(IServer server) {
- return server.getServerState() == IServer.STATE_STARTED;
+ private IModule getWebModule(IModule[] m) {
+ if(m.length>0) {
+ IModule module = m[m.length-1];
+ if(isWebModule(module)) {
+ return module;
+ } else {
+ IServer s = getServer();
+ IModule[] mms = s.getChildModules(m, null);
+ for (IModule child : mms) {
+ if(isWebModule(child)) {
+ return child;
+ }
+ }
+ }
+ }
+ return null;
}
-
- protected String getURL(IServer server) throws CoreException {
- ServerExtendedProperties props = (ServerExtendedProperties)
- server.loadAdapter(ServerExtendedProperties.class, new NullProgressMonitor());
- return props.getWelcomePageUrl();
+
+ private boolean isWebModule(IModule module) {
+ IModuleType type = module.getModuleType();
+ return "jst.web".equals(type.getId()); //$NON-NLS-1$
}
-}
+
+ /*
+ * (non-Javadoc)
+ * @see
org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
+ */
+ @Override
+ public void fillContextMenu(IMenuManager menu) {
+ if( getModuleServer() != null || getServer()!=null ) {
+ IContributionItem menuItem = CommonActionProviderUtils.getShowInQuickMenu(menu,
true);
+ if (menuItem instanceof MenuManager) {
+ ((MenuManager) menuItem).add(action);
+ action.setEnabled(getUrl()!=null);
+ }
+ }
+ }
+
+ public IServer getServer() {
+ Object o = getSelection();
+ if (o instanceof IServer) {
+ return ((IServer)o);
+ }
+ if( o instanceof ModuleServer) {
+ return ((ModuleServer) o).server;
+ }
+ return null;
+ }
+
+ public ModuleServer getModuleServer() {
+ Object o = getSelection();
+ if(o instanceof ModuleServer) {
+ return ((ModuleServer) o);
+ }
+ return null;
+ }
+
+ protected Object getSelection() {
+ ICommonViewerSite site = actionSite.getViewSite();
+ IStructuredSelection selection = null;
+ if (site instanceof ICommonViewerWorkbenchSite) {
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
+ selection = (IStructuredSelection) wsSite.getSelectionProvider().getSelection();
+ if( selection.size() == 1 ) {
+ return selection.getFirstElement();
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/xpl/ExploreActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/xpl/ExploreActionProvider.java 2012-04-06
21:59:16 UTC (rev 40099)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/xpl/ExploreActionProvider.java 2012-04-09
17:14:21 UTC (rev 40100)
@@ -15,7 +15,9 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
@@ -27,13 +29,13 @@
import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.internal.cnf.ServerActionProvider;
import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
import org.jboss.ide.eclipse.as.core.publishers.LocalPublishMethod;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.util.ServerConverter;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
import org.jboss.ide.eclipse.as.ui.actions.ExploreUtils;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.CommonActionProviderUtils;
public class ExploreActionProvider extends CommonActionProvider {
public static interface IExploreBehavior {
public boolean canExplore(IServer server, IModule[] module);
@@ -123,15 +125,24 @@
}
public void fillContextMenu(IMenuManager menu) {
- String mode = getServer().getAttribute(IDeployableServer.SERVER_MODE,
LocalPublishMethod.LOCAL_PUBLISH_METHOD);
- IExploreBehavior beh = exploreBehaviorMap.get(mode);
- if( beh == null || !beh.canExplore(getServer(), getModuleServer() == null ? null :
getModuleServer().module))
- return;
- if( getModuleServer() != null )
- menu.insertBefore(ServerActionProvider.CONTROL_MODULE_SECTION_END_SEPARATOR,
exploreAction);
- else if( getServer() != null )
- menu.insertBefore(ServerActionProvider.SERVER_ETC_SECTION_END_SEPARATOR,
exploreAction);
- exploreAction.setEnabled(true);
+ IServer server = getServer();
+ if(server!=null) {
+ String mode = server.getAttribute(IDeployableServer.SERVER_MODE,
LocalPublishMethod.LOCAL_PUBLISH_METHOD);
+ IExploreBehavior beh = exploreBehaviorMap.get(mode);
+ if( beh == null || !beh.canExplore(getServer(), getModuleServer() == null ? null :
getModuleServer().module))
+ return;
+ if( getModuleServer() != null || getServer() != null ) {
+ IContributionItem menuItem = CommonActionProviderUtils.getShowInQuickMenu(menu,
true);
+ if (menuItem instanceof MenuManager) {
+ ((MenuManager) menuItem).add(exploreAction);
+ }
+ }
+ // if( getModuleServer() != null )
+ // menu.insertBefore(ServerActionProvider.CONTROL_MODULE_SECTION_END_SEPARATOR,
exploreAction);
+ // else if( getServer() != null )
+ // menu.insertBefore(ServerActionProvider.SERVER_ETC_SECTION_END_SEPARATOR,
exploreAction);
+ exploreAction.setEnabled(true);
+ }
}
public IServer getServer() {
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2012-04-06 21:59:16 UTC (rev
40099)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2012-04-09 17:14:21 UTC (rev
40100)
@@ -398,9 +398,14 @@
class="org.jboss.ide.eclipse.as.ui.views.server.extensions.ShowInWelcomePageActionProvider"
id="org.jboss.ide.eclipse.as.ui.extensions.welcomePage">
<enablement>
- <instanceof
- value="org.eclipse.wst.server.core.IServer">
- </instanceof>
+ <or>
+ <instanceof
+ value="org.eclipse.wst.server.core.IServer">
+ </instanceof>
+ <instanceof
+
value="org.eclipse.wst.server.ui.internal.view.servers.ModuleServer">
+ </instanceof>
+ </or>
</enablement>
</actionProvider>
<actionProvider