diff options
104 files changed, 315 insertions, 203 deletions
diff --git a/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/AbstractWizardFixture.java b/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/AbstractWizardFixture.java index 9e6a6c6ae58..f1be948b1db 100644 --- a/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/AbstractWizardFixture.java +++ b/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/AbstractWizardFixture.java @@ -16,6 +16,7 @@ package com.android.tools.idea.tests.gui.framework.fixture.newProjectWizard; import com.android.tools.idea.tests.gui.framework.fixture.ComponentFixture; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; import org.fest.swing.core.GenericTypeMatcher; import org.fest.swing.core.Robot; import org.fest.swing.fixture.ContainerFixture; @@ -26,7 +27,7 @@ import javax.swing.*; import static com.android.tools.idea.tests.gui.framework.GuiTests.*; /** - * Base class for fixtures which control wizards that extend {@link com.android.tools.idea.wizard.DynamicWizard} + * Base class for fixtures which control wizards that extend {@link DynamicWizard} */ public abstract class AbstractWizardFixture<S> extends ComponentFixture<S, JDialog> implements ContainerFixture<JDialog> { diff --git a/android/src/com/android/tools/idea/avdmanager/AvdConfigurationOptionHelpPanel.java b/android/src/com/android/tools/idea/avdmanager/AvdConfigurationOptionHelpPanel.java index 349624ec0a9..18ef8ca434e 100644 --- a/android/src/com/android/tools/idea/avdmanager/AvdConfigurationOptionHelpPanel.java +++ b/android/src/com/android/tools/idea/avdmanager/AvdConfigurationOptionHelpPanel.java @@ -15,7 +15,7 @@ */ package com.android.tools.idea.avdmanager; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; diff --git a/android/src/com/android/tools/idea/avdmanager/AvdConfigurationPath.java b/android/src/com/android/tools/idea/avdmanager/AvdConfigurationPath.java index 4d0c87d142c..5390ca2e122 100644 --- a/android/src/com/android/tools/idea/avdmanager/AvdConfigurationPath.java +++ b/android/src/com/android/tools/idea/avdmanager/AvdConfigurationPath.java @@ -15,9 +15,7 @@ */ package com.android.tools.idea.avdmanager; -import com.android.tools.idea.wizard.AndroidStudioWizardPath; -import com.android.tools.idea.wizard.DynamicWizardPath; -import com.android.tools.idea.wizard.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; import com.intellij.openapi.Disposable; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/avdmanager/AvdEditWizard.java b/android/src/com/android/tools/idea/avdmanager/AvdEditWizard.java index ecec31798a1..22ff0cc4e71 100755 --- a/android/src/com/android/tools/idea/avdmanager/AvdEditWizard.java +++ b/android/src/com/android/tools/idea/avdmanager/AvdEditWizard.java @@ -25,7 +25,7 @@ import com.android.sdklib.internal.avd.AvdInfo; import com.android.sdklib.internal.avd.AvdManager; import com.android.sdklib.internal.avd.HardwareProperties; import com.android.tools.idea.ddms.screenshot.DeviceArtDescriptor; -import com.android.tools.idea.wizard.*; +import com.android.tools.idea.wizard.dynamic.*; import com.google.common.base.Objects; import com.google.common.base.Predicate; import com.google.common.collect.Maps; diff --git a/android/src/com/android/tools/idea/avdmanager/AvdListDialog.java b/android/src/com/android/tools/idea/avdmanager/AvdListDialog.java index 3366e29fee4..66f5e313660 100644 --- a/android/src/com/android/tools/idea/avdmanager/AvdListDialog.java +++ b/android/src/com/android/tools/idea/avdmanager/AvdListDialog.java @@ -17,7 +17,7 @@ package com.android.tools.idea.avdmanager; import com.android.sdklib.internal.avd.AvdInfo; import com.android.tools.idea.wizard.WizardConstants; -import com.android.tools.idea.wizard.WizardStepHeaderPanel; +import com.android.tools.idea.wizard.dynamic.WizardStepHeaderPanel; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.FrameWrapper; diff --git a/android/src/com/android/tools/idea/avdmanager/AvdWizardConstants.java b/android/src/com/android/tools/idea/avdmanager/AvdWizardConstants.java index 5cd7e040c2d..c441223469e 100644 --- a/android/src/com/android/tools/idea/avdmanager/AvdWizardConstants.java +++ b/android/src/com/android/tools/idea/avdmanager/AvdWizardConstants.java @@ -34,10 +34,10 @@ import java.util.Collections; import java.util.List; import static com.android.sdklib.devices.Storage.Unit; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.STEP; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.WIZARD; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.STEP; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.WIZARD; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * State store keys for the AVD Manager wizards diff --git a/android/src/com/android/tools/idea/avdmanager/ChooseDeviceDefinitionStep.java b/android/src/com/android/tools/idea/avdmanager/ChooseDeviceDefinitionStep.java index 8d5bd6cd6ff..002f34805dc 100755 --- a/android/src/com/android/tools/idea/avdmanager/ChooseDeviceDefinitionStep.java +++ b/android/src/com/android/tools/idea/avdmanager/ChooseDeviceDefinitionStep.java @@ -16,7 +16,7 @@ package com.android.tools.idea.avdmanager; import com.android.sdklib.devices.Device; -import com.android.tools.idea.wizard.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; import com.intellij.openapi.Disposable; import com.intellij.ui.JBColor; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/avdmanager/ChooseSystemImageStep.java b/android/src/com/android/tools/idea/avdmanager/ChooseSystemImageStep.java index 2b93d69066a..e0f5fa32372 100644 --- a/android/src/com/android/tools/idea/avdmanager/ChooseSystemImageStep.java +++ b/android/src/com/android/tools/idea/avdmanager/ChooseSystemImageStep.java @@ -18,7 +18,7 @@ package com.android.tools.idea.avdmanager; import com.android.sdklib.SystemImage; import com.android.sdklib.devices.Device; import com.android.sdklib.repository.descriptors.IdDisplay; -import com.android.tools.idea.wizard.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; import com.google.common.base.Objects; import com.google.common.base.Predicate; import com.intellij.openapi.Disposable; diff --git a/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java b/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java index 8bcbd538300..4a27afa8d43 100644 --- a/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java +++ b/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java @@ -26,6 +26,7 @@ import com.android.sdklib.devices.Screen; import com.android.sdklib.devices.Storage; import com.android.sdklib.internal.avd.AvdInfo; import com.android.tools.idea.wizard.*; +import com.android.tools.idea.wizard.dynamic.*; import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.collect.*; @@ -64,7 +65,7 @@ import java.util.Set; import static com.android.sdklib.devices.Storage.Unit; import static com.android.tools.idea.avdmanager.AvdWizardConstants.*; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; /** * Options panel for configuring various AVD options. Has an "advanced" mode and a "simple" mode. diff --git a/android/src/com/android/tools/idea/avdmanager/ConfigureDeviceOptionsStep.java b/android/src/com/android/tools/idea/avdmanager/ConfigureDeviceOptionsStep.java index 6aedb31bb58..e26a1c29bfa 100755 --- a/android/src/com/android/tools/idea/avdmanager/ConfigureDeviceOptionsStep.java +++ b/android/src/com/android/tools/idea/avdmanager/ConfigureDeviceOptionsStep.java @@ -22,8 +22,8 @@ import com.android.sdklib.SystemImage; import com.android.sdklib.devices.*; import com.android.sdklib.repository.descriptors.IdDisplay; import com.android.tools.idea.ddms.screenshot.DeviceArtDescriptor; -import com.android.tools.idea.wizard.DynamicWizardStepWithDescription; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; diff --git a/android/src/com/android/tools/idea/avdmanager/DeviceEditWizard.java b/android/src/com/android/tools/idea/avdmanager/DeviceEditWizard.java index 1dc8cd10ec3..ff286ed6892 100755 --- a/android/src/com/android/tools/idea/avdmanager/DeviceEditWizard.java +++ b/android/src/com/android/tools/idea/avdmanager/DeviceEditWizard.java @@ -16,8 +16,8 @@ package com.android.tools.idea.avdmanager; import com.android.sdklib.devices.Device; -import com.android.tools.idea.wizard.SingleStepDialogWrapperHost; -import com.android.tools.idea.wizard.SingleStepWizard; +import com.android.tools.idea.wizard.dynamic.SingleStepDialogWrapperHost; +import com.android.tools.idea.wizard.dynamic.SingleStepWizard; import com.intellij.openapi.ui.DialogWrapper; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/avdmanager/HaxmAlert.java b/android/src/com/android/tools/idea/avdmanager/HaxmAlert.java index cd89d2ef65a..d819c97d154 100644 --- a/android/src/com/android/tools/idea/avdmanager/HaxmAlert.java +++ b/android/src/com/android/tools/idea/avdmanager/HaxmAlert.java @@ -23,6 +23,7 @@ import com.android.tools.idea.sdk.wizard.LicenseAgreementStep; import com.android.tools.idea.welcome.install.*; import com.android.tools.idea.welcome.wizard.ProgressStep; import com.android.tools.idea.wizard.*; +import com.android.tools.idea.wizard.dynamic.*; import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; diff --git a/android/src/com/android/tools/idea/avdmanager/SkinChooser.java b/android/src/com/android/tools/idea/avdmanager/SkinChooser.java index e0b073cb9b2..c4e700766d3 100755 --- a/android/src/com/android/tools/idea/avdmanager/SkinChooser.java +++ b/android/src/com/android/tools/idea/avdmanager/SkinChooser.java @@ -19,7 +19,7 @@ import com.android.sdklib.IAndroidTarget; import com.android.sdklib.ISystemImage; import com.android.sdklib.devices.Device; import com.android.sdklib.repository.local.LocalSdk; -import com.android.tools.idea.wizard.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.intellij.openapi.fileChooser.FileChooserDescriptor; diff --git a/android/src/com/android/tools/idea/avdmanager/StorageField.java b/android/src/com/android/tools/idea/avdmanager/StorageField.java index e16b97323e2..6b2109c5301 100644 --- a/android/src/com/android/tools/idea/avdmanager/StorageField.java +++ b/android/src/com/android/tools/idea/avdmanager/StorageField.java @@ -16,7 +16,7 @@ package com.android.tools.idea.avdmanager; import com.android.sdklib.devices.Storage; -import com.android.tools.idea.wizard.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; import com.intellij.openapi.ui.ComboBox; import com.intellij.ui.ColoredListCellRenderer; import com.intellij.ui.EnumComboBoxModel; diff --git a/android/src/com/android/tools/idea/avdmanager/SystemImageList.java b/android/src/com/android/tools/idea/avdmanager/SystemImageList.java index bda3fe47ce4..949c5738d55 100644 --- a/android/src/com/android/tools/idea/avdmanager/SystemImageList.java +++ b/android/src/com/android/tools/idea/avdmanager/SystemImageList.java @@ -26,7 +26,7 @@ import com.android.tools.idea.sdk.SdkPackages; import com.android.tools.idea.sdk.SdkState; import com.android.tools.idea.sdk.remote.RemotePkgInfo; import com.android.tools.idea.sdk.wizard.SdkQuickfixWizard; -import com.android.tools.idea.wizard.DialogWrapperHost; +import com.android.tools.idea.wizard.dynamic.DialogWrapperHost; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; diff --git a/android/src/com/android/tools/idea/sdk/wizard/LicenseAgreementStep.java b/android/src/com/android/tools/idea/sdk/wizard/LicenseAgreementStep.java index 3c509bc6d5f..b273bdc0d04 100644 --- a/android/src/com/android/tools/idea/sdk/wizard/LicenseAgreementStep.java +++ b/android/src/com/android/tools/idea/sdk/wizard/LicenseAgreementStep.java @@ -17,7 +17,7 @@ package com.android.tools.idea.sdk.wizard; import com.android.sdklib.repository.License; import com.android.sdklib.repository.descriptors.IPkgDesc; -import com.android.tools.idea.wizard.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; diff --git a/android/src/com/android/tools/idea/sdk/wizard/SdkQuickfixWizard.java b/android/src/com/android/tools/idea/sdk/wizard/SdkQuickfixWizard.java index f7224a56f3e..2d1bc5a5a28 100644 --- a/android/src/com/android/tools/idea/sdk/wizard/SdkQuickfixWizard.java +++ b/android/src/com/android/tools/idea/sdk/wizard/SdkQuickfixWizard.java @@ -18,10 +18,10 @@ package com.android.tools.idea.sdk.wizard; import com.android.sdklib.repository.descriptors.IPkgDesc; import com.android.tools.idea.sdk.SdkState; import com.android.tools.idea.sdk.remote.UpdatablePkgInfo; -import com.android.tools.idea.wizard.DialogWrapperHost; -import com.android.tools.idea.wizard.DynamicWizard; -import com.android.tools.idea.wizard.DynamicWizardPath; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.DialogWrapperHost; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.Sets; import com.intellij.icons.AllIcons; import com.intellij.openapi.Disposable; diff --git a/android/src/com/android/tools/idea/sdk/wizard/SmwOldApiDirectInstall.java b/android/src/com/android/tools/idea/sdk/wizard/SmwOldApiDirectInstall.java index e8c829af58a..78cff45cc39 100755 --- a/android/src/com/android/tools/idea/sdk/wizard/SmwOldApiDirectInstall.java +++ b/android/src/com/android/tools/idea/sdk/wizard/SmwOldApiDirectInstall.java @@ -24,7 +24,7 @@ import com.android.tools.idea.sdk.SdkLoggerIntegration; import com.android.tools.idea.sdk.SdkPackages; import com.android.tools.idea.sdk.SdkState; import com.android.tools.idea.sdk.remote.internal.updater.SdkUpdaterNoWindow; -import com.android.tools.idea.wizard.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; import com.android.utils.ILogger; import com.google.common.collect.Lists; import com.intellij.openapi.Disposable; diff --git a/android/src/com/android/tools/idea/welcome/install/AndroidSdk.java b/android/src/com/android/tools/idea/welcome/install/AndroidSdk.java index 6ac9d69fe65..7d2838718d6 100644 --- a/android/src/com/android/tools/idea/welcome/install/AndroidSdk.java +++ b/android/src/com/android/tools/idea/welcome/install/AndroidSdk.java @@ -23,7 +23,7 @@ import com.android.sdklib.repository.descriptors.IPkgDesc; import com.android.sdklib.repository.descriptors.PkgDesc; import com.android.sdklib.repository.descriptors.PkgType; import com.android.tools.idea.sdk.remote.RemotePkgInfo; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.java b/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.java index 49cca2e7f42..68b1da257af 100755 --- a/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.java +++ b/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.java @@ -37,7 +37,7 @@ import com.android.tools.idea.sdk.LogWrapper; import com.android.tools.idea.sdk.remote.RemotePkgInfo; import com.android.tools.idea.welcome.wizard.InstallComponentsPath; import com.android.tools.idea.welcome.wizard.ProgressStep; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Objects; import com.google.common.collect.ImmutableSet; diff --git a/android/src/com/android/tools/idea/welcome/install/ComponentCategory.java b/android/src/com/android/tools/idea/welcome/install/ComponentCategory.java index 5a68658e7d2..073c4a3d83d 100644 --- a/android/src/com/android/tools/idea/welcome/install/ComponentCategory.java +++ b/android/src/com/android/tools/idea/welcome/install/ComponentCategory.java @@ -17,8 +17,8 @@ package com.android.tools.idea.welcome.install; import com.android.sdklib.SdkManager; import com.android.tools.idea.welcome.wizard.ProgressStep; -import com.android.tools.idea.wizard.DynamicWizardStep; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.ImmutableList; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/welcome/install/ComponentTreeNode.java b/android/src/com/android/tools/idea/welcome/install/ComponentTreeNode.java index 553bd1e94ea..3fc8587d27d 100644 --- a/android/src/com/android/tools/idea/welcome/install/ComponentTreeNode.java +++ b/android/src/com/android/tools/idea/welcome/install/ComponentTreeNode.java @@ -17,8 +17,8 @@ package com.android.tools.idea.welcome.install; import com.android.sdklib.SdkManager; import com.android.tools.idea.welcome.wizard.ProgressStep; -import com.android.tools.idea.wizard.DynamicWizardStep; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/welcome/install/Haxm.java b/android/src/com/android/tools/idea/welcome/install/Haxm.java index e3f24947ec7..52f52aa3ee5 100644 --- a/android/src/com/android/tools/idea/welcome/install/Haxm.java +++ b/android/src/com/android/tools/idea/welcome/install/Haxm.java @@ -26,8 +26,8 @@ import com.android.sdklib.repository.descriptors.PkgType; import com.android.tools.idea.sdk.remote.RemotePkgInfo; import com.android.tools.idea.welcome.wizard.HaxmInstallSettingsStep; import com.android.tools.idea.welcome.wizard.ProgressStep; -import com.android.tools.idea.wizard.DynamicWizardStep; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimap; import com.intellij.execution.ExecutionException; diff --git a/android/src/com/android/tools/idea/welcome/install/InstallableComponent.java b/android/src/com/android/tools/idea/welcome/install/InstallableComponent.java index 7b49177a828..b9af332e57b 100644 --- a/android/src/com/android/tools/idea/welcome/install/InstallableComponent.java +++ b/android/src/com/android/tools/idea/welcome/install/InstallableComponent.java @@ -22,8 +22,8 @@ import com.android.sdklib.repository.local.LocalPkgInfo; import com.android.sdklib.repository.local.LocalSdk; import com.android.tools.idea.sdk.remote.RemotePkgInfo; import com.android.tools.idea.welcome.wizard.WelcomeUIUtils; -import com.android.tools.idea.wizard.DynamicWizardStep; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/welcome/install/Platform.java b/android/src/com/android/tools/idea/welcome/install/Platform.java index 26312f5a101..79108db0674 100644 --- a/android/src/com/android/tools/idea/welcome/install/Platform.java +++ b/android/src/com/android/tools/idea/welcome/install/Platform.java @@ -27,7 +27,7 @@ import com.android.sdklib.repository.local.LocalPkgInfo; import com.android.sdklib.repository.local.LocalSdk; import com.android.tools.idea.sdk.remote.RemotePkgInfo; import com.android.tools.idea.welcome.wizard.InstallComponentsPath; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimap; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/welcome/wizard/ConsolidatedProgressStep.java b/android/src/com/android/tools/idea/welcome/wizard/ConsolidatedProgressStep.java index dc0c5801c98..2268b32b024 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/ConsolidatedProgressStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/ConsolidatedProgressStep.java @@ -16,8 +16,8 @@ package com.android.tools.idea.welcome.wizard; import com.android.tools.idea.welcome.install.WizardException; -import com.android.tools.idea.wizard.AndroidStudioWizardPath; -import com.android.tools.idea.wizard.DynamicWizardHost; +import com.android.tools.idea.wizard.dynamic.AndroidStudioWizardPath; +import com.android.tools.idea.wizard.dynamic.DynamicWizardHost; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; diff --git a/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizard.java b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizard.java index 26e45cb48b8..61b1490b8c8 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizard.java +++ b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizard.java @@ -22,7 +22,10 @@ import com.android.tools.idea.sdk.wizard.LicenseAgreementStep; import com.android.tools.idea.welcome.config.AndroidFirstRunPersistentData; import com.android.tools.idea.welcome.config.FirstRunWizardMode; import com.android.tools.idea.welcome.install.FirstRunWizardDefaults; -import com.android.tools.idea.wizard.*; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardHost; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.SingleStepPath; import com.android.utils.NullLogger; import com.google.common.collect.Multimap; import com.intellij.openapi.util.SystemInfo; diff --git a/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardHost.java b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardHost.java index 87ca9e07cc9..04ef4ce9bba 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardHost.java +++ b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardHost.java @@ -18,8 +18,8 @@ package com.android.tools.idea.welcome.wizard; import com.android.sdklib.repository.descriptors.PkgType; import com.android.tools.idea.sdk.remote.RemotePkgInfo; import com.android.tools.idea.welcome.config.FirstRunWizardMode; -import com.android.tools.idea.wizard.DynamicWizard; -import com.android.tools.idea.wizard.DynamicWizardHost; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardHost; import com.android.tools.idea.wizard.WizardConstants; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; diff --git a/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardStep.java b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardStep.java index 3cb7531dd2a..c27a2ff0b07 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardStep.java @@ -15,7 +15,7 @@ */ package com.android.tools.idea.welcome.wizard; -import com.android.tools.idea.wizard.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStep; import com.android.tools.idea.wizard.WizardConstants; import com.intellij.util.IJSwingUtilities; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/welcome/wizard/HaxmInstallSettingsStep.java b/android/src/com/android/tools/idea/welcome/wizard/HaxmInstallSettingsStep.java index 6cd56f1ba59..bedde256c86 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/HaxmInstallSettingsStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/HaxmInstallSettingsStep.java @@ -18,7 +18,7 @@ package com.android.tools.idea.welcome.wizard; import com.android.sdklib.devices.Storage; import com.android.tools.idea.welcome.install.FirstRunWizardDefaults; import com.android.tools.idea.welcome.install.Haxm; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.intellij.openapi.util.SystemInfo; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/welcome/wizard/InstallComponentsPath.java b/android/src/com/android/tools/idea/welcome/wizard/InstallComponentsPath.java index bde20f423de..dbe844e7709 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/InstallComponentsPath.java +++ b/android/src/com/android/tools/idea/welcome/wizard/InstallComponentsPath.java @@ -26,9 +26,9 @@ import com.android.tools.idea.sdk.remote.RemotePkgInfo; import com.android.tools.idea.welcome.config.AndroidFirstRunPersistentData; import com.android.tools.idea.welcome.config.FirstRunWizardMode; import com.android.tools.idea.welcome.install.*; -import com.android.tools.idea.wizard.DynamicWizardPath; -import com.android.tools.idea.wizard.DynamicWizardStep; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.tools.idea.wizard.WizardConstants; import com.android.utils.NullLogger; import com.google.common.annotations.VisibleForTesting; @@ -39,7 +39,6 @@ import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.progress.ProgressIndicator; -import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/welcome/wizard/InstallSummaryStep.java b/android/src/com/android/tools/idea/welcome/wizard/InstallSummaryStep.java index 271be130871..18ce1d4d802 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/InstallSummaryStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/InstallSummaryStep.java @@ -16,7 +16,7 @@ package com.android.tools.idea.welcome.wizard; import com.android.tools.idea.sdk.remote.RemotePkgInfo; -import com.android.tools.idea.wizard.ScopedStateStore.Key; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; import com.android.tools.idea.wizard.WizardConstants; import com.google.common.base.Supplier; import com.google.common.collect.ComparisonChain; diff --git a/android/src/com/android/tools/idea/welcome/wizard/InstallationTypeWizardStep.java b/android/src/com/android/tools/idea/welcome/wizard/InstallationTypeWizardStep.java index eb5fecc1239..e2c8b176bce 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/InstallationTypeWizardStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/InstallationTypeWizardStep.java @@ -15,7 +15,7 @@ */ package com.android.tools.idea.welcome.wizard; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/welcome/wizard/JdkLocationStep.java b/android/src/com/android/tools/idea/welcome/wizard/JdkLocationStep.java index ed17c285eb7..fb9845fd122 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/JdkLocationStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/JdkLocationStep.java @@ -18,7 +18,7 @@ package com.android.tools.idea.welcome.wizard; import com.android.tools.idea.sdk.Jdks; import com.android.tools.idea.welcome.config.FirstRunWizardMode; import com.android.tools.idea.welcome.config.JdkDetection; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.intellij.openapi.externalSystem.util.ExternalSystemUiUtil; import com.intellij.openapi.fileChooser.FileChooserDescriptor; import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; diff --git a/android/src/com/android/tools/idea/welcome/wizard/SdkComponentsStep.java b/android/src/com/android/tools/idea/welcome/wizard/SdkComponentsStep.java index e4c21a77545..2ec96b67bda 100755 --- a/android/src/com/android/tools/idea/welcome/wizard/SdkComponentsStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/SdkComponentsStep.java @@ -19,7 +19,7 @@ import com.android.tools.idea.sdk.IdeSdks; import com.android.tools.idea.welcome.install.ComponentTreeNode; import com.android.tools.idea.welcome.install.InstallableComponent; import com.android.tools.idea.welcome.config.FirstRunWizardMode; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.tools.idea.wizard.WizardConstants; import com.android.tools.idea.wizard.WizardUtils; import com.google.common.collect.*; diff --git a/android/src/com/android/tools/idea/welcome/wizard/SelectThemeStep.java b/android/src/com/android/tools/idea/welcome/wizard/SelectThemeStep.java index 595afdbff24..d5c02c8055b 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/SelectThemeStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/SelectThemeStep.java @@ -15,7 +15,7 @@ */ package com.android.tools.idea.welcome.wizard; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.intellij.ide.customize.CustomizeUIThemeStepPanel; import com.intellij.ide.ui.laf.darcula.DarculaInstaller; import com.intellij.util.ui.UIUtil; diff --git a/android/src/com/android/tools/idea/welcome/wizard/SetupJdkPath.java b/android/src/com/android/tools/idea/welcome/wizard/SetupJdkPath.java index 5c249ac7974..f25dea755e4 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/SetupJdkPath.java +++ b/android/src/com/android/tools/idea/welcome/wizard/SetupJdkPath.java @@ -19,10 +19,10 @@ import com.android.tools.idea.sdk.IdeSdks; import com.android.tools.idea.welcome.config.FirstRunWizardMode; import com.android.tools.idea.welcome.config.JdkDetection; import com.android.tools.idea.welcome.install.FirstRunWizardDefaults; -import com.android.tools.idea.wizard.DynamicWizardPath; -import com.android.tools.idea.wizard.ScopedStateStore; -import com.android.tools.idea.wizard.ScopedStateStore.Key; -import com.android.tools.idea.wizard.ScopedStateStore.Scope; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.util.text.StringUtil; diff --git a/android/src/com/android/tools/idea/welcome/wizard/TwoRadiosToBooleanBinding.java b/android/src/com/android/tools/idea/welcome/wizard/TwoRadiosToBooleanBinding.java index 745a9578725..4fdaf695f6c 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/TwoRadiosToBooleanBinding.java +++ b/android/src/com/android/tools/idea/welcome/wizard/TwoRadiosToBooleanBinding.java @@ -15,7 +15,7 @@ */ package com.android.tools.idea.welcome.wizard; -import com.android.tools.idea.wizard.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; import com.google.common.base.Objects; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/wizard/ActivityGalleryStep.java b/android/src/com/android/tools/idea/wizard/ActivityGalleryStep.java index 0434da5f7cd..82da4066128 100644 --- a/android/src/com/android/tools/idea/wizard/ActivityGalleryStep.java +++ b/android/src/com/android/tools/idea/wizard/ActivityGalleryStep.java @@ -18,6 +18,8 @@ package com.android.tools.idea.wizard; import com.android.sdklib.AndroidVersion; import com.android.tools.idea.actions.NewAndroidComponentAction; import com.android.tools.idea.templates.TemplateManager; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.base.Function; import com.google.common.base.Optional; import com.intellij.openapi.Disposable; @@ -34,7 +36,7 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.*; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; import static com.android.tools.idea.wizard.WizardConstants.DEFAULT_GALLERY_THUMBNAIL_SIZE; /** diff --git a/android/src/com/android/tools/idea/wizard/AddAndroidActivityPath.java b/android/src/com/android/tools/idea/wizard/AddAndroidActivityPath.java index 44b2688bd6e..c7b5df68f8d 100644 --- a/android/src/com/android/tools/idea/wizard/AddAndroidActivityPath.java +++ b/android/src/com/android/tools/idea/wizard/AddAndroidActivityPath.java @@ -21,6 +21,7 @@ import com.android.tools.idea.gradle.IdeaAndroidProject; import com.android.tools.idea.model.AndroidModuleInfo; import com.android.tools.idea.model.ManifestInfo; import com.android.tools.idea.templates.*; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; import com.android.tools.idea.wizard.template.TemplateWizard; import com.google.common.base.Joiner; import com.google.common.base.Objects; @@ -57,10 +58,10 @@ import java.util.Set; import static com.android.tools.idea.templates.KeystoreUtils.getDebugKeystore; import static com.android.tools.idea.templates.TemplateMetadata.*; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.PATH; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.WIZARD; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.PATH; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.WIZARD; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * Wizard path for adding a new activity. diff --git a/android/src/com/android/tools/idea/wizard/ChooseModuleTypeStep.java b/android/src/com/android/tools/idea/wizard/ChooseModuleTypeStep.java index 8e1993e21b7..0040fb02145 100644 --- a/android/src/com/android/tools/idea/wizard/ChooseModuleTypeStep.java +++ b/android/src/com/android/tools/idea/wizard/ChooseModuleTypeStep.java @@ -15,6 +15,8 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.base.Function; import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.java b/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.java index 46666c93d55..c4ae0ce855e 100644 --- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.java +++ b/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.java @@ -15,6 +15,8 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectPath.java b/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectPath.java index 5ff440c0ad3..fee3310b43d 100644 --- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectPath.java +++ b/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectPath.java @@ -24,7 +24,9 @@ import com.android.tools.idea.sdk.wizard.LicenseAgreementStep; import com.android.tools.idea.sdk.wizard.SmwOldApiDirectInstall; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateManager; -import com.android.tools.idea.wizard.DynamicWizardStepWithHeaderAndDescription.WizardStepHeaderSettings; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription.WizardStepHeaderSettings; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.java b/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.java index f526877f9b0..b9fa3f1533c 100644 --- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.java +++ b/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.java @@ -16,6 +16,8 @@ package com.android.tools.idea.wizard; import com.android.annotations.VisibleForTesting; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.base.CharMatcher; import com.google.common.base.Function; import com.google.common.base.Joiner; @@ -35,14 +37,13 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import javax.swing.text.Document; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.util.ArrayList; import java.util.Set; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; /** * ConfigureAndroidModuleStep is the first page in the New Project wizard that sets project/module name, location, and other project-global diff --git a/android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.java b/android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.java index 7e36ce307ed..72643b25dba 100755 --- a/android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.java +++ b/android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.java @@ -25,6 +25,10 @@ import com.android.tools.idea.stats.DistributionService; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateManager; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.DialogWrapperHost; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.*; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; @@ -55,10 +59,10 @@ import static com.android.tools.idea.templates.TemplateMetadata.*; import static com.android.tools.idea.wizard.FormFactorApiComboBox.AndroidTargetComboBoxItem; import static com.android.tools.idea.wizard.FormFactorUtils.*; import static com.android.tools.idea.wizard.FormFactorUtils.FormFactor.MOBILE; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.STEP; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.WIZARD; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.STEP; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.WIZARD; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; import static com.android.tools.idea.wizard.WizardConstants.NEWLY_INSTALLED_API_KEY; /** diff --git a/android/src/com/android/tools/idea/wizard/CreateModuleTemplate.java b/android/src/com/android/tools/idea/wizard/CreateModuleTemplate.java index 4c165c4c1c3..944c6c16627 100644 --- a/android/src/com/android/tools/idea/wizard/CreateModuleTemplate.java +++ b/android/src/com/android/tools/idea/wizard/CreateModuleTemplate.java @@ -16,6 +16,7 @@ package com.android.tools.idea.wizard; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.Maps; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/wizard/FormFactorApiComboBox.java b/android/src/com/android/tools/idea/wizard/FormFactorApiComboBox.java index effbd48d0d5..78fe567599b 100644 --- a/android/src/com/android/tools/idea/wizard/FormFactorApiComboBox.java +++ b/android/src/com/android/tools/idea/wizard/FormFactorApiComboBox.java @@ -25,6 +25,8 @@ import com.android.sdklib.repository.descriptors.IPkgDesc; import com.android.sdklib.repository.descriptors.PkgDesc; import com.android.tools.idea.templates.TemplateMetadata; import com.android.tools.idea.templates.TemplateUtils; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -46,7 +48,7 @@ import java.util.List; import java.util.Set; import static com.android.tools.idea.wizard.FormFactorUtils.*; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; import static com.android.tools.idea.wizard.WizardConstants.INSTALL_REQUESTS_KEY; /** diff --git a/android/src/com/android/tools/idea/wizard/FormFactorUtils.java b/android/src/com/android/tools/idea/wizard/FormFactorUtils.java index 47574157e95..8f228d90adc 100644 --- a/android/src/com/android/tools/idea/wizard/FormFactorUtils.java +++ b/android/src/com/android/tools/idea/wizard/FormFactorUtils.java @@ -36,10 +36,10 @@ import java.util.Map; import static com.android.tools.idea.templates.TemplateMetadata.*; import static com.android.tools.idea.wizard.FormFactorApiComboBox.AndroidTargetComboBoxItem; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.STEP; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.WIZARD; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.STEP; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.WIZARD; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; import static com.android.tools.idea.wizard.WizardConstants.INVALID_FILENAME_CHARS; /** diff --git a/android/src/com/android/tools/idea/wizard/IconStep.java b/android/src/com/android/tools/idea/wizard/IconStep.java index f12a73b83fe..0c4e1f2b851 100644 --- a/android/src/com/android/tools/idea/wizard/IconStep.java +++ b/android/src/com/android/tools/idea/wizard/IconStep.java @@ -26,6 +26,8 @@ import com.android.tools.idea.templates.Parameter; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateManager; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.RadioButtonGroupBinding; import com.google.common.base.Objects; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; @@ -57,10 +59,10 @@ import java.util.concurrent.ConcurrentHashMap; import static com.android.assetstudiolib.ActionBarIconGenerator.Theme; import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.*; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.PATH; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.STEP; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.PATH; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.STEP; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * {@linkplain IconStep} is a wizard page that lets the user create a variety of density-scaled assets. diff --git a/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.java b/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.java index 67a4b03aec9..8661d1804ba 100644 --- a/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.java +++ b/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.java @@ -18,6 +18,7 @@ package com.android.tools.idea.wizard; import com.android.annotations.VisibleForTesting; import com.android.tools.idea.gradle.project.ModuleImporter; import com.android.tools.idea.gradle.project.ModuleToImport; +import com.android.tools.idea.wizard.dynamic.AndroidStudioWizardStep; import com.android.tools.idea.wizard.template.TemplateWizardStep; import com.google.common.base.Joiner; import com.google.common.base.Objects; diff --git a/android/src/com/android/tools/idea/wizard/JavaModuleDynamicPath.java b/android/src/com/android/tools/idea/wizard/JavaModuleDynamicPath.java index ae3e5f997a2..68bf8b63b49 100644 --- a/android/src/com/android/tools/idea/wizard/JavaModuleDynamicPath.java +++ b/android/src/com/android/tools/idea/wizard/JavaModuleDynamicPath.java @@ -19,6 +19,8 @@ import com.android.builder.model.SourceProvider; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateManager; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; diff --git a/android/src/com/android/tools/idea/wizard/LegacyPathWrapper.java b/android/src/com/android/tools/idea/wizard/LegacyPathWrapper.java index 8cf4305935b..7ae2456df1f 100644 --- a/android/src/com/android/tools/idea/wizard/LegacyPathWrapper.java +++ b/android/src/com/android/tools/idea/wizard/LegacyPathWrapper.java @@ -15,6 +15,8 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.intellij.ide.util.projectWizard.ModuleWizardStep; diff --git a/android/src/com/android/tools/idea/wizard/ModuleTemplate.java b/android/src/com/android/tools/idea/wizard/ModuleTemplate.java index 973f0c5b73c..f8badbfc662 100644 --- a/android/src/com/android/tools/idea/wizard/ModuleTemplate.java +++ b/android/src/com/android/tools/idea/wizard/ModuleTemplate.java @@ -15,6 +15,7 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/android/src/com/android/tools/idea/wizard/NewAndroidActivityWizard.java b/android/src/com/android/tools/idea/wizard/NewAndroidActivityWizard.java index 08bb4faf83a..51608204f2a 100644 --- a/android/src/com/android/tools/idea/wizard/NewAndroidActivityWizard.java +++ b/android/src/com/android/tools/idea/wizard/NewAndroidActivityWizard.java @@ -15,6 +15,7 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; import com.google.common.collect.ImmutableMap; import com.intellij.openapi.command.UndoConfirmationPolicy; import com.intellij.openapi.module.Module; diff --git a/android/src/com/android/tools/idea/wizard/NewFormFactorModulePath.java b/android/src/com/android/tools/idea/wizard/NewFormFactorModulePath.java index 22bb1a5b7ce..5c4bbbb6f01 100644 --- a/android/src/com/android/tools/idea/wizard/NewFormFactorModulePath.java +++ b/android/src/com/android/tools/idea/wizard/NewFormFactorModulePath.java @@ -20,6 +20,7 @@ import com.android.tools.idea.templates.Parameter; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateManager; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; import com.android.tools.idea.wizard.template.TemplateWizard; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; @@ -41,10 +42,10 @@ import static com.android.tools.idea.templates.TemplateUtils.checkedCreateDirect import static com.android.tools.idea.wizard.AddAndroidActivityPath.KEY_SELECTED_TEMPLATE; import static com.android.tools.idea.wizard.ConfigureFormFactorStep.NUM_ENABLED_FORM_FACTORS_KEY; import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_CREATE_ACTIVITY; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.PATH; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; import static com.android.tools.idea.wizard.WizardConstants.*; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.PATH; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * Module creation for a given form factor diff --git a/android/src/com/android/tools/idea/wizard/NewModuleDynamicPath.java b/android/src/com/android/tools/idea/wizard/NewModuleDynamicPath.java index e3b22661813..8e58c775679 100644 --- a/android/src/com/android/tools/idea/wizard/NewModuleDynamicPath.java +++ b/android/src/com/android/tools/idea/wizard/NewModuleDynamicPath.java @@ -15,6 +15,8 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.AndroidStudioWizardPath; + /** * Combines wizard path and module template provider. */ diff --git a/android/src/com/android/tools/idea/wizard/NewModuleWizardDynamic.java b/android/src/com/android/tools/idea/wizard/NewModuleWizardDynamic.java index 42db7f9effd..c83653e3bf0 100644 --- a/android/src/com/android/tools/idea/wizard/NewModuleWizardDynamic.java +++ b/android/src/com/android/tools/idea/wizard/NewModuleWizardDynamic.java @@ -24,7 +24,10 @@ import com.android.tools.idea.gradle.util.GradleUtil; import com.android.tools.idea.templates.KeystoreUtils; import com.android.tools.idea.templates.TemplateManager; import com.android.tools.idea.templates.TemplateUtils; -import com.android.tools.idea.wizard.DynamicWizardStepWithHeaderAndDescription.WizardStepHeaderSettings; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription.WizardStepHeaderSettings; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.SingleStepPath; import com.android.tools.idea.wizard.template.TemplateWizard; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; diff --git a/android/src/com/android/tools/idea/wizard/NewModuleWizardState.java b/android/src/com/android/tools/idea/wizard/NewModuleWizardState.java index 27e526b8aa3..47d92f7409d 100644 --- a/android/src/com/android/tools/idea/wizard/NewModuleWizardState.java +++ b/android/src/com/android/tools/idea/wizard/NewModuleWizardState.java @@ -20,6 +20,7 @@ import com.android.sdklib.BuildToolInfo; import com.android.tools.idea.templates.KeystoreUtils; import com.android.tools.idea.templates.RepositoryUrlManager; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.tools.idea.wizard.template.TemplateWizardState; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; diff --git a/android/src/com/android/tools/idea/wizard/NewProjectWizardDynamic.java b/android/src/com/android/tools/idea/wizard/NewProjectWizardDynamic.java index c25c370917f..40ba1831191 100644 --- a/android/src/com/android/tools/idea/wizard/NewProjectWizardDynamic.java +++ b/android/src/com/android/tools/idea/wizard/NewProjectWizardDynamic.java @@ -23,6 +23,8 @@ import com.android.tools.idea.templates.KeystoreUtils; import com.android.tools.idea.templates.TemplateManager; import com.android.tools.idea.templates.TemplateUtils; import com.android.tools.idea.wizard.FormFactorUtils.FormFactor; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.tools.idea.wizard.template.TemplateWizard; import com.google.common.collect.Lists; import com.intellij.ide.startup.StartupManagerEx; @@ -47,9 +49,7 @@ import java.util.List; import static com.android.SdkConstants.GRADLE_LATEST_VERSION; import static com.android.SdkConstants.GRADLE_PLUGIN_RECOMMENDED_VERSION; -import static com.android.tools.idea.wizard.WizardConstants.APPLICATION_NAME_KEY; -import static com.android.tools.idea.wizard.WizardConstants.FILES_TO_OPEN_KEY; -import static com.android.tools.idea.wizard.WizardConstants.PROJECT_LOCATION_KEY; +import static com.android.tools.idea.wizard.WizardConstants.*; /** * Presents a wizard to the user to create a new project. @@ -237,7 +237,7 @@ public class NewProjectWizardDynamic extends DynamicWizard { @Nullable @Override - protected Project getProject() { + public Project getProject() { return myProject; } } diff --git a/android/src/com/android/tools/idea/wizard/NewTemplateObjectWizard.java b/android/src/com/android/tools/idea/wizard/NewTemplateObjectWizard.java index dc2c87c2caa..444bf1f9606 100644 --- a/android/src/com/android/tools/idea/wizard/NewTemplateObjectWizard.java +++ b/android/src/com/android/tools/idea/wizard/NewTemplateObjectWizard.java @@ -28,6 +28,7 @@ import com.android.tools.idea.templates.TemplateUtils; import com.android.tools.idea.wizard.template.TemplateWizard; import com.android.tools.idea.wizard.template.TemplateWizardState; import com.android.tools.idea.wizard.template.TemplateWizardStep; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; diff --git a/android/src/com/android/tools/idea/wizard/ScopedStateStoreAdapter.java b/android/src/com/android/tools/idea/wizard/ScopedStateStoreAdapter.java index 114b8c2ff2b..54186756315 100644 --- a/android/src/com/android/tools/idea/wizard/ScopedStateStoreAdapter.java +++ b/android/src/com/android/tools/idea/wizard/ScopedStateStoreAdapter.java @@ -16,6 +16,7 @@ package com.android.tools.idea.wizard; import com.android.assetstudiolib.GraphicGenerator; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import org.jetbrains.annotations.Nullable; import java.awt.*; diff --git a/android/src/com/android/tools/idea/wizard/TemplateListProvider.java b/android/src/com/android/tools/idea/wizard/TemplateListProvider.java index a24e53fb09b..6ba210ef595 100644 --- a/android/src/com/android/tools/idea/wizard/TemplateListProvider.java +++ b/android/src/com/android/tools/idea/wizard/TemplateListProvider.java @@ -17,6 +17,8 @@ package com.android.tools.idea.wizard; import com.android.tools.idea.templates.TemplateManager; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.intellij.openapi.util.text.StringUtil; diff --git a/android/src/com/android/tools/idea/wizard/TemplateParameterStep2.java b/android/src/com/android/tools/idea/wizard/TemplateParameterStep2.java index b442c491349..aec20728460 100644 --- a/android/src/com/android/tools/idea/wizard/TemplateParameterStep2.java +++ b/android/src/com/android/tools/idea/wizard/TemplateParameterStep2.java @@ -22,6 +22,8 @@ import com.android.sdklib.AndroidVersion; import com.android.tools.idea.templates.Parameter; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.base.*; import com.google.common.base.Objects; import com.google.common.base.Optional; @@ -73,8 +75,8 @@ import java.io.IOException; import java.util.*; import java.util.List; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * Wizard step for specifying template-specific parameters. diff --git a/android/src/com/android/tools/idea/wizard/WizardConstants.java b/android/src/com/android/tools/idea/wizard/WizardConstants.java index 04c62de8804..99de5f93a31 100644 --- a/android/src/com/android/tools/idea/wizard/WizardConstants.java +++ b/android/src/com/android/tools/idea/wizard/WizardConstants.java @@ -17,6 +17,7 @@ package com.android.tools.idea.wizard; import com.android.sdklib.repository.descriptors.IPkgDesc; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.collect.ImmutableSet; import com.intellij.ui.JBColor; @@ -26,10 +27,10 @@ import java.util.List; import java.util.Set; import static com.android.tools.idea.templates.TemplateMetadata.*; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.STEP; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.WIZARD; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.STEP; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.WIZARD; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * Constants for template based wizards diff --git a/android/src/com/android/tools/idea/wizard/WizardParameterFactory.java b/android/src/com/android/tools/idea/wizard/WizardParameterFactory.java index 210b06edcc7..87ab0977a91 100644 --- a/android/src/com/android/tools/idea/wizard/WizardParameterFactory.java +++ b/android/src/com/android/tools/idea/wizard/WizardParameterFactory.java @@ -17,6 +17,7 @@ package com.android.tools.idea.wizard; import com.android.tools.idea.templates.Parameter; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; import com.intellij.openapi.extensions.ExtensionPointName; import javax.swing.*; diff --git a/android/src/com/android/tools/idea/wizard/WizardPath.java b/android/src/com/android/tools/idea/wizard/WizardPath.java index 513ff68a8f5..d5c4ea57bc7 100644 --- a/android/src/com/android/tools/idea/wizard/WizardPath.java +++ b/android/src/com/android/tools/idea/wizard/WizardPath.java @@ -15,6 +15,7 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; import com.intellij.ide.util.projectWizard.ModuleWizardStep; import java.util.Collection; diff --git a/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.java b/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.java index 770ef36f3b9..4965f40f8ac 100644 --- a/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.java +++ b/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.java @@ -18,6 +18,7 @@ package com.android.tools.idea.wizard; import com.android.tools.idea.gradle.IdeaGradleProject; import com.android.tools.idea.gradle.facet.AndroidGradleFacet; import com.android.tools.idea.gradle.util.GradleUtil; +import com.android.tools.idea.wizard.dynamic.AndroidStudioWizardStep; import com.android.tools.idea.wizard.template.TemplateWizardState; import com.google.common.base.Splitter; import com.google.common.base.Strings; diff --git a/android/src/com/android/tools/idea/wizard/AndroidStudioWizardPath.java b/android/src/com/android/tools/idea/wizard/dynamic/AndroidStudioWizardPath.java index 405f5c1ca6f..96d91da8aad 100644 --- a/android/src/com/android/tools/idea/wizard/AndroidStudioWizardPath.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/AndroidStudioWizardPath.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.ide.wizard.Step; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/wizard/AndroidStudioWizardStep.java b/android/src/com/android/tools/idea/wizard/dynamic/AndroidStudioWizardStep.java index 2d1b0d25718..b70589ab466 100644 --- a/android/src/com/android/tools/idea/wizard/AndroidStudioWizardStep.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/AndroidStudioWizardStep.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; /** * This interface is needed to unify several wizard mini-frameworks we have. diff --git a/android/src/com/android/tools/idea/wizard/DialogWrapperHost.java b/android/src/com/android/tools/idea/wizard/dynamic/DialogWrapperHost.java index 1a01f910db4..01851cb88e1 100644 --- a/android/src/com/android/tools/idea/wizard/DialogWrapperHost.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/DialogWrapperHost.java @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; +import com.android.tools.idea.wizard.WizardConstants; import com.google.common.collect.Maps; import com.intellij.ide.IdeBundle; import com.intellij.openapi.application.Application; @@ -41,7 +42,7 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicReference; /** - * Uses {@link com.intellij.openapi.ui.DialogWrapper} to display a wizard in a dialog + * Uses {@link DialogWrapper} to display a wizard in a dialog */ public class DialogWrapperHost extends DialogWrapper implements DynamicWizardHost { // Action References. myCancelAction and myHelpAction are inherited diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizard.java b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizard.java index d30d8cfce9a..b2e970297a4 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizard.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizard.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.android.tools.idea.wizard.template.TemplateWizard; import com.google.common.collect.Lists; @@ -41,7 +41,7 @@ import java.util.ArrayList; import java.util.Map; import java.util.Set; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; /** * DynamicWizard is an evolution of {@link TemplateWizard} that seeks to provide a flexible base for @@ -62,7 +62,8 @@ public abstract class DynamicWizard implements ScopedStateStore.ScopedStoreListe // 42 is an arbitrary number. This constant is for the number of update cycles before // we decide there's circular dependency and we cannot settle down the model state. public static final int MAX_UPDATE_ATTEMPTS = 42; - Logger LOG = Logger.getInstance(DynamicWizard.class); + // TODO: Make this logger private and create new loggers for anywhere that complains + public static Logger LOG = Logger.getInstance(DynamicWizard.class); // A queue of updates used to throttle the update() function. private final MergingUpdateQueue myUpdateQueue; @@ -186,7 +187,7 @@ public abstract class DynamicWizard implements ScopedStateStore.ScopedStoreListe * If the this wizard is a global one, the function returns null. */ @Nullable - protected Project getProject() { + public Project getProject() { return myProject; } @@ -228,13 +229,23 @@ public abstract class DynamicWizard implements ScopedStateStore.ScopedStoreListe /** * Add the given path to the end of this wizard. */ - protected final void addPath(@NotNull AndroidStudioWizardPath path) { + public final void addPath(@NotNull AndroidStudioWizardPath path) { myPaths.add(path); path.attachToWizard(this); // Rebuild the iterator to avoid concurrent modification exceptions myPathListIterator = new PathIterator(myPaths); } + @NotNull + public final ArrayList<AndroidStudioWizardPath> getAllPaths() { + return myPaths; + } + + @Nullable + public final AndroidStudioWizardPath getCurrentPath() { + return myCurrentPath; + } + /** * @return the total number of visible steps in this wizard. */ diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizardHost.java b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardHost.java index 96d4b448448..7be33662c1d 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizardHost.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardHost.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.openapi.Disposable; import com.intellij.openapi.progress.ProgressIndicator; diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizardPath.java b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardPath.java index 9358dbdb92d..b4d0b08b105 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizardPath.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardPath.java @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; +import com.android.annotations.VisibleForTesting; import com.google.common.collect.Lists; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; @@ -29,7 +30,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; /** * DynamicWizardPath @@ -112,7 +113,7 @@ public abstract class DynamicWizardPath implements ScopedStateStore.ScopedStoreL /** * Add a new step to the end of this path. */ - protected final void addStep(@NotNull DynamicWizardStep step) { + public final void addStep(@NotNull DynamicWizardStep step) { mySteps.add(step); step.attachToPath(this); } @@ -124,6 +125,11 @@ public abstract class DynamicWizardPath implements ScopedStateStore.ScopedStoreL return myState; } + @VisibleForTesting + public final void setState(@NotNull ScopedStateStore overrideState) { + myState = overrideState; + } + /** * @return the number of visible steps currently in this path. */ diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizardStep.java b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStep.java index f4806f3ddd4..b31d82ca4f0 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizardStep.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStep.java @@ -13,14 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; +import com.android.tools.idea.wizard.WizardConstants; import com.intellij.ide.wizard.CommitStepException; import com.intellij.ide.wizard.Step; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.JBColor; import com.intellij.util.ui.update.MergingUpdateQueue; import com.intellij.util.ui.update.Update; @@ -32,8 +34,8 @@ import java.awt.*; import java.util.Map; import java.util.Set; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.STEP; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.STEP; /** * DynamicWizardStep @@ -279,11 +281,9 @@ public abstract class DynamicWizardStep extends ScopedDataBinder implements Step * @param errorMessage the message to display */ public final void setErrorHtml(@Nullable String errorMessage) { - if (errorMessage != null && !errorMessage.startsWith("<html>")) { - errorMessage = "<html>" + errorMessage + "</html>"; - } JLabel label = getMessageLabel(); if (label != null) { + errorMessage = toHtml(errorMessage); label.setText(errorMessage); } else { @@ -367,6 +367,19 @@ public abstract class DynamicWizardStep extends ScopedDataBinder implements Step @Nullable protected abstract String getStepDescription(); + /** + * Wrap the target string with html tags unless it is already tagged. If the input string is + * {@code null} then the output string will also be {@code null}. + */ + @Nullable + protected final String toHtml(@Nullable String text) { + if (!StringUtil.isEmpty(text) && !text.startsWith("<html>")) { + text = String.format("<html>%1$s</html>", text.trim()); + } + return text; + + } + private class StepUpdate extends Update { private final Key<?> myChangedKey; diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithDescription.form b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithDescription.form index 2041d867055..1f6f8606ddb 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithDescription.form +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithDescription.form @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.wizard.DynamicWizardStepWithDescription"> +<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithDescription"> <grid id="27dc6" binding="myRootPane" layout-manager="BorderLayout" hgap="0" vgap="0"> <constraints> <xy x="20" y="20" width="500" height="400"/> diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithDescription.java b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithDescription.java index 7dacbe00b2e..dfc7af85165 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithDescription.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithDescription.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.openapi.Disposable; import com.intellij.openapi.util.Disposer; @@ -34,9 +34,9 @@ import java.beans.PropertyChangeListener; import java.util.Map; import java.util.WeakHashMap; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; import static com.android.tools.idea.wizard.WizardConstants.STUDIO_WIZARD_INSETS; import static com.android.tools.idea.wizard.WizardConstants.STUDIO_WIZARD_INSET_SIZE; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * <p>Base class for wizard steps that have a description label in the bottom. @@ -132,7 +132,7 @@ public abstract class DynamicWizardStepWithDescription extends DynamicWizardStep register(KEY_DESCRIPTION, getDescriptionLabel(), new ComponentBinding<String, JLabel>() { @Override public void setValue(String newValue, @NotNull JLabel label) { - label.setText(ImportUIUtil.makeHtmlString(newValue)); + label.setText(toHtml(newValue)); } }); } diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithHeaderAndDescription.form b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithHeaderAndDescription.form index 6d4ace36a31..9f1779ec487 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithHeaderAndDescription.form +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithHeaderAndDescription.form @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.wizard.DynamicWizardStepWithHeaderAndDescription"> +<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription"> <grid id="27dc6" binding="myHeaderPane" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="0" left="0" bottom="0" right="0"/> <constraints> diff --git a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithHeaderAndDescription.java b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithHeaderAndDescription.java index 9e7af996fed..478f81be784 100644 --- a/android/src/com/android/tools/idea/wizard/DynamicWizardStepWithHeaderAndDescription.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithHeaderAndDescription.java @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; +import com.android.tools.idea.wizard.WizardConstants; import com.intellij.openapi.Disposable; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.JBColor; @@ -27,8 +28,8 @@ import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.*; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; import static com.android.tools.idea.wizard.WizardConstants.STUDIO_WIZARD_INSET_SIZE; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * Base class for wizard pages with title and description labels underneath @@ -89,7 +90,7 @@ public abstract class DynamicWizardStepWithHeaderAndDescription extends DynamicW @Override public void setValue(@Nullable String newValue, @NotNull JLabel component) { component.setVisible(!StringUtil.isEmpty(newValue)); - component.setText(ImportUIUtil.makeHtmlString(newValue)); + component.setText(toHtml(newValue)); } }); } diff --git a/android/src/com/android/tools/idea/wizard/RadioButtonGroupBinding.java b/android/src/com/android/tools/idea/wizard/dynamic/RadioButtonGroupBinding.java index a2e799ba21b..556f82b5356 100644 --- a/android/src/com/android/tools/idea/wizard/RadioButtonGroupBinding.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/RadioButtonGroupBinding.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.google.common.base.Objects; import com.google.common.collect.ImmutableMap; @@ -25,7 +25,7 @@ import java.awt.event.ActionListener; import java.util.Map; /** - * Class for binding radio buttons to {@link com.android.tools.idea.wizard.ScopedStateStore} + * Class for binding radio buttons to {@link ScopedStateStore} */ public class RadioButtonGroupBinding<E> extends ScopedDataBinder.ComponentBinding<E, JRadioButton> { private final Map<JRadioButton, E> myValueToButtonBinding; diff --git a/android/src/com/android/tools/idea/wizard/ScopedDataBinder.java b/android/src/com/android/tools/idea/wizard/dynamic/ScopedDataBinder.java index a26c5fd08ea..d6692c9d396 100644 --- a/android/src/com/android/tools/idea/wizard/ScopedDataBinder.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/ScopedDataBinder.java @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.android.annotations.VisibleForTesting; import com.android.tools.idea.ui.TextAccessors; +import com.android.tools.idea.wizard.ComboBoxItem; import com.google.common.base.Objects; import com.google.common.collect.*; import com.intellij.openapi.ui.TextFieldWithBrowseButton; @@ -39,14 +40,14 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope; /** * A data binding class that links Swing UI elements to a {@link ScopedStateStore}. * Provides data bindings between Swing JComponents of various types and a ScopedStateStore. * Components may be registered in a 2-way binding by calling - * {@link #register(com.android.tools.idea.wizard.ScopedStateStore.Key, javax.swing.JCheckBox)}. + * {@link #register(ScopedStateStore.Key, javax.swing.JCheckBox)}. * Once registered, any change to the state store will trigger an update of the UI, and any update of the UI will automatically * enter the value into the state store. * @@ -99,7 +100,9 @@ import static com.android.tools.idea.wizard.ScopedStateStore.Scope; public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, FocusListener, ChangeListener, ActionListener, DocumentListener, ItemListener { // State store - protected ScopedStateStore myState; + // TODO: Temporary change. Set to private in a followup CL! + @VisibleForTesting + public ScopedStateStore myState; // Mapping documents to components. private Map<Document, JComponent> myDocumentsToComponent = Maps.newIdentityHashMap(); @@ -218,7 +221,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F */ @VisibleForTesting @SuppressWarnings("unchecked") - protected <T> void saveState(@NotNull JComponent component) { + public <T> void saveState(@NotNull JComponent component) { if (myAlreadySavingState) { return; } @@ -354,7 +357,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link ValueDeriver} to the given key. Whenever an update is triggered, the given deriver will * be queried to update the underlying value. */ - protected <T> void registerValueDeriver(@NotNull Key<T> key, @NotNull ValueDeriver<T> deriver) { + public <T> void registerValueDeriver(@NotNull Key<T> key, @NotNull ValueDeriver<T> deriver) { myValueDerivers.put(key, deriver); } @@ -417,7 +420,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link JComponent} to the given key through the given binding * and sets a listener to pick up changes that need to trigger validation and UI updates. */ - protected <T, C extends JComponent> void register(@NotNull Key<T> key, @NotNull C component, + public <T, C extends JComponent> void register(@NotNull Key<T> key, @NotNull C component, @NotNull ComponentBinding<T, ? super C> binding) { T value = bindAndGet(key, component, binding); if (value != null) { @@ -477,7 +480,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link javax.swing.JCheckBox} to the given key and sets a listener to pick up changes that * need to trigger validation and UI updates. */ - protected void register(@NotNull Key<Boolean> key, @NotNull JCheckBox checkBox) { + public void register(@NotNull Key<Boolean> key, @NotNull JCheckBox checkBox) { Boolean value = bindAndGet(key, checkBox, null); if (value != null) { checkBox.setSelected(value); @@ -523,7 +526,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link JTextField} to the given key and sets a listener to pick up changes that need to trigger validation * and UI updates. */ - protected void register(@NotNull Key<String> key, @NotNull JTextField textField) { + public void register(@NotNull Key<String> key, @NotNull JTextField textField) { myDocumentsToComponent.put(textField.getDocument(), textField); String value = bindAndGet(key, textField, null); if (value != null) { @@ -535,7 +538,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F textField.getDocument().addDocumentListener(this); } - protected void register(@NotNull Key<String> key, @NotNull JLabel label) { + public void register(@NotNull Key<String> key, @NotNull JLabel label) { String value = bindAndGet(key, label, null); if (value != null) { label.setText(value); @@ -548,7 +551,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link JSlider} to the given key and sets a listener to pick up changes that need to trigger validation * and UI updates. */ - protected void register(@NotNull Key<Integer> key, @NotNull JSlider paddingSlider) { + public void register(@NotNull Key<Integer> key, @NotNull JSlider paddingSlider) { Integer value = bindAndGet(key, paddingSlider, null); if (value != null) { paddingSlider.setValue(value); @@ -563,7 +566,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link JSpinner} to the given key and sets a listener to pick up changes that need to trigger validation * and UI updates. */ - protected void register(@NotNull Key<Object> key, @NotNull JSpinner spinner) { + public void register(@NotNull Key<Object> key, @NotNull JSpinner spinner) { Object value = bindAndGet(key, spinner, null); if (value != null) { spinner.setValue(value); @@ -578,7 +581,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link TextFieldWithBrowseButton} to the given key and sets a listener to pick up * changes that need to trigger validation and UI updates. */ - protected void register(@NotNull Key<String> key, @NotNull final TextFieldWithBrowseButton field) { + public void register(@NotNull Key<String> key, @NotNull final TextFieldWithBrowseButton field) { myDocumentsToComponent.put(field.getTextField().getDocument(), field); String value = bindAndGet(key, field, null); if (value != null) { @@ -591,7 +594,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F field.getTextField().addFocusListener(this); } - protected void register(@NotNull Key<String> key, @NotNull final TextAccessor field) { + public void register(@NotNull Key<String> key, @NotNull final TextAccessor field) { assert field instanceof JComponent; JComponent component = (JComponent)field; @@ -608,7 +611,7 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F * Connects the given {@link ColorPanel} to the given key and sets a listener to pick up changes that need to trigger validation * and UI updates. */ - protected void register(@NotNull Key<Color> key, @NotNull ColorPanel colorPanel) { + public void register(@NotNull Key<Color> key, @NotNull ColorPanel colorPanel) { Color value = bindAndGet(key, colorPanel, null); if (value != null) { colorPanel.setSelectedColor(value); diff --git a/android/src/com/android/tools/idea/wizard/ScopedStateStore.java b/android/src/com/android/tools/idea/wizard/dynamic/ScopedStateStore.java index 10a7edb0bf4..e8d257f1693 100644 --- a/android/src/com/android/tools/idea/wizard/ScopedStateStore.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/ScopedStateStore.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.google.common.base.Function; import com.google.common.collect.*; diff --git a/android/src/com/android/tools/idea/wizard/SingleStepDialogWrapperHost.java b/android/src/com/android/tools/idea/wizard/dynamic/SingleStepDialogWrapperHost.java index 5ec0bc22c41..f7dcef46890 100644 --- a/android/src/com/android/tools/idea/wizard/SingleStepDialogWrapperHost.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/SingleStepDialogWrapperHost.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.ide.IdeBundle; import com.intellij.openapi.project.Project; diff --git a/android/src/com/android/tools/idea/wizard/SingleStepPath.java b/android/src/com/android/tools/idea/wizard/dynamic/SingleStepPath.java index 73e0368907a..905fdb7809e 100644 --- a/android/src/com/android/tools/idea/wizard/SingleStepPath.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/SingleStepPath.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import org.jetbrains.annotations.NotNull; diff --git a/android/src/com/android/tools/idea/wizard/SingleStepWizard.java b/android/src/com/android/tools/idea/wizard/dynamic/SingleStepWizard.java index 1f9ddc9c886..2c26d1c614d 100644 --- a/android/src/com/android/tools/idea/wizard/SingleStepWizard.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/SingleStepWizard.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; diff --git a/android/src/com/android/tools/idea/wizard/WizardStepHeaderPanel.java b/android/src/com/android/tools/idea/wizard/dynamic/WizardStepHeaderPanel.java index f2ea1282e04..fb46bc72298 100644 --- a/android/src/com/android/tools/idea/wizard/WizardStepHeaderPanel.java +++ b/android/src/com/android/tools/idea/wizard/dynamic/WizardStepHeaderPanel.java @@ -13,8 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; +import com.android.tools.idea.wizard.ImageComponent; +import com.android.tools.idea.wizard.WizardConstants; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.JBColor; import com.intellij.uiDesigner.core.GridConstraints; diff --git a/android/src/com/android/tools/idea/wizard/dynamic/package-info.java b/android/src/com/android/tools/idea/wizard/dynamic/package-info.java new file mode 100644 index 00000000000..36cfed7ff65 --- /dev/null +++ b/android/src/com/android/tools/idea/wizard/dynamic/package-info.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2015 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. + */ + +/** + * Support for wizards that allow dynamically adding multiple paths and steps (unlike the wizards + * offered by IntelliJ, which require a fixed list of steps up front). + * <p/> + * A path is a collection of one or more steps, and wizards contain one or more paths. Furthermore, + * different wizards may share (their own instances of) the same path class. + * <p/> + * Data is passed along the wizard from step to step via a + * {@link com.android.tools.idea.wizard.dynamic.ScopedStateStore}, which is a hashtable of data, + * essentially. + */ +package com.android.tools.idea.wizard.dynamic;
\ No newline at end of file diff --git a/android/src/com/android/tools/idea/wizard/template/TemplateWizard.java b/android/src/com/android/tools/idea/wizard/template/TemplateWizard.java index 33351f2ab75..c4fdb16f905 100644 --- a/android/src/com/android/tools/idea/wizard/template/TemplateWizard.java +++ b/android/src/com/android/tools/idea/wizard/template/TemplateWizard.java @@ -16,7 +16,7 @@ package com.android.tools.idea.wizard.template; import com.android.sdklib.IAndroidTarget; -import com.android.tools.idea.wizard.AndroidStudioWizardStep; +import com.android.tools.idea.wizard.dynamic.AndroidStudioWizardStep; import com.intellij.ide.util.projectWizard.ModuleWizardStep; import com.intellij.ide.wizard.AbstractWizard; import com.intellij.openapi.project.Project; diff --git a/android/src/com/android/tools/idea/wizard/template/TemplateWizardState.java b/android/src/com/android/tools/idea/wizard/template/TemplateWizardState.java index bec5ce14138..01744f7c99b 100644 --- a/android/src/com/android/tools/idea/wizard/template/TemplateWizardState.java +++ b/android/src/com/android/tools/idea/wizard/template/TemplateWizardState.java @@ -22,7 +22,11 @@ import com.android.tools.idea.model.ManifestInfo; import com.android.tools.idea.templates.Parameter; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateMetadata; -import com.android.tools.idea.wizard.*; +import com.android.tools.idea.wizard.FormFactorUtils; +import com.android.tools.idea.wizard.NewModuleWizardState; +import com.android.tools.idea.wizard.NewTemplateObjectWizard; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.google.common.base.Function; import com.intellij.openapi.module.Module; import com.intellij.openapi.util.io.FileUtil; diff --git a/android/src/com/android/tools/idea/wizard/template/TemplateWizardStep.java b/android/src/com/android/tools/idea/wizard/template/TemplateWizardStep.java index 9c5467552b7..f610e0771b6 100755 --- a/android/src/com/android/tools/idea/wizard/template/TemplateWizardStep.java +++ b/android/src/com/android/tools/idea/wizard/template/TemplateWizardStep.java @@ -18,9 +18,9 @@ package com.android.tools.idea.wizard.template; import com.android.tools.idea.templates.Parameter; import com.android.tools.idea.templates.Template; import com.android.tools.idea.templates.TemplateMetadata; -import com.android.tools.idea.wizard.AndroidStudioWizardStep; +import com.android.tools.idea.wizard.dynamic.AndroidStudioWizardStep; import com.android.tools.idea.wizard.ComboBoxItem; -import com.android.tools.idea.wizard.DynamicWizardStepWithHeaderAndDescription; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription; import com.android.tools.idea.wizard.StringEvaluator; import com.android.utils.Pair; import com.android.utils.XmlUtils; diff --git a/android/testSrc/com/android/tools/idea/welcome/install/AndroidVirtualDeviceTest.java b/android/testSrc/com/android/tools/idea/welcome/install/AndroidVirtualDeviceTest.java index c4ca12de1ee..39bd60c0110 100755 --- a/android/testSrc/com/android/tools/idea/welcome/install/AndroidVirtualDeviceTest.java +++ b/android/testSrc/com/android/tools/idea/welcome/install/AndroidVirtualDeviceTest.java @@ -15,25 +15,15 @@ */ package com.android.tools.idea.welcome.install; -import com.android.sdklib.AndroidVersion; import com.android.sdklib.SdkManager; import com.android.sdklib.internal.avd.AvdInfo; import com.android.sdklib.internal.avd.AvdManager; -import com.android.sdklib.repository.FullRevision; -import com.android.sdklib.repository.IDescription; -import com.android.sdklib.repository.MajorRevision; -import com.android.sdklib.repository.descriptors.PkgDesc; -import com.android.sdklib.repository.descriptors.PkgType; import com.android.sdklib.repository.local.LocalSdk; import com.android.tools.idea.AndroidTestCaseHelper; import com.android.tools.idea.avdmanager.AvdManagerConnection; -import com.android.tools.idea.sdk.remote.RemotePkgInfo; -import com.android.tools.idea.sdk.remote.internal.packages.RemotePlatformPkgInfo; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.utils.StdLogger; -import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Multimap; import com.intellij.openapi.Disposable; import com.intellij.testFramework.fixtures.IdeaProjectTestFixture; import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory; diff --git a/android/testSrc/com/android/tools/idea/welcome/wizard/FirstRunWizardTest.java b/android/testSrc/com/android/tools/idea/welcome/wizard/FirstRunWizardTest.java index 7e7791036fd..6db60114b2b 100644 --- a/android/testSrc/com/android/tools/idea/welcome/wizard/FirstRunWizardTest.java +++ b/android/testSrc/com/android/tools/idea/welcome/wizard/FirstRunWizardTest.java @@ -18,11 +18,11 @@ package com.android.tools.idea.welcome.wizard; import com.android.tools.idea.welcome.config.InstallerData; import com.android.tools.idea.welcome.install.ComponentCategory; import com.android.tools.idea.welcome.config.FirstRunWizardMode; -import com.android.tools.idea.wizard.DynamicWizard; -import com.android.tools.idea.wizard.DynamicWizardStep; -import com.android.tools.idea.wizard.ScopedStateStore; -import com.android.tools.idea.wizard.ScopedStateStore.Key; -import com.android.tools.idea.wizard.SingleStepPath; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardStep; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import com.android.tools.idea.wizard.dynamic.SingleStepPath; import com.intellij.openapi.util.text.StringUtil; import com.intellij.testFramework.fixtures.IdeaProjectTestFixture; import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory; diff --git a/android/testSrc/com/android/tools/idea/welcome/wizard/InstallComponentsPathTest.java b/android/testSrc/com/android/tools/idea/welcome/wizard/InstallComponentsPathTest.java index 1cbe5d29b99..23b9deb8276 100644 --- a/android/testSrc/com/android/tools/idea/welcome/wizard/InstallComponentsPathTest.java +++ b/android/testSrc/com/android/tools/idea/welcome/wizard/InstallComponentsPathTest.java @@ -23,7 +23,7 @@ import com.android.sdklib.repository.local.LocalPkgInfo; import com.android.tools.idea.AndroidTestCaseHelper; import com.android.tools.idea.sdk.SdkLoggerIntegration; import com.android.tools.idea.welcome.install.*; -import com.android.tools.idea.wizard.ScopedStateStore; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.utils.ILogger; import com.android.utils.StdLogger; import com.google.common.base.Function; diff --git a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamicTest.java b/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamicTest.java index 352b0ae7b3f..0627d44ef0b 100644 --- a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamicTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamicTest.java @@ -16,6 +16,7 @@ package com.android.tools.idea.wizard; import com.android.tools.idea.templates.AndroidGradleTestCase; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; diff --git a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidProjectStepTest.java b/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidProjectStepTest.java index 0bb08ac07fd..c9bf1de5008 100644 --- a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidProjectStepTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidProjectStepTest.java @@ -15,6 +15,7 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import junit.framework.TestCase; import static com.android.tools.idea.wizard.WizardConstants.APPLICATION_NAME_KEY; diff --git a/android/testSrc/com/android/tools/idea/wizard/NewFormFactorModulePathTest.java b/android/testSrc/com/android/tools/idea/wizard/NewFormFactorModulePathTest.java index 64a7a51b113..ffbae93ff4e 100644 --- a/android/testSrc/com/android/tools/idea/wizard/NewFormFactorModulePathTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/NewFormFactorModulePathTest.java @@ -15,14 +15,15 @@ */ package com.android.tools.idea.wizard; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import org.jetbrains.android.AndroidTestCase; import java.io.File; import java.util.Collections; import static com.android.tools.idea.wizard.FormFactorUtils.FormFactor.MOBILE; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.PATH; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.WIZARD; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.PATH; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.WIZARD; import static com.android.tools.idea.wizard.WizardConstants.NEWLY_INSTALLED_API_KEY; public class NewFormFactorModulePathTest extends AndroidTestCase { @@ -34,29 +35,29 @@ public class NewFormFactorModulePathTest extends AndroidTestCase { super.setUp(); myPath = new NewFormFactorModulePath(MOBILE, new File("/"), getTestRootDisposable()); ScopedStateStore wizardState = new ScopedStateStore(WIZARD, null, null); - myPath.myState = new ScopedStateStore(PATH, wizardState, null); + myPath.setState(new ScopedStateStore(PATH, wizardState, null)); } public void testDeriveValues_addsNewApiWhenAvailable() throws Exception { ScopedStateStore.Key<Integer> targetApiLevelKey = FormFactorUtils.getTargetApiLevelKey(MOBILE); - myPath.myState.put(targetApiLevelKey, 18); - myPath.myState.put(NEWLY_INSTALLED_API_KEY, 19); + myPath.getState().put(targetApiLevelKey, 18); + myPath.getState().put(NEWLY_INSTALLED_API_KEY, 19); myPath.deriveValues(Collections.EMPTY_SET); - assertNotNull(myPath.myState.get(targetApiLevelKey)); - assertEquals(Integer.valueOf(19), myPath.myState.get(targetApiLevelKey)); + assertNotNull(myPath.getState().get(targetApiLevelKey)); + assertEquals(Integer.valueOf(19), myPath.getState().get(targetApiLevelKey)); } public void testDeriveValues_doesNotChangeIfLowerApiInstalled() throws Exception { ScopedStateStore.Key<Integer> targetApiLevelKey = FormFactorUtils.getTargetApiLevelKey(MOBILE); - myPath.myState.put(targetApiLevelKey, 18); - myPath.myState.put(NEWLY_INSTALLED_API_KEY, 17); + myPath.getState().put(targetApiLevelKey, 18); + myPath.getState().put(NEWLY_INSTALLED_API_KEY, 17); myPath.deriveValues(Collections.EMPTY_SET); - assertNotNull(myPath.myState.get(targetApiLevelKey)); - assertEquals(Integer.valueOf(18), myPath.myState.get(targetApiLevelKey)); + assertNotNull(myPath.getState().get(targetApiLevelKey)); + assertEquals(Integer.valueOf(18), myPath.getState().get(targetApiLevelKey)); } }
\ No newline at end of file diff --git a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2DynamcTypeTest.java b/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2DynamcTypeTest.java index 0c44e124f58..9febdd0dbe4 100644 --- a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2DynamcTypeTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2DynamcTypeTest.java @@ -17,6 +17,8 @@ package com.android.tools.idea.wizard; import com.android.tools.idea.templates.Parameter; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.ScopedDataBinder; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.utils.XmlUtils; import com.google.common.base.Strings; import com.intellij.openapi.extensions.DefaultPluginDescriptor; diff --git a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2Test.java b/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2Test.java index dbb71bd85a5..61ae2873605 100644 --- a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2Test.java +++ b/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2Test.java @@ -17,6 +17,9 @@ package com.android.tools.idea.wizard; import com.android.builder.model.SourceProvider; import com.android.tools.idea.templates.TemplateMetadata; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardPath; +import com.android.tools.idea.wizard.dynamic.ScopedStateStore; import com.android.utils.XmlUtils; import com.google.common.collect.ImmutableMap; import com.intellij.openapi.Disposable; diff --git a/android/testSrc/com/android/tools/idea/wizard/DynamicWizardPathTest.java b/android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardPathTest.java index 5fb0d6a3ac4..d834074e4b9 100644 --- a/android/testSrc/com/android/tools/idea/wizard/DynamicWizardPathTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardPathTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.testFramework.fixtures.IdeaProjectTestFixture; import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory; @@ -24,7 +24,7 @@ import org.jetbrains.annotations.NotNull; import java.util.Set; -import static com.android.tools.idea.wizard.DynamicWizardStepTest.DummyDynamicWizardStep; +import static com.android.tools.idea.wizard.dynamic.DynamicWizardStepTest.DummyDynamicWizardStep; /** * Tests for {@link DynamicWizardPath} @@ -58,15 +58,15 @@ public class DynamicWizardPathTest extends AndroidTestBase { public void testAddStep() throws Exception { assertEquals(0, myPath.getVisibleStepCount()); - assertEquals(0, myPath.mySteps.size()); + assertEquals(0, myPath.getAllSteps().size()); myPath.addStep(myStep1); assertEquals(1, myPath.getVisibleStepCount()); - assertEquals(1, myPath.mySteps.size()); + assertEquals(1, myPath.getAllSteps().size()); myPath.addStep(myStep2); assertEquals(2, myPath.getVisibleStepCount()); - assertEquals(2, myPath.mySteps.size()); + assertEquals(2, myPath.getAllSteps().size()); } public void testGetStepCount() throws Exception { diff --git a/android/testSrc/com/android/tools/idea/wizard/DynamicWizardStepTest.java b/android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardStepTest.java index 5346d090306..dade8d18e8a 100644 --- a/android/testSrc/com/android/tools/idea/wizard/DynamicWizardStepTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardStepTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import icons.AndroidIcons; import junit.framework.TestCase; diff --git a/android/testSrc/com/android/tools/idea/wizard/DynamicWizardTest.java b/android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardTest.java index 2a09ae6ae0d..b59a08de37b 100644 --- a/android/testSrc/com/android/tools/idea/wizard/DynamicWizardTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; @@ -24,8 +24,8 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; -import static com.android.tools.idea.wizard.DynamicWizardPathTest.DummyDynamicWizardPath; -import static com.android.tools.idea.wizard.DynamicWizardStepTest.DummyDynamicWizardStep; +import static com.android.tools.idea.wizard.dynamic.DynamicWizardPathTest.DummyDynamicWizardPath; +import static com.android.tools.idea.wizard.dynamic.DynamicWizardStepTest.DummyDynamicWizardStep; /** * Tests for {@link DynamicWizard} and a dummy implementation @@ -60,15 +60,15 @@ public class DynamicWizardTest extends LightIdeaTestCase { public void testAddPath() throws Exception { assertEquals(0, myWizard.getVisibleStepCount()); - assertEquals(0, myWizard.myPaths.size()); + assertEquals(0, myWizard.getAllPaths().size()); myWizard.addPath(myPath1); assertEquals(2, myWizard.getVisibleStepCount()); - assertEquals(1, myWizard.myPaths.size()); + assertEquals(1, myWizard.getAllPaths().size()); myWizard.addPath(myPath2); assertEquals(4, myWizard.getVisibleStepCount()); - assertEquals(2, myWizard.myPaths.size()); + assertEquals(2, myWizard.getAllPaths().size()); } public void testInvisibleFirstPage() { @@ -76,7 +76,7 @@ public class DynamicWizardTest extends LightIdeaTestCase { DynamicWizard wizard = new VisibilityTestWizard(new LabelStep(false), new LabelStep(false), visibleStep); wizard.init(); assertEquals(1, wizard.getVisibleStepCount(), 1); - assertEquals(visibleStep, wizard.myCurrentPath.getCurrentStep()); + assertEquals(visibleStep, wizard.getCurrentPath().getCurrentStep()); } public void testVisibleFirstPage() { @@ -84,7 +84,7 @@ public class DynamicWizardTest extends LightIdeaTestCase { DynamicWizard wizard = new VisibilityTestWizard(visibleStep, new LabelStep(false), new LabelStep(false), new LabelStep(true)); wizard.init(); assertEquals(1, wizard.getVisibleStepCount(), 2); - assertEquals(visibleStep, wizard.myCurrentPath.getCurrentStep()); + assertEquals(visibleStep, wizard.getCurrentPath().getCurrentStep()); } public static class DummyDynamicWizard extends DynamicWizard { diff --git a/android/testSrc/com/android/tools/idea/wizard/ScopedDataBinderTest.java b/android/testSrc/com/android/tools/idea/wizard/dynamic/ScopedDataBinderTest.java index 166837b6f12..f24860d706a 100644 --- a/android/testSrc/com/android/tools/idea/wizard/ScopedDataBinderTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/dynamic/ScopedDataBinderTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.ui.ColorPanel; @@ -26,8 +26,8 @@ import java.awt.*; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; -import static com.android.tools.idea.wizard.ScopedDataBinder.ValueDeriver; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedDataBinder.ValueDeriver; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; /** * Tests for {@link ScopedDataBinder}. These tests diff --git a/android/testSrc/com/android/tools/idea/wizard/ScopedStateStoreTest.java b/android/testSrc/com/android/tools/idea/wizard/dynamic/ScopedStateStoreTest.java index 21471901958..3a96fb50275 100644 --- a/android/testSrc/com/android/tools/idea/wizard/ScopedStateStoreTest.java +++ b/android/testSrc/com/android/tools/idea/wizard/dynamic/ScopedStateStoreTest.java @@ -13,11 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.tools.idea.wizard; +package com.android.tools.idea.wizard.dynamic; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; -import com.intellij.openapi.util.Pair; import junit.framework.TestCase; import org.jetbrains.annotations.Nullable; @@ -25,9 +24,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static com.android.tools.idea.wizard.ScopedStateStore.Key; -import static com.android.tools.idea.wizard.ScopedStateStore.Scope.*; -import static com.android.tools.idea.wizard.ScopedStateStore.createKey; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Scope.*; +import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.createKey; /** * Test cases for the {@link ScopedStateStore} diff --git a/sdk-updates/src/com/android/tools/idea/updater/UpdateInfoDialog.java b/sdk-updates/src/com/android/tools/idea/updater/UpdateInfoDialog.java index 6253e045020..723b35e2d35 100644 --- a/sdk-updates/src/com/android/tools/idea/updater/UpdateInfoDialog.java +++ b/sdk-updates/src/com/android/tools/idea/updater/UpdateInfoDialog.java @@ -21,7 +21,7 @@ import com.android.tools.idea.sdk.SdkState; import com.android.tools.idea.sdk.remote.UpdatablePkgInfo; import com.android.tools.idea.sdk.wizard.SdkQuickfixWizard; import com.android.tools.idea.welcome.wizard.WelcomeUIUtils; -import com.android.tools.idea.wizard.DialogWrapperHost; +import com.android.tools.idea.wizard.dynamic.DialogWrapperHost; import com.android.utils.HtmlBuilder; import com.intellij.ide.BrowserUtil; import com.intellij.ide.IdeBundle; diff --git a/sdk-updates/src/com/android/tools/idea/updater/configure/SdkUpdaterConfigPanel.java b/sdk-updates/src/com/android/tools/idea/updater/configure/SdkUpdaterConfigPanel.java index 6dcc72bbad3..f2803e66652 100644 --- a/sdk-updates/src/com/android/tools/idea/updater/configure/SdkUpdaterConfigPanel.java +++ b/sdk-updates/src/com/android/tools/idea/updater/configure/SdkUpdaterConfigPanel.java @@ -27,10 +27,10 @@ import com.android.tools.idea.welcome.config.FirstRunWizardMode; import com.android.tools.idea.welcome.install.FirstRunWizardDefaults; import com.android.tools.idea.welcome.wizard.InstallComponentsPath; import com.android.tools.idea.welcome.wizard.ConsolidatedProgressStep; -import com.android.tools.idea.wizard.DialogWrapperHost; -import com.android.tools.idea.wizard.DynamicWizard; -import com.android.tools.idea.wizard.DynamicWizardHost; -import com.android.tools.idea.wizard.SingleStepPath; +import com.android.tools.idea.wizard.dynamic.DialogWrapperHost; +import com.android.tools.idea.wizard.dynamic.DynamicWizard; +import com.android.tools.idea.wizard.dynamic.DynamicWizardHost; +import com.android.tools.idea.wizard.dynamic.SingleStepPath; import com.android.utils.ILogger; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; |