From b7eaa6fa023b868aa8154610c05801a94ed0afea Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Fri, 05 Jan 2007 14:04:45 +0000
Subject: [PATCH]
---
opends/src/quicksetup/org/opends/quicksetup/QuickSetup.java | 87 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 87 insertions(+), 0 deletions(-)
diff --git a/opends/src/quicksetup/org/opends/quicksetup/QuickSetup.java b/opends/src/quicksetup/org/opends/quicksetup/QuickSetup.java
index 7eedf95..aa6dc84 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/QuickSetup.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/QuickSetup.java
@@ -27,10 +27,12 @@
package org.opends.quicksetup;
+import java.io.File;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.Map;
import java.util.Set;
import javax.swing.SwingUtilities;
@@ -197,6 +199,10 @@
quitClicked();
break;
+ case CONTINUE_INSTALL:
+ continueInstallClicked();
+ break;
+
case PREVIOUS:
previousClicked();
break;
@@ -205,6 +211,10 @@
cancelClicked();
break;
+ case LAUNCH_STATUS_PANEL:
+ launchStatusPanelClicked();
+ break;
+
default:
throw new IllegalArgumentException("Unknown button name: "
+ ev.getButtonName());
@@ -557,6 +567,25 @@
}
/**
+ * Method called when user clicks 'Continue' button in the case where there
+ * is something installed.
+ */
+ private void continueInstallClicked()
+ {
+ Step cStep = getCurrentStep();
+ switch (cStep)
+ {
+ case WELCOME:
+ getDialog().forceToDisplaySetup();
+ setCurrentStep(Step.WELCOME);
+ break;
+ default:
+ throw new IllegalStateException(
+ "Continue only can be clicked on WELCOME step");
+ }
+ }
+
+ /**
* Method called when user clicks 'Close' button of the wizard.
*
*/
@@ -612,6 +641,64 @@
}
}
+ private void launchStatusPanelClicked()
+ {
+ BackgroundTask worker = new BackgroundTask()
+ {
+ public Object processBackgroundTask() throws UserInstallDataException
+ {
+ try
+ {
+ String cmd = Utils.isWindows()?"statuspanel.bat":"statuspanel";
+ String serverPath;
+ if (Utils.isWebStart())
+ {
+ serverPath = getUserInstallData().getServerLocation();
+ }
+ else
+ {
+ serverPath = Utils.getInstallPathFromClasspath();
+ }
+ cmd = Utils.getPath(serverPath, "bin"+File.separator+cmd);
+ ProcessBuilder pb = new ProcessBuilder(new String[]{cmd});
+ Map<String, String> env = pb.environment();
+ env.put("JAVA_HOME", System.getProperty("java.home"));
+ /* Remove JAVA_BIN to be sure that we use the JVM running the
+ * uninstaller JVM to stop the server.
+ */
+ env.remove("JAVA_BIN");
+ Process process = pb.start();
+ int returnValue = process.waitFor();
+
+ if (returnValue != 0)
+ {
+ throw new Error(getMsg("could-not-launch-status-panel-msg"));
+ }
+ }
+ catch (Throwable t)
+ {
+ // This looks like a bug
+ t.printStackTrace();
+ throw new Error(getMsg("could-not-launch-status-panel-msg"));
+ }
+ return null;
+ }
+
+ public void backgroundTaskCompleted(Object returnValue,
+ Throwable throwable)
+ {
+ getDialog().workerFinished();
+
+ if (throwable != null)
+ {
+ displayError(throwable.getMessage(), getMsg("error-title"));
+ }
+ }
+ };
+ getDialog().workerStarted();
+ worker.startBackgroundTask();
+ }
+
/**
* Method called when we want to quit the setup (for instance when the user
* clicks on 'Close' or 'Quit' buttons and has confirmed that (s)he wants to
--
Gitblit v1.10.0