org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/wizards/deploy/DeployWizard.java
--- a/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/wizards/deploy/DeployWizard.java Mon Jun 07 13:48:20 2010 -0700
+++ b/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/wizards/deploy/DeployWizard.java Mon Jun 07 14:58:15 2010 -0700
@@ -18,57 +18,12 @@
*/
package org.symbian.tools.wrttools.wizards.deploy;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.wizard.Wizard;
-import org.symbian.tools.wrttools.Activator;
import org.symbian.tools.wrttools.WRTProject;
-import org.symbian.tools.wrttools.core.deployer.DeployException;
-import org.symbian.tools.wrttools.core.deployer.IWidgetDeployer;
-import org.symbian.tools.wrttools.core.packager.WrtPackageActionDelegate;
-import org.symbian.tools.wrttools.core.status.IWRTStatusListener;
-import org.symbian.tools.wrttools.core.status.WRTStatus;
-import org.symbian.tools.wrttools.sdt.utils.Logging;
-import org.symbian.tools.wrttools.util.ProjectUtils;
+import org.symbian.tools.wrttools.core.deploy.DeployJob;
public class DeployWizard extends Wizard {
- public class PagePrinter implements IWRTStatusListener {
- private final DeploymentSummaryWizardPage page;
-
- public PagePrinter(DeploymentSummaryWizardPage summaryPage) {
- page = summaryPage;
- }
-
- public void emitStatus(WRTStatus status) {
- page.log(status.getStatusDescription().toString());
- }
-
- public boolean isStatusHandled(WRTStatus status) {
- return true;
- }
-
- public void close() {
- // Do nothing
- }
-
- public boolean canPackageWithErrors(IProject project) {
- return ProjectUtils.canPackageWithErrors(project);
- }
-
- }
-
private final DeployWizardContext context;
- private final DeploymentSummaryWizardPage summaryPage = new DeploymentSummaryWizardPage();
private final WRTProject project;
public DeployWizard(WRTProject project) {
@@ -81,13 +36,10 @@
@Override
public void addPages() {
addPage(new DeploymentTargetWizardPage(context, project.getDeploymentTarget()));
- addPage(summaryPage);
}
@Override
public boolean performFinish() {
- summaryPage.clear();
- getContainer().showPage(summaryPage);
return deploy();
}
@@ -101,75 +53,8 @@
*/
private boolean deploy() {
DeploymentTarget target = context.getTarget();
- DeployJob job = new DeployJob(context.getProject(), target);
- try {
- getContainer().run(true, true, job);
- } catch (InvocationTargetException e) {
- Activator.log(e);
- } catch (InterruptedException e) {
- Activator.log(e);
- }
- return job.isSuccessful();
- }
-
- private final class DeployJob implements IRunnableWithProgress {
- private final DeploymentTarget target;
- private final WrtPackageActionDelegate packagerAction = new WrtPackageActionDelegate();
- private final IProject project;
- private boolean successful = false;
-
- private DeployJob(IProject project, DeploymentTarget deploymentTarget) {
- this.project = project;
- this.target = deploymentTarget;
- }
-
- public boolean isSuccessful() {
- return successful;
- }
-
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- IWRTStatusListener statusListener = new PagePrinter(summaryPage);
- IWidgetDeployer wd = target.createDeployer(statusListener);
-
- IStatus result = new Status(IStatus.OK, Activator.PLUGIN_ID, 0, "", null);
-
- if (project != null) {
- /* package the files before deployment */
- boolean packageSuccess = packagerAction.packageProject(project, statusListener);
- if (!packageSuccess) {
- return;
- }
- String packagedPath;
- try {
- IPath wgzPath = new Path(project.getName() + ".wgz");
- IFile wgz = project.getFile(wgzPath);
- packagedPath = wgz.getLocation().toFile().getCanonicalFile().toString();
- try {
- result = wd.deploy(packagedPath, target.getName(), monitor);
- if (result.isOK()) {
- DeployWizard.this.project.setDeploymentTarget(target);
- successful = true;
- signalDeploymentComplete(target);
- }
- } catch (DeployException e) {
- result = new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getMessage(), e);
- Logging.log(Activator.getDefault(), result);
- }
- } catch (IOException e) {
- Activator.log(IStatus.ERROR, "Error deploying widget", e);
- }
- }
- }
-
- }
-
- private void signalDeploymentComplete(final DeploymentTarget target) {
- if (target.getDeployMessage() != null) {
- getShell().getDisplay().asyncExec(new Runnable() {
- public void run() {
- MessageDialog.openWarning(getShell(), "WRT Application Deployment", target.getDeployMessage());
- }
- });
- }
+ DeployJob job = new DeployJob(project, target);
+ job.schedule();
+ return true;
}
}