diff options
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.java | 156 |
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()]); - - } - -} |