Author: rob.stryker(a)jboss.com
Date: 2010-01-26 02:52:47 -0500 (Tue, 26 Jan 2010)
New Revision: 19922
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/FullPublishToServerWizard.java
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/export/
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/plugin.xml
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/commands/FullPublishCommandHandler.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportDataModelProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportWizard.java
Log:
JBIDE-5690 - added ui for full publish hotkey, renamed package to xpl
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/plugin.xml 2010-01-25 22:51:05 UTC
(rev 19921)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/plugin.xml 2010-01-26 07:52:47 UTC
(rev 19922)
@@ -76,7 +76,7 @@
point="org.eclipse.ui.exportWizards">
<wizard
category="org.eclipse.jst.j2ee.internal"
-
class="org.jboss.ide.eclipse.as.wtp.ui.wizards.export.ProjectModuleExportWizard"
+
class="org.jboss.ide.eclipse.as.wtp.ui.wizards.xpl.export.ProjectModuleExportWizard"
icon="$nl$/icons/jar_obj.gif"
id="org.jboss.ide.eclipse.as.wtp.ui.wizards.export.ProjectModuleExportWizard"
name="Module Archive">
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/commands/FullPublishCommandHandler.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/commands/FullPublishCommandHandler.java 2010-01-25
22:51:05 UTC (rev 19921)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/commands/FullPublishCommandHandler.java 2010-01-26
07:52:47 UTC (rev 19922)
@@ -17,15 +17,28 @@
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.IHandlerListener;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.debug.internal.ui.stringsubstitution.SelectedResourceManager;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IModuleArtifact;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.ServerUtil;
import org.eclipse.wst.server.core.internal.PublishServerJob;
import org.eclipse.wst.server.core.internal.Server;
import org.eclipse.wst.server.core.internal.ServerPlugin;
+import org.eclipse.wst.server.core.util.NullModuleArtifact;
import org.jboss.ide.eclipse.as.wtp.core.util.ServerModelUtilities;
+import org.jboss.ide.eclipse.as.wtp.ui.wizards.xpl.export.FullPublishToServerWizard;
public class FullPublishCommandHandler implements IHandler {
@@ -40,20 +53,24 @@
}
public Object execute(ExecutionEvent event) throws ExecutionException {
- // go around in a circle to avoid plugin dependence on debug.ui
- IResource resource = SelectedResourceManager.getDefault().getSelectedResource();
- IModule module = getModule(resource);
- Server server = (Server)getServer(module);
- if( module != null && server != null ) {
- IModule[] module2 = new IModule[]{module};
- server.setModulePublishState(module2, IServer.PUBLISH_STATE_FULL);
- ArrayList<IModule[]> allChildren = ServerModelUtilities.getDeepChildren(server,
module2);
- for( int j = 0; j < allChildren.size(); j++ ) {
- server.setModulePublishState((IModule[])allChildren.get(j),
IServer.PUBLISH_STATE_FULL);
+ try {
+ // go around in a circle to avoid plugin dependence on debug.ui
+ IResource resource = SelectedResourceManager.getDefault().getSelectedResource();
+ IModule module = getModule(resource);
+ IServer server = getServer(module, new NullModuleArtifact(module), new
NullProgressMonitor());
+ if( module != null && server != null ) {
+ IModule[] module2 = new IModule[]{module};
+ ((Server)server).setModulePublishState(module2, IServer.PUBLISH_STATE_FULL);
+ ArrayList<IModule[]> allChildren = ServerModelUtilities.getDeepChildren(server,
module2);
+ for( int j = 0; j < allChildren.size(); j++ ) {
+ ((Server)server).setModulePublishState((IModule[])allChildren.get(j),
IServer.PUBLISH_STATE_FULL);
+ }
+ new PublishServerJob(server, IServer.PUBLISH_INCREMENTAL, true).schedule();
}
+ return null;
+ } catch( CoreException ce) {
+ throw new ExecutionException(ce.getMessage(), ce.getStatus().getException());
}
- new PublishServerJob(server, IServer.PUBLISH_INCREMENTAL, true).schedule();
- return null;
}
public IServer getServer(IModule module) {
@@ -82,19 +99,81 @@
protected IModule getModule(IResource resource) {
IModule module = null;
+ ArrayList<IModule> possibleModules = new ArrayList<IModule>();
if (resource != null) {
IModuleArtifact[] moduleArtifacts = ServerPlugin.getModuleArtifacts(resource);
- IModuleArtifact moduleArtifact = null;
if (moduleArtifacts != null && moduleArtifacts.length > 0)
- moduleArtifact = moduleArtifacts[0];
+ for( int i = 0; i < moduleArtifacts.length; i++ )
+ if( moduleArtifacts[i].getModule() != null &&
+ !possibleModules.contains(moduleArtifacts[i].getModule()))
+ possibleModules.add(moduleArtifacts[i].getModule());
+ if( possibleModules.size() > 0 ) {
+ module = promptForModule(possibleModules);
+ }
+ }
+ return module;
+ }
+
+ protected IModule promptForModule(ArrayList<IModule> modules) {
+ if(modules.size() == 1 )
+ return modules.get(0);
+ // TODO prompt
+ return modules.get(0);
+ }
+
+ public IServer getServer(IModule module, IModuleArtifact moduleArtifact,
IProgressMonitor monitor) throws CoreException {
+ IServer server = ServerCore.getDefaultServer(module);
+ if (server != null && !ServerUtil.containsModule(server, module, monitor)) {
+ IServerWorkingCopy wc = server.createWorkingCopy();
+ try {
+ ServerUtil.modifyModules(wc, new IModule[] { module }, new IModule[0], monitor);
+ wc.save(false, monitor);
+ } catch (CoreException ce) {
+ server = null;
+ }
+ }
+
+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+ if (server == null) {
+ // try the full wizard
+ FullPublishToServerWizard wizard = new FullPublishToServerWizard(module,
moduleArtifact);
+ WizardDialog dialog = new WizardDialog(shell, wizard);
+ if (dialog.open() == Window.CANCEL) {
+ if (monitor != null)
+ monitor.setCanceled(true);
+ return null;
+ }
- if (moduleArtifact != null)
- module = moduleArtifact.getModule();
+ try {
+ Job.getJobManager().join("org.eclipse.wst.server.ui.family", null);
+ } catch (Exception e) {
+ }
+ server = wizard.getServer();
+ boolean preferred = wizard.isPreferredServer();
+// tasksAndClientShown = true;
+// client = wizard.getSelectedClient();
+// launchableAdapter = wizard.getLaunchableAdapter();
+ // set preferred server if requested
+ if (server != null && preferred) {
+ try {
+ ServerCore.setDefaultServer(module, server, monitor);
+ } catch (CoreException ce) {
+ String message = "Could not save server preference information.";
+ ErrorDialog.openError(shell, "Server Error", message, ce.getStatus());
+ }
+ }
}
- return module;
+
+ try {
+ Job.getJobManager().join("org.eclipse.wst.server.ui.family", new
NullProgressMonitor());
+ } catch (Exception e) {
+ }
+
+ return server;
}
+
public boolean isEnabled() {
IResource resource = SelectedResourceManager.getDefault().getSelectedResource();
IModule module = getModule(resource);
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export
(from rev 18927,
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/export)
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/FullPublishToServerWizard.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/FullPublishToServerWizard.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/FullPublishToServerWizard.java 2010-01-26
07:52:47 UTC (rev 19922)
@@ -0,0 +1,59 @@
+package org.jboss.ide.eclipse.as.wtp.ui.wizards.xpl.export;
+
+import java.util.List;
+
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IModuleArtifact;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.TaskModel;
+import org.eclipse.wst.server.ui.internal.wizard.TaskWizard;
+import org.eclipse.wst.server.ui.internal.wizard.WizardTaskUtil;
+import org.eclipse.wst.server.ui.internal.wizard.fragment.ModifyModulesWizardFragment;
+import org.eclipse.wst.server.ui.internal.wizard.fragment.NewServerWizardFragment;
+import org.eclipse.wst.server.ui.internal.wizard.fragment.RunOnServerWizardFragment;
+import org.eclipse.wst.server.ui.internal.wizard.fragment.TasksWizardFragment;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
+
+public class FullPublishToServerWizard extends TaskWizard {
+
+ public FullPublishToServerWizard(IModule module, IModuleArtifact moduleArtifact) {
+ super("Full Publish To Server", createRootFragment(module, moduleArtifact));
+ getTaskModel().putObject(TaskModel.TASK_LAUNCH_MODE, "run");
+ setNeedsProgressMonitor(true);
+ }
+
+ public static WizardFragment createRootFragment(IModule module,IModuleArtifact artifact)
{
+ return new RunOnServerWizardFragment(module, null, artifact) {
+ protected void createChildFragments(List<WizardFragment> list) {
+ if (server == null) {
+ list.add(new NewServerWizardFragment(module));
+ list.add(WizardTaskUtil.TempSaveRuntimeFragment);
+ list.add(WizardTaskUtil.TempSaveServerFragment);
+ list.add(new ModifyModulesWizardFragment(module));
+ }
+ list.add(new TasksWizardFragment());
+ list.add(WizardTaskUtil.SaveRuntimeFragment);
+ list.add(WizardTaskUtil.SaveServerFragment);
+ if (server == null)
+ list.add(WizardTaskUtil.SaveHostnameFragment);
+ }
+ };
+ }
+
+ public IServer getServer() {
+ return (IServer) getTaskModel().getObject(TaskModel.TASK_SERVER);
+ }
+
+ public boolean isPreferredServer() {
+ try {
+ Boolean b = (Boolean) getTaskModel().getObject(WizardTaskUtil.TASK_DEFAULT_SERVER);
+ return b.booleanValue();
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ public boolean shouldAppear() {
+ return getServer() == null;
+ }
+}
\ No newline at end of file
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportDataModelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/export/ProjectModuleExportDataModelProvider.java 2009-11-30
17:40:03 UTC (rev 18927)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportDataModelProvider.java 2010-01-26
07:52:47 UTC (rev 19922)
@@ -8,7 +8,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.ide.eclipse.as.wtp.ui.wizards.export;
+package org.jboss.ide.eclipse.as.wtp.ui.wizards.xpl.export;
import java.util.ArrayList;
import java.util.HashMap;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/export/ProjectModuleExportPage.java 2009-11-30
17:40:03 UTC (rev 18927)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportPage.java 2010-01-26
07:52:47 UTC (rev 19922)
@@ -8,7 +8,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.ide.eclipse.as.wtp.ui.wizards.export;
+package org.jboss.ide.eclipse.as.wtp.ui.wizards.xpl.export;
import java.util.Iterator;
import java.util.Set;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportWizard.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/export/ProjectModuleExportWizard.java 2009-11-30
17:40:03 UTC (rev 18927)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.ui/src/org/jboss/ide/eclipse/as/wtp/ui/wizards/xpl/export/ProjectModuleExportWizard.java 2010-01-26
07:52:47 UTC (rev 19922)
@@ -8,7 +8,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.ide.eclipse.as.wtp.ui.wizards.export;
+package org.jboss.ide.eclipse.as.wtp.ui.wizards.xpl.export;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IExportWizard;