diff options
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.java | 179 |
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; - } - } -} |