aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/FixLaunchConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/FixLaunchConfig.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/FixLaunchConfig.java156
1 files changed, 0 insertions, 156 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/FixLaunchConfig.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/FixLaunchConfig.java
deleted file mode 100644
index e311bfb0b..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/FixLaunchConfig.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php
- *
- * 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.adt.internal.project;
-
-import com.android.ide.eclipse.adt.AdtPlugin;
-import com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-
-import java.util.ArrayList;
-
-/**
- * Class to fix the launch configuration of a project if the java package
- * defined in the manifest has been changed.<br>
- * This fix can be done synchronously, or asynchronously.<br>
- * <code>start()</code> will start a thread that will do the fix.<br>
- * <code>run()</code> will do the fix in the current thread.<br><br>
- * By default, the fix first display a dialog to the user asking if he/she wants to
- * do the fix. This can be overriden by calling <code>setDisplayPrompt(false)</code>.
- *
- */
-public class FixLaunchConfig extends Thread {
-
- private IProject mProject;
- private String mOldPackage;
- private String mNewPackage;
-
- private boolean mDisplayPrompt = true;
-
- public FixLaunchConfig(IProject project, String oldPackage, String newPackage) {
- super();
-
- mProject = project;
- mOldPackage = oldPackage;
- mNewPackage = newPackage;
- }
-
- /**
- * Set the display prompt. If true run()/start() first ask the user if he/she wants
- * to fix the Launch Config
- * @param displayPrompt
- */
- public void setDisplayPrompt(boolean displayPrompt) {
- mDisplayPrompt = displayPrompt;
- }
-
- /**
- * Fix the Launch configurations.
- */
- @Override
- public void run() {
-
- if (mDisplayPrompt) {
- // ask the user if he really wants to fix the launch config
- boolean res = AdtPlugin.displayPrompt(
- "Launch Configuration Update",
- "The package definition in the manifest changed.\nDo you want to update your Launch Configuration(s)?");
-
- if (res == false) {
- return;
- }
- }
-
- // get the list of config for the project
- String projectName = mProject.getName();
- ILaunchConfiguration[] configs = findConfigs(mProject.getName());
-
- // loop through all the config and update the package
- for (ILaunchConfiguration config : configs) {
- try {
- // get the working copy so that we can make changes.
- ILaunchConfigurationWorkingCopy copy = config.getWorkingCopy();
-
- // get the attributes for the activity
- String activity = config.getAttribute(LaunchConfigDelegate.ATTR_ACTIVITY,
- ""); //$NON-NLS-1$
-
- // manifests can define activities that are not in the defined package,
- // so we need to make sure the activity is inside the old package.
- if (activity.startsWith(mOldPackage)) {
- // create the new activity
- activity = mNewPackage + activity.substring(mOldPackage.length());
-
- // put it in the copy
- copy.setAttribute(LaunchConfigDelegate.ATTR_ACTIVITY, activity);
-
- // save the config
- copy.doSave();
- }
- } catch (CoreException e) {
- // couldn't get the working copy. we output the error in the console
- String msg = String.format("Failed to modify %1$s: %2$s", projectName,
- e.getMessage());
- AdtPlugin.printErrorToConsole(mProject, msg);
- }
- }
-
- }
-
- /**
- * Looks for and returns all existing Launch Configuration object for a
- * specified project.
- * @param projectName The name of the project
- * @return all the ILaunchConfiguration object. If none are present, an empty array is
- * returned.
- */
- private static ILaunchConfiguration[] findConfigs(String projectName) {
- // get the launch manager
- ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-
- // now get the config type for our particular android type.
- ILaunchConfigurationType configType = manager.
- getLaunchConfigurationType(LaunchConfigDelegate.ANDROID_LAUNCH_TYPE_ID);
-
- // create a temp list to hold all the valid configs
- ArrayList<ILaunchConfiguration> list = new ArrayList<ILaunchConfiguration>();
-
- try {
- ILaunchConfiguration[] configs = manager.getLaunchConfigurations(configType);
-
- for (ILaunchConfiguration config : configs) {
- if (config.getAttribute(
- IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME,
- "").equals(projectName)) { //$NON-NLS-1$
- list.add(config);
- }
- }
- } catch (CoreException e) {
- }
-
- return list.toArray(new ILaunchConfiguration[list.size()]);
-
- }
-
-}