diff options
| author | Xavier Ducrohet <xav@android.com> | 2009-06-30 06:38:30 -0700 |
|---|---|---|
| committer | Xavier Ducrohet <xav@android.com> | 2009-06-30 06:38:30 -0700 |
| commit | e78015c12dc2598a466eec76aa57f72280e09bcf (patch) | |
| tree | 598cbfa5b584091d7a41b52fa81170d57ef605dd | |
| parent | a944e34f1cc350366d312bbfaec3f4377533e632 (diff) | |
| download | android_development-e78015c12dc2598a466eec76aa57f72280e09bcf.tar.gz android_development-e78015c12dc2598a466eec76aa57f72280e09bcf.tar.bz2 android_development-e78015c12dc2598a466eec76aa57f72280e09bcf.zip | |
Plug the Android SDK window as the AVD manager.
- the "manager" button on the AVD selector (when not in manager
will open the Android SDK window
- the AVD manager in the eclipse toolsbar open the Android SDK
window as well.
Still left to do:
- remove the now obsolete AVD wizard
- figure out what to do with the other pages.
5 files changed, 65 insertions, 13 deletions
diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java index 61cfa744d..4a7d918dd 100755 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java @@ -4,7 +4,7 @@ * 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
@@ -16,19 +16,48 @@ package com.android.ide.eclipse.adt.internal.wizards.actions;
-import com.android.ide.eclipse.adt.internal.wizards.avdmanager.AvdManagerWizard;
+import com.android.ide.eclipse.adt.AdtPlugin;
+import com.android.ide.eclipse.adt.internal.sdk.Sdk;
+import com.android.sdkuilib.repository.UpdaterWindow;
import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IWorkbenchWizard;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
/**
* Delegate for the toolbar/menu action "Android AVD Manager".
* It displays the Android AVD Manager.
*/
-public class AvdManagerAction extends OpenWizardAction {
+public class AvdManagerAction implements IWorkbenchWindowActionDelegate, IObjectActionDelegate {
+
+ public void dispose() {
+ // nothing to dispose.
+ }
+
+ public void init(IWorkbenchWindow window) {
+ // no init
+ }
+
+ public void run(IAction action) {
+ Sdk sdk = Sdk.getCurrent();
+ if (sdk != null) {
+ UpdaterWindow window = new UpdaterWindow(
+ AdtPlugin.getDisplay().getActiveShell(),
+ null /*sdk log*/,
+ sdk.getSdkLocation(),
+ false /*userCanChangeSdkRoot*/);
+ window.open();
+ }
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ // nothing related to the current selection.
+ }
- @Override
- protected IWorkbenchWizard instanciateWizard(IAction action) {
- return new AvdManagerWizard();
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ // nothing to do.
}
}
diff --git a/tools/sdkmanager/app/src/com/android/sdkmanager/Main.java b/tools/sdkmanager/app/src/com/android/sdkmanager/Main.java index d90d2960e..adbb18a9d 100644 --- a/tools/sdkmanager/app/src/com/android/sdkmanager/Main.java +++ b/tools/sdkmanager/app/src/com/android/sdkmanager/Main.java @@ -243,6 +243,7 @@ class Main { System.out.printf("No command line parameters provided, launching UI.\n" + "See 'android --help' for operations from the command line.\n"); UpdaterWindow window = new UpdaterWindow( + null /* parentShell */, mSdkLog, mOsSdkFolder, false /*userCanChangeSdkRoot*/); diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java index 7d9a159f4..5c47b7cab 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java @@ -46,6 +46,7 @@ import java.util.ArrayList; */
public class UpdaterWindowImpl {
+ private final Shell mParentShell;
/** Internal data shared between the window and its pages. */
private final UpdaterData mUpdaterData;
/** The array of pages instances. Only one is visible at a time. */
@@ -70,7 +71,9 @@ public class UpdaterWindowImpl { private AvdManagerPage mAvdManagerPage;
private StackLayout mStackLayout;
- public UpdaterWindowImpl(ISdkLog sdkLog, String osSdkRoot, boolean userCanChangeSdkRoot) {
+ public UpdaterWindowImpl(Shell parentShell, ISdkLog sdkLog, String osSdkRoot,
+ boolean userCanChangeSdkRoot) {
+ mParentShell = parentShell;
mUpdaterData = new UpdaterData(osSdkRoot, sdkLog);
mUpdaterData.setUserCanChangeSdkRoot(userCanChangeSdkRoot);
}
@@ -80,7 +83,9 @@ public class UpdaterWindowImpl { * @wbp.parser.entryPoint
*/
public void open() {
- Display.setAppName("Android"); //$hide$ (hide from SWT designer)
+ if (mParentShell == null) {
+ Display.setAppName("Android"); //$hide$ (hide from SWT designer)
+ }
createContents();
mAndroidSdkUpdater.open();
@@ -102,7 +107,7 @@ public class UpdaterWindowImpl { * Create contents of the window.
*/
protected void createContents() {
- mAndroidSdkUpdater = new Shell();
+ mAndroidSdkUpdater = new Shell(mParentShell);
mAndroidSdkUpdater.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
onAndroidSdkUpdaterDispose(); //$hide$ (hide from SWT designer)
@@ -251,6 +256,10 @@ public class UpdaterWindowImpl { */
@SuppressWarnings("unchecked")
private void addExtraPages() {
+ if (mExtraPages == null) {
+ return;
+ }
+
for (Object[] extraPage : mExtraPages) {
String title = (String) extraPage[0];
Class<? extends Composite> clazz = (Class<? extends Composite>) extraPage[1];
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java index 35557d65d..b947add5c 100644 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java @@ -23,6 +23,7 @@ import com.android.sdklib.internal.avd.AvdManager; import com.android.sdklib.internal.avd.AvdManager.AvdInfo; import com.android.sdklib.internal.avd.AvdManager.AvdInfo.AvdStatus; import com.android.sdkuilib.internal.repository.icons.ImageFactory; +import com.android.sdkuilib.repository.UpdaterWindow; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.window.Window; @@ -252,7 +253,7 @@ public final class AvdSelector { mManagerButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - super.widgetSelected(e); + onManager(); } }); } @@ -707,6 +708,16 @@ public final class AvdSelector { } } + private void onManager() { + UpdaterWindow window = new UpdaterWindow( + mTable.getShell(), + null /*sdk log*/, + mAvdManager.getSdkManager().getLocation(), + false /*userCanChangeSdkRoot*/); + window.open(); + refresh(true /*reload*/); // UpdaterWindow uses its own AVD manager so this one must reload. + } + /** * Collects all log from the AVD action and displays it in a dialog. */ diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java index 8ca332413..9c4701309 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java @@ -20,6 +20,7 @@ import com.android.sdklib.ISdkLog; import com.android.sdkuilib.internal.repository.UpdaterWindowImpl;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
/**
* Opens an SDK Updater Window.
@@ -37,8 +38,9 @@ public class UpdaterWindow { * @param userCanChangeSdkRoot If true, the window lets the user change the SDK path
* being browsed.
*/
- public UpdaterWindow(ISdkLog sdkLog, String osSdkRoot, boolean userCanChangeSdkRoot) {
- mWindow = new UpdaterWindowImpl(sdkLog, osSdkRoot, userCanChangeSdkRoot);
+ public UpdaterWindow(Shell parentShell, ISdkLog sdkLog, String osSdkRoot,
+ boolean userCanChangeSdkRoot) {
+ mWindow = new UpdaterWindowImpl(parentShell, sdkLog, osSdkRoot, userCanChangeSdkRoot);
}
/**
|
