aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.monitor/src/com/android/ide/eclipse/monitor/MonitorApplication.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.monitor/src/com/android/ide/eclipse/monitor/MonitorApplication.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.monitor/src/com/android/ide/eclipse/monitor/MonitorApplication.java179
1 files changed, 0 insertions, 179 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.monitor/src/com/android/ide/eclipse/monitor/MonitorApplication.java b/eclipse/plugins/com.android.ide.eclipse.monitor/src/com/android/ide/eclipse/monitor/MonitorApplication.java
deleted file mode 100644
index 425786f6f..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.monitor/src/com/android/ide/eclipse/monitor/MonitorApplication.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.ide.eclipse.monitor;
-
-import com.android.ide.eclipse.monitor.SdkToolsLocator.SdkInstallStatus;
-import com.android.prefs.AndroidLocation;
-import com.android.sdklib.SdkManager;
-import com.android.sdkstats.SdkStatsService;
-import com.android.sdkuilib.internal.repository.ui.AdtUpdateDialog;
-import com.android.utils.ILogger;
-import com.android.utils.NullLogger;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-import java.io.File;
-
-public class MonitorApplication implements IApplication {
- private static final String SDK_PATH_ENVVAR = "com.android.sdk.path";
- private static final String MONITOR_WORKSPACE_PATH = "monitor-workspace";
-
- @Override
- public Object start(IApplicationContext context) throws Exception {
- Display display = PlatformUI.createDisplay();
-
- // set workspace location
- Location instanceLoc = Platform.getInstanceLocation();
- IPath workspacePath = new Path(AndroidLocation.getFolder()).append(MONITOR_WORKSPACE_PATH);
- instanceLoc.set(workspacePath.toFile().toURI().toURL(), true);
-
- // figure out path to SDK
- String sdkPath = findSdkPath(display);
- if (!isValidSdkLocation(sdkPath)) {
- // exit with return code -1
- return Integer.valueOf(-1);
- }
- MonitorPlugin.getDefault().setSdkFolder(new File(sdkPath));
-
- // install platform tools if necessary
- ILogger sdkLog = NullLogger.getLogger();
- SdkManager manager = SdkManager.createManager(sdkPath, sdkLog);
- if (manager.getPlatformToolsVersion() == null) {
- boolean install = MessageDialog.openQuestion(new Shell(display),
- "Monitor",
- "The platform tools package that provides adb is missing from your SDK installation. "
- + "Monitor requires this package to work properly. Would you like to install that package now?");
- if (!install) {
- return Integer.valueOf(-1);
- }
- AdtUpdateDialog window = new AdtUpdateDialog(new Shell(display), sdkLog, sdkPath);
- window.installPlatformTools();
- }
-
- // If this is the first time using ddms or adt, open up the stats service
- // opt out dialog, and request user for permissions.
- // Note that the actual ping is performed in MonitorStartup
- SdkStatsService stats = new SdkStatsService();
- stats.checkUserPermissionForPing(new Shell(display));
-
- // open up RCP
- try {
- int returnCode = PlatformUI.createAndRunWorkbench(display,
- new MonitorWorkbenchAdvisor());
- if (returnCode == PlatformUI.RETURN_RESTART) {
- return IApplication.EXIT_RESTART;
- }
- return IApplication.EXIT_OK;
- } finally {
- display.dispose();
- }
- }
-
- @Override
- public void stop() {
- if (!PlatformUI.isWorkbenchRunning())
- return;
- final IWorkbench workbench = PlatformUI.getWorkbench();
- final Display display = workbench.getDisplay();
- display.syncExec(new Runnable() {
- @Override
- public void run() {
- if (!display.isDisposed())
- workbench.close();
- }
- });
- }
-
- private String findSdkPath(Display display) {
- // see if there is a system property set (passed in via a command line arg)
- String sdkLocation = System.getProperty(SDK_PATH_ENVVAR);
- if (isValidSdkLocation(sdkLocation)) {
- return sdkLocation;
- }
-
- // see if there is an environment variable set
- sdkLocation = System.getenv(SDK_PATH_ENVVAR);
- if (isValidSdkLocation(sdkLocation)) {
- return sdkLocation;
- }
-
- // The monitor app should be located in "<sdk>/tools/lib/monitor-platform/"
- // So see if the folder one level up from the install location is a valid SDK.
- Location install = Platform.getInstallLocation();
- if (install != null && install.getURL() != null) {
- File libFolder = new File(install.getURL().getFile()).getParentFile();
- if (libFolder != null) {
- String toolsFolder = libFolder.getParent();
- if (toolsFolder != null) {
- sdkLocation = new File(toolsFolder).getParent();
- if (isValidSdkLocation(sdkLocation)) {
- MonitorPlugin.getDdmsPreferenceStore().setLastSdkPath(sdkLocation);
- return sdkLocation;
- }
- }
-
- }
- }
-
- // check for the last used SDK
- sdkLocation = MonitorPlugin.getDdmsPreferenceStore().getLastSdkPath();
- if (isValidSdkLocation(sdkLocation)) {
- return sdkLocation;
- }
-
- // if nothing else works, prompt the user
- sdkLocation = getSdkLocationFromUser(new Shell(display));
- if (isValidSdkLocation(sdkLocation)) {
- MonitorPlugin.getDdmsPreferenceStore().setLastSdkPath(sdkLocation);
- }
-
- return sdkLocation;
- }
-
- private boolean isValidSdkLocation(String sdkLocation) {
- if (sdkLocation == null) {
- return false;
- }
-
- if (sdkLocation.trim().length() == 0) {
- return false;
- }
-
- SdkToolsLocator locator = new SdkToolsLocator(new File(sdkLocation));
- return locator.isValidInstallation() == SdkInstallStatus.VALID;
- }
-
- private String getSdkLocationFromUser(Shell shell) {
- SdkLocationChooserDialog dlg = new SdkLocationChooserDialog(shell);
- if (dlg.open() == Window.OK) {
- return dlg.getPath();
- } else {
- return null;
- }
- }
-}