Index: plugin.xml
===================================================================
--- plugin.xml	(revision 40076)
+++ plugin.xml	(working copy)
@@ -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
Index: jbossui/org/jboss/tools/as/wst/server/ui/xpl/ExploreActionProvider.java
===================================================================
--- jbossui/org/jboss/tools/as/wst/server/ui/xpl/ExploreActionProvider.java	(revision 40076)
+++ jbossui/org/jboss/tools/as/wst/server/ui/xpl/ExploreActionProvider.java	(working copy)
@@ -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() {
Index: jbossui/org/jboss/ide/eclipse/as/ui/actions/ServerActionMessages.java
===================================================================
--- jbossui/org/jboss/ide/eclipse/as/ui/actions/ServerActionMessages.java	(revision 40076)
+++ jbossui/org/jboss/ide/eclipse/as/ui/actions/ServerActionMessages.java	(working copy)
@@ -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;
 }
Index: jbossui/org/jboss/ide/eclipse/as/ui/actions/messages.properties
===================================================================
--- jbossui/org/jboss/ide/eclipse/as/ui/actions/messages.properties	(revision 40076)
+++ jbossui/org/jboss/ide/eclipse/as/ui/actions/messages.properties	(working copy)
@@ -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
Index: jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/CommonActionProviderUtils.java
===================================================================
--- jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/CommonActionProviderUtils.java	(revision 40076)
+++ jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/CommonActionProviderUtils.java	(working copy)
@@ -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);
Index: jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java
===================================================================
--- jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java	(revision 40076)
+++ jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java	(working copy)
@@ -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 {
+
+	private Action action;
+	private ICommonActionExtensionSite actionSite;
+
+	/*
+	 * (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());
+			}
+		}
+	}
 
-public class ShowInWelcomePageActionProvider extends AbstractOpenBrowserServerAction {
+	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 static String WELCOME_PAGE_URL_PATTERN = "http://{0}:{1}/"; //$NON-NLS-1$
-	protected String getActionText() {
-		return Messages.ShowInWelcomePage_Action_Text;
+	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 urlString;
 	}
-	
-	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;
+
+	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 false;
+		return null;
 	}
 
-	protected boolean accepts(IServer server) {
-		return server.getServerState() == IServer.STATE_STARTED;
+	private boolean isWebModule(IModule module) {
+		IModuleType type = module.getModuleType();
+		return "jst.web".equals(type.getId()); //$NON-NLS-1$
 	}
-	
-	protected String getURL(IServer server) throws CoreException {
-		ServerExtendedProperties props = (ServerExtendedProperties)
-				server.loadAdapter(ServerExtendedProperties.class, new NullProgressMonitor());
-		return props.getWelcomePageUrl();
+
+	/*
+	 * (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
Index: jbossui/org/jboss/ide/eclipse/as/ui/Messages.properties
===================================================================
--- jbossui/org/jboss/ide/eclipse/as/ui/Messages.properties	(revision 40076)
+++ jbossui/org/jboss/ide/eclipse/as/ui/Messages.properties	(working copy)
@@ -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
Index: META-INF/MANIFEST.MF
===================================================================
--- META-INF/MANIFEST.MF	(revision 40076)
+++ META-INF/MANIFEST.MF	(working copy)
@@ -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,
