Author: rob.stryker(a)jboss.com
Date: 2012-04-19 18:12:50 -0400 (Thu, 19 Apr 2012)
New Revision: 40361
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/RecentlyUpdatedServerLaunches.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DelegatingServerBehavior.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.ui/src/org/jboss/ide/eclipse/as/rse/ui/RSEUIPlugin.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBoss7LaunchConfigurationTabGroup.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBossLaunchConfigurationTabGroup.java
Log:
JBIDE-11587
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DelegatingServerBehavior.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DelegatingServerBehavior.java 2012-04-19
21:56:35 UTC (rev 40360)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DelegatingServerBehavior.java 2012-04-19
22:12:50 UTC (rev 40361)
@@ -127,6 +127,7 @@
*/
public void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy workingCopy,
IProgressMonitor monitor) throws CoreException {
new DelegatingStartLaunchConfiguration().setupLaunchConfiguration(workingCopy,
getServer());
+ RecentlyUpdatedServerLaunches.getDefault().setRecentServer(getServer());
}
public void setRunMode(String mode) {
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/RecentlyUpdatedServerLaunches.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/RecentlyUpdatedServerLaunches.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/RecentlyUpdatedServerLaunches.java 2012-04-19
22:12:50 UTC (rev 40361)
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.core.server.internal;
+
+import org.eclipse.wst.server.core.IServer;
+
+/**
+ * This is a complete hack of a class designed to get around
+ * the restrictions in UI on launch tab groups.
+ *
+ * A tab group provider cannot adjust which tabs to show based on the
+ * launch configuration, because it does not yet know the launch configuration.
+ *
+ * This class is a gigantic hack to have the server behaviours cache themselves here
+ * after setting up their launch config. In the use case of someone clicking the
+ * "show launch configuration" hyperlink, this cache can be accessed.
+ *
+ */
+public class RecentlyUpdatedServerLaunches {
+ private static RecentlyUpdatedServerLaunches instance = null;
+ public static RecentlyUpdatedServerLaunches getDefault() {
+ if( instance == null )
+ instance = new RecentlyUpdatedServerLaunches();
+ return instance;
+ }
+
+ private IServer recentServer;
+ public void setRecentServer(IServer server) {
+ this.recentServer = server;
+ }
+ public IServer getRecentServer() {
+ return recentServer;
+ }
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java 2012-04-19
21:56:35 UTC (rev 40360)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/DelegatingJBoss7ServerBehavior.java 2012-04-19
22:12:50 UTC (rev 40361)
@@ -53,13 +53,6 @@
private IDebugEventSetListener serverProcessListener;
private PollThread pollThread;
- @Override
- public void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy launchConfig,
IProgressMonitor monitor)
- throws CoreException {
- // TODO: implement setup for RSE launch delegate too
- new DelegatingStartLaunchConfiguration().setupLaunchConfiguration(launchConfig,
getServer());
- }
-
public void setProcess(IProcess process) {
this.serverProcess = process;
initDebugListener(process);
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.ui/src/org/jboss/ide/eclipse/as/rse/ui/RSEUIPlugin.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.ui/src/org/jboss/ide/eclipse/as/rse/ui/RSEUIPlugin.java 2012-04-19
21:56:35 UTC (rev 40360)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.rse.ui/src/org/jboss/ide/eclipse/as/rse/ui/RSEUIPlugin.java 2012-04-19
22:12:50 UTC (rev 40361)
@@ -41,8 +41,8 @@
context = bundleContext;
plugin = this;
DeploymentModuleOptionCompositeAssistant.addMapping(RSEPublishMethod.RSE_ID, new
RSEDeploymentPageCallback());
- JBossLaunchConfigurationTabGroup.addTabProvider(new RSELaunchTabProvider());
- JBoss7LaunchConfigurationTabGroup.addTabProvider(new RSELaunchTabProvider());
+ JBossLaunchConfigurationTabGroup.addTabProvider(RSEPublishMethod.RSE_ID, new
RSELaunchTabProvider());
+ JBoss7LaunchConfigurationTabGroup.addTabProvider(RSEPublishMethod.RSE_ID, new
RSELaunchTabProvider());
consoleWriter = new JBASConsoleWriter();
RSEHostShellModel.getInstance().addHostShellListener(consoleWriter);
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBoss7LaunchConfigurationTabGroup.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBoss7LaunchConfigurationTabGroup.java 2012-04-19
21:56:35 UTC (rev 40360)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBoss7LaunchConfigurationTabGroup.java 2012-04-19
22:12:50 UTC (rev 40361)
@@ -11,13 +11,14 @@
package org.jboss.ide.eclipse.as.ui.launch;
import java.util.ArrayList;
+import java.util.HashMap;
import org.eclipse.debug.ui.CommonTab;
import org.eclipse.debug.ui.EnvironmentTab;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
import org.eclipse.debug.ui.sourcelookup.SourceLookupTab;
-import org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab;
import org.eclipse.jdt.debug.ui.launchConfigurations.JavaClasspathTab;
+import org.jboss.ide.eclipse.as.core.publishers.LocalPublishMethod;
/**
*
@@ -26,13 +27,21 @@
*/
public class JBoss7LaunchConfigurationTabGroup extends JBossLaunchConfigurationTabGroup
{
- public static ArrayList<IJBossLaunchTabProvider> providers7 =
- new ArrayList<IJBossLaunchTabProvider>();
+ public static HashMap<String, ArrayList<IJBossLaunchTabProvider>> providers7
=
+ new HashMap<String, ArrayList<IJBossLaunchTabProvider>>();
static {
- providers7.add(new JBoss7StandardTabProvider());
+ ArrayList<IJBossLaunchTabProvider> l = new
ArrayList<IJBossLaunchTabProvider>();
+ l.add(new JBoss7StandardTabProvider());
+ providers7.put(LocalPublishMethod.LOCAL_PUBLISH_METHOD, l);
}
- public static void addTabProvider(IJBossLaunchTabProvider provider) {
- providers7.add(provider);
+
+ public static void addTabProvider(String behavior, IJBossLaunchTabProvider provider) {
+ ArrayList<IJBossLaunchTabProvider> l = providers7.get(behavior);
+ if( l == null ) {
+ l = l == null ? new ArrayList<IJBossLaunchTabProvider>() : l;
+ providers7.put(behavior, l);
+ }
+ l.add(provider);
}
public static class JBoss7StandardTabProvider implements IJBossLaunchTabProvider {
@@ -49,7 +58,7 @@
}
}
- public ArrayList<IJBossLaunchTabProvider> getProviderList() {
- return providers7;
+ public ArrayList<IJBossLaunchTabProvider> getProvider(String type) {
+ return providers7.get(type) == null ? new ArrayList<IJBossLaunchTabProvider>() :
providers7.get(type);
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBossLaunchConfigurationTabGroup.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBossLaunchConfigurationTabGroup.java 2012-04-19
21:56:35 UTC (rev 40360)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/JBossLaunchConfigurationTabGroup.java 2012-04-19
22:12:50 UTC (rev 40361)
@@ -11,6 +11,7 @@
package org.jboss.ide.eclipse.as.ui.launch;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import org.eclipse.core.runtime.CoreException;
@@ -35,7 +36,11 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.publishers.LocalPublishMethod;
+import org.jboss.ide.eclipse.as.core.server.internal.RecentlyUpdatedServerLaunches;
import org.jboss.ide.eclipse.as.core.util.ArgsUtil;
+import org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
import org.jboss.ide.eclipse.as.ui.xpl.JavaMainTabClone;
@@ -60,13 +65,21 @@
public static interface IJBossLaunchTabProvider {
public ILaunchConfigurationTab[] createTabs();
}
- public static ArrayList<IJBossLaunchTabProvider> providers =
- new ArrayList<IJBossLaunchTabProvider>();
+ public static HashMap<String, ArrayList<IJBossLaunchTabProvider>> providers
=
+ new HashMap<String, ArrayList<IJBossLaunchTabProvider>>();
static {
- providers.add(new JBossStandardTabProvider());
+ ArrayList<IJBossLaunchTabProvider> l = new
ArrayList<IJBossLaunchTabProvider>();
+ l.add(new JBossStandardTabProvider());
+ providers.put(LocalPublishMethod.LOCAL_PUBLISH_METHOD, l);
}
- public static void addTabProvider(IJBossLaunchTabProvider provider) {
- providers.add(provider);
+
+ public static void addTabProvider(String behaviorType, IJBossLaunchTabProvider provider)
{
+ ArrayList<IJBossLaunchTabProvider> l = providers.get(behaviorType);
+ if( l == null ) {
+ l = l == null ? new ArrayList<IJBossLaunchTabProvider>() : l;
+ providers.put(behaviorType, l);
+ }
+ l.add(provider);
}
public static class JBossStandardTabProvider implements IJBossLaunchTabProvider {
@@ -83,12 +96,17 @@
}
}
- public ArrayList<IJBossLaunchTabProvider> getProviderList() {
- return providers;
+ public ArrayList<IJBossLaunchTabProvider> getProvider(String type) {
+ return providers.get(type) == null ? new ArrayList<IJBossLaunchTabProvider>() :
providers.get(type);
}
public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
- Iterator<IJBossLaunchTabProvider> i = getProviderList().iterator();
+ IServer s = RecentlyUpdatedServerLaunches.getDefault().getRecentServer();
+ String behaviorType = s == null ? LocalPublishMethod.LOCAL_PUBLISH_METHOD :
+ DeploymentPreferenceLoader.getCurrentDeploymentMethodType(s,
LocalPublishMethod.LOCAL_PUBLISH_METHOD).getId();
+ ArrayList<IJBossLaunchTabProvider> p = getProvider(behaviorType);
+
+ Iterator<IJBossLaunchTabProvider> i = p.iterator();
ArrayList<ILaunchConfigurationTab> tabs = new
ArrayList<ILaunchConfigurationTab>();
while(i.hasNext()) {
ILaunchConfigurationTab[] tabs2 = i.next().createTabs();