summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Herman <davidherman@google.com>2015-07-16 16:44:29 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-07-16 16:44:35 +0000
commiteece2f0d2213fdd64375360b2a8da001ab9b8f7a (patch)
tree7b3fc98d92b152fa319be39a624e6e4adfc23424
parent80d475d9611f3c13a35e99ef45a718a534ae3df7 (diff)
parent386b800bddff2f3c89d5a4933b2c4a6e3be826c0 (diff)
downloadidea-eece2f0d2213fdd64375360b2a8da001ab9b8f7a.tar.gz
Merge changes from topic 'wizard_reorg' into studio-1.4-dev
* changes: Moved stray class to idea.template Moved wizard UI components into ui package Moved wizard forms into npw package Moved some wizard classes into wizard.dynamic Moved some wizard classes into wizard.template Removed unused wizard classes
-rw-r--r--android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/AbstractWizardFixture.java3
-rw-r--r--android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureAndroidProjectStepFixture.java2
-rw-r--r--android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureFormFactorStepFixture.java2
-rw-r--r--android/guiTestSrc/com/android/tools/idea/tests/gui/gradle/NewModuleTest.java2
-rw-r--r--android/guiTestSrc/com/android/tools/idea/tests/gui/layout/NewProjectTest.java2
-rwxr-xr-xandroid/src/META-INF/plugin.xml14
-rw-r--r--android/src/com/android/tools/idea/actions/AndroidAssetStudioAction.java2
-rw-r--r--android/src/com/android/tools/idea/actions/AndroidImportModuleAction.java2
-rw-r--r--android/src/com/android/tools/idea/actions/AndroidNewModuleAction.java2
-rw-r--r--android/src/com/android/tools/idea/actions/AndroidNewProjectAction.java2
-rw-r--r--android/src/com/android/tools/idea/actions/AndroidVectorAssetStudioAction.java3
-rw-r--r--android/src/com/android/tools/idea/actions/NewAndroidComponentAction.java2
-rw-r--r--android/src/com/android/tools/idea/actions/ShowLicensesUsedAction.java4
-rw-r--r--android/src/com/android/tools/idea/avdmanager/AvdConfigurationOptionHelpPanel.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/AvdConfigurationPath.java4
-rw-r--r--android/src/com/android/tools/idea/avdmanager/AvdDisplayList.java2
-rwxr-xr-xandroid/src/com/android/tools/idea/avdmanager/AvdEditWizard.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/AvdListDialog.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/AvdWizardConstants.java8
-rwxr-xr-xandroid/src/com/android/tools/idea/avdmanager/ChooseDeviceDefinitionStep.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/ChooseSystemImageStep.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.form2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java4
-rwxr-xr-xandroid/src/com/android/tools/idea/avdmanager/ConfigureDeviceOptionsStep.java4
-rwxr-xr-xandroid/src/com/android/tools/idea/avdmanager/DeviceDefinitionList.java2
-rwxr-xr-xandroid/src/com/android/tools/idea/avdmanager/DeviceEditWizard.java4
-rw-r--r--android/src/com/android/tools/idea/avdmanager/EmptyAvdListPanel.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/HaxmAlert.java1
-rwxr-xr-xandroid/src/com/android/tools/idea/avdmanager/SkinChooser.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/StorageField.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/SystemImageList.java2
-rw-r--r--android/src/com/android/tools/idea/avdmanager/SystemImagePreview.java5
-rw-r--r--android/src/com/android/tools/idea/configurations/DeviceMenuAction.java3
-rw-r--r--android/src/com/android/tools/idea/editors/navigation/NavigationView.java2
-rw-r--r--android/src/com/android/tools/idea/npw/AbstractModuleTemplate.java (renamed from android/src/com/android/tools/idea/wizard/AbstractModuleTemplate.java)4
-rw-r--r--android/src/com/android/tools/idea/npw/ActivityGalleryStep.java (renamed from android/src/com/android/tools/idea/wizard/ActivityGalleryStep.java)7
-rw-r--r--android/src/com/android/tools/idea/npw/AddAndroidActivityPath.java (renamed from android/src/com/android/tools/idea/wizard/AddAndroidActivityPath.java)13
-rw-r--r--android/src/com/android/tools/idea/npw/AndroidModuleTemplatesProvider.java (renamed from android/src/com/android/tools/idea/wizard/AndroidModuleTemplatesProvider.java)7
-rw-r--r--android/src/com/android/tools/idea/npw/AssetStudioAssetGenerator.java (renamed from android/src/com/android/tools/idea/wizard/AssetStudioAssetGenerator.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/AssetStudioWizard.java (renamed from android/src/com/android/tools/idea/wizard/AssetStudioWizard.java)9
-rw-r--r--android/src/com/android/tools/idea/npw/AsyncValidator.java (renamed from android/src/com/android/tools/idea/wizard/AsyncValidator.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseAndroidAndJavaSdkStep.form (renamed from android/src/com/android/tools/idea/wizard/ChooseAndroidAndJavaSdkStep.form)2
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseAndroidAndJavaSdkStep.java (renamed from android/src/com/android/tools/idea/wizard/ChooseAndroidAndJavaSdkStep.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseApiLevelDialog.form (renamed from android/src/com/android/tools/idea/wizard/ChooseApiLevelDialog.form)2
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseApiLevelDialog.java (renamed from android/src/com/android/tools/idea/wizard/ChooseApiLevelDialog.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseModuleTypeStep.java (renamed from android/src/com/android/tools/idea/wizard/ChooseModuleTypeStep.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseOutputResDirStep.form (renamed from android/src/com/android/tools/idea/wizard/ChooseOutputResDirStep.form)2
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseOutputResDirStep.java (renamed from android/src/com/android/tools/idea/wizard/ChooseOutputResDirStep.java)13
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseSourceSetStep.form (renamed from android/src/com/android/tools/idea/wizard/ChooseSourceSetStep.form)2
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseSourceSetStep.java (renamed from android/src/com/android/tools/idea/wizard/ChooseSourceSetStep.java)4
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseTemplateStep.form (renamed from android/src/com/android/tools/idea/wizard/ChooseTemplateStep.form)4
-rw-r--r--android/src/com/android/tools/idea/npw/ChooseTemplateStep.java (renamed from android/src/com/android/tools/idea/wizard/ChooseTemplateStep.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/CircularParameterDependencyException.java (renamed from android/src/com/android/tools/idea/wizard/CircularParameterDependencyException.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/CommonAssetSetStep.java (renamed from android/src/com/android/tools/idea/wizard/CommonAssetSetStep.java)7
-rw-r--r--android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStep.form (renamed from android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStep.form)2
-rwxr-xr-xandroid/src/com/android/tools/idea/npw/ConfigureAndroidModuleStep.java (renamed from android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStep.java)17
-rw-r--r--android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamic.form (renamed from android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.form)6
-rw-r--r--android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamic.java (renamed from android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.java)10
-rw-r--r--android/src/com/android/tools/idea/npw/ConfigureAndroidProjectPath.java (renamed from android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectPath.java)7
-rw-r--r--android/src/com/android/tools/idea/npw/ConfigureAndroidProjectStep.form (renamed from android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.form)4
-rw-r--r--android/src/com/android/tools/idea/npw/ConfigureAndroidProjectStep.java (renamed from android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.java)9
-rw-r--r--android/src/com/android/tools/idea/npw/ConfigureFormFactorStep.form (renamed from android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.form)2
-rwxr-xr-xandroid/src/com/android/tools/idea/npw/ConfigureFormFactorStep.java (renamed from android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.java)22
-rw-r--r--android/src/com/android/tools/idea/npw/CreateModuleFromArchiveAction.java (renamed from android/src/com/android/tools/idea/wizard/CreateModuleFromArchiveAction.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/CreateModuleTemplate.java (renamed from android/src/com/android/tools/idea/wizard/CreateModuleTemplate.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/FormFactorApiComboBox.java (renamed from android/src/com/android/tools/idea/wizard/FormFactorApiComboBox.java)11
-rw-r--r--android/src/com/android/tools/idea/npw/FormFactorUtils.java (renamed from android/src/com/android/tools/idea/wizard/FormFactorUtils.java)12
-rw-r--r--android/src/com/android/tools/idea/npw/IconPicker.java (renamed from android/src/com/android/tools/idea/wizard/IconPicker.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/IconStep.form (renamed from android/src/com/android/tools/idea/wizard/IconStep.form)26
-rw-r--r--android/src/com/android/tools/idea/npw/IconStep.java (renamed from android/src/com/android/tools/idea/wizard/IconStep.java)29
-rw-r--r--android/src/com/android/tools/idea/npw/ImportSourceLocationStep.form (renamed from android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.form)4
-rw-r--r--android/src/com/android/tools/idea/npw/ImportSourceLocationStep.java (renamed from android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.java)12
-rw-r--r--android/src/com/android/tools/idea/npw/ImportSourceModulePath.java (renamed from android/src/com/android/tools/idea/wizard/ImportSourceModulePath.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/ImportUIUtil.java (renamed from android/src/com/android/tools/idea/wizard/ImportUIUtil.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/ImportWizardModuleBuilder.java (renamed from android/src/com/android/tools/idea/wizard/ImportWizardModuleBuilder.java)7
-rw-r--r--android/src/com/android/tools/idea/npw/JavaModuleDynamicPath.java (renamed from android/src/com/android/tools/idea/wizard/JavaModuleDynamicPath.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/JavaWizardPathProvider.java (renamed from android/src/com/android/tools/idea/wizard/JavaWizardPathProvider.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/LegacyPathWrapper.java (renamed from android/src/com/android/tools/idea/wizard/LegacyPathWrapper.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/LegacyWizardPathProvider.java (renamed from android/src/com/android/tools/idea/wizard/LegacyWizardPathProvider.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/ModuleImportSettings.java (renamed from android/src/com/android/tools/idea/wizard/ModuleImportSettings.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/ModuleImportSettingsPane.java (renamed from android/src/com/android/tools/idea/wizard/ModuleImportSettingsPane.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/ModuleListModel.java (renamed from android/src/com/android/tools/idea/wizard/ModuleListModel.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/ModuleTemplate.java (renamed from android/src/com/android/tools/idea/wizard/ModuleTemplate.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/ModuleTemplateProvider.java (renamed from android/src/com/android/tools/idea/wizard/ModuleTemplateProvider.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/ModulesTable.java (renamed from android/src/com/android/tools/idea/wizard/ModulesTable.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/NewAndroidActivityWizard.java (renamed from android/src/com/android/tools/idea/wizard/NewAndroidActivityWizard.java)4
-rw-r--r--android/src/com/android/tools/idea/npw/NewAndroidModulePath.java (renamed from android/src/com/android/tools/idea/wizard/NewAndroidModulePath.java)6
-rw-r--r--android/src/com/android/tools/idea/npw/NewFormFactorModulePath.java (renamed from android/src/com/android/tools/idea/wizard/NewFormFactorModulePath.java)17
-rw-r--r--android/src/com/android/tools/idea/npw/NewModuleDynamicPath.java (renamed from android/src/com/android/tools/idea/wizard/NewModuleDynamicPath.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/NewModuleDynamicPathFactory.java (renamed from android/src/com/android/tools/idea/wizard/NewModuleDynamicPathFactory.java)4
-rw-r--r--android/src/com/android/tools/idea/npw/NewModuleWizard.java (renamed from android/src/com/android/tools/idea/wizard/NewModuleWizard.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/NewModuleWizardDynamic.java (renamed from android/src/com/android/tools/idea/wizard/NewModuleWizardDynamic.java)9
-rw-r--r--android/src/com/android/tools/idea/npw/NewModuleWizardPathFactory.java (renamed from android/src/com/android/tools/idea/wizard/NewModuleWizardPathFactory.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/NewModuleWizardState.java (renamed from android/src/com/android/tools/idea/wizard/NewModuleWizardState.java)6
-rw-r--r--android/src/com/android/tools/idea/npw/NewProjectWizard.java (renamed from android/src/com/android/tools/idea/wizard/NewProjectWizard.java)7
-rw-r--r--android/src/com/android/tools/idea/npw/NewProjectWizardDynamic.java (renamed from android/src/com/android/tools/idea/wizard/NewProjectWizardDynamic.java)14
-rw-r--r--android/src/com/android/tools/idea/npw/NewProjectWizardState.java (renamed from android/src/com/android/tools/idea/wizard/NewProjectWizardState.java)6
-rw-r--r--android/src/com/android/tools/idea/npw/NewTemplateObjectWizard.java (renamed from android/src/com/android/tools/idea/wizard/NewTemplateObjectWizard.java)8
-rw-r--r--android/src/com/android/tools/idea/npw/ParameterDefaultValueComputer.java (renamed from android/src/com/android/tools/idea/wizard/ParameterDefaultValueComputer.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/RasterAssetSetStep.form (renamed from android/src/com/android/tools/idea/wizard/RasterAssetSetStep.form)28
-rw-r--r--android/src/com/android/tools/idea/npw/RasterAssetSetStep.java (renamed from android/src/com/android/tools/idea/wizard/RasterAssetSetStep.java)12
-rw-r--r--android/src/com/android/tools/idea/npw/ScopedStateStoreAdapter.java (renamed from android/src/com/android/tools/idea/wizard/ScopedStateStoreAdapter.java)6
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateEntry.java (renamed from android/src/com/android/tools/idea/wizard/TemplateEntry.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateGalleryStep.form (renamed from android/src/com/android/tools/idea/wizard/TemplateGalleryStep.form)4
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateGalleryStep.java (renamed from android/src/com/android/tools/idea/wizard/TemplateGalleryStep.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateListProvider.java (renamed from android/src/com/android/tools/idea/wizard/TemplateListProvider.java)4
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateParameterStep.form (renamed from android/src/com/android/tools/idea/wizard/TemplateParameterStep.form)2
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateParameterStep.java (renamed from android/src/com/android/tools/idea/wizard/TemplateParameterStep.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateParameterStep2.form (renamed from android/src/com/android/tools/idea/wizard/TemplateParameterStep2.form)2
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateParameterStep2.java (renamed from android/src/com/android/tools/idea/wizard/TemplateParameterStep2.java)25
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateWizardContextAdapter.java (renamed from android/src/com/android/tools/idea/wizard/TemplateWizardContextAdapter.java)6
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateWizardModuleBuilder.java (renamed from android/src/com/android/tools/idea/wizard/TemplateWizardModuleBuilder.java)2
-rw-r--r--android/src/com/android/tools/idea/npw/TemplateWizardProjectTemplateFactory.java (renamed from android/src/com/android/tools/idea/wizard/TemplateWizardProjectTemplateFactory.java)4
-rw-r--r--android/src/com/android/tools/idea/npw/VectorAssetSetStep.form (renamed from android/src/com/android/tools/idea/wizard/VectorAssetSetStep.form)4
-rw-r--r--android/src/com/android/tools/idea/npw/VectorAssetSetStep.java (renamed from android/src/com/android/tools/idea/wizard/VectorAssetSetStep.java)9
-rw-r--r--android/src/com/android/tools/idea/npw/VectorAssetStudioWizard.java (renamed from android/src/com/android/tools/idea/wizard/VectorAssetStudioWizard.java)9
-rw-r--r--android/src/com/android/tools/idea/npw/WizardParameterFactory.java (renamed from android/src/com/android/tools/idea/wizard/WizardParameterFactory.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/WizardPath.java (renamed from android/src/com/android/tools/idea/wizard/WizardPath.java)5
-rw-r--r--android/src/com/android/tools/idea/npw/WizardUtils.java (renamed from android/src/com/android/tools/idea/wizard/WizardUtils.java)7
-rw-r--r--android/src/com/android/tools/idea/npw/WrapArchiveOptionsStep.form (renamed from android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.form)2
-rw-r--r--android/src/com/android/tools/idea/npw/WrapArchiveOptionsStep.java (renamed from android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.java)4
-rw-r--r--android/src/com/android/tools/idea/npw/WrapArchiveWizardPath.java (renamed from android/src/com/android/tools/idea/wizard/WrapArchiveWizardPath.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/WrapArchiveWizardPathFactory.java (renamed from android/src/com/android/tools/idea/wizard/WrapArchiveWizardPathFactory.java)3
-rw-r--r--android/src/com/android/tools/idea/npw/package-info.java22
-rw-r--r--android/src/com/android/tools/idea/sdk/wizard/LicenseAgreementStep.java2
-rw-r--r--android/src/com/android/tools/idea/sdk/wizard/SdkQuickfixWizard.java8
-rwxr-xr-xandroid/src/com/android/tools/idea/sdk/wizard/SmwOldApiDirectInstall.java2
-rw-r--r--android/src/com/android/tools/idea/templates/FmActivityToLayoutMethod.java5
-rw-r--r--android/src/com/android/tools/idea/templates/FmClassNameToResourceMethod.java2
-rw-r--r--android/src/com/android/tools/idea/templates/FmHasDependencyMethod.java7
-rw-r--r--android/src/com/android/tools/idea/templates/FmLayoutToActivityMethod.java4
-rw-r--r--android/src/com/android/tools/idea/templates/StringEvaluator.java (renamed from android/src/com/android/tools/idea/wizard/StringEvaluator.java)3
-rw-r--r--android/src/com/android/tools/idea/templates/TemplateMetadata.java2
-rwxr-xr-xandroid/src/com/android/tools/idea/templates/TemplateUtils.java3
-rw-r--r--android/src/com/android/tools/idea/ui/ASGallery.java (renamed from android/src/com/android/tools/idea/wizard/ASGallery.java)2
-rw-r--r--android/src/com/android/tools/idea/ui/ComboBoxItemWithApiTag.java (renamed from android/src/com/android/tools/idea/wizard/ComboBoxItem.java)19
-rw-r--r--android/src/com/android/tools/idea/ui/DistributionChartComponent.java (renamed from android/src/com/android/tools/idea/wizard/DistributionChartComponent.java)5
-rw-r--r--android/src/com/android/tools/idea/ui/FileTreeCellRenderer.java (renamed from android/src/com/android/tools/idea/wizard/FileTreeCellRenderer.java)2
-rw-r--r--android/src/com/android/tools/idea/ui/FileTreeModel.java (renamed from android/src/com/android/tools/idea/wizard/FileTreeModel.java)2
-rw-r--r--android/src/com/android/tools/idea/ui/ImageComponent.java (renamed from android/src/com/android/tools/idea/wizard/ImageComponent.java)2
-rw-r--r--android/src/com/android/tools/idea/ui/LabelWithEditLink.java (renamed from android/src/com/android/tools/idea/wizard/LabelWithEditLink.java)2
-rw-r--r--android/src/com/android/tools/idea/ui/TextFieldWithLaunchBrowserButton.java (renamed from android/src/com/android/tools/idea/wizard/TextFieldWithLaunchBrowserButton.java)2
-rw-r--r--android/src/com/android/tools/idea/welcome/config/InstallerData.java3
-rw-r--r--android/src/com/android/tools/idea/welcome/install/AndroidSdk.java2
-rwxr-xr-xandroid/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/install/ComponentCategory.java4
-rw-r--r--android/src/com/android/tools/idea/welcome/install/ComponentTreeNode.java4
-rw-r--r--android/src/com/android/tools/idea/welcome/install/Haxm.java4
-rw-r--r--android/src/com/android/tools/idea/welcome/install/InstallComponentsOperation.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/install/InstallableComponent.java4
-rw-r--r--android/src/com/android/tools/idea/welcome/install/Platform.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/ConsolidatedProgressStep.java4
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/FirstRunWelcomeStep.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/FirstRunWizard.java5
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardHost.java4
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/FirstRunWizardStep.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/HaxmInstallSettingsStep.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/InstallComponentsPath.java7
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/InstallSummaryStep.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/InstallationTypeWizardStep.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/JdkLocationStep.java2
-rwxr-xr-xandroid/src/com/android/tools/idea/welcome/wizard/SdkComponentsStep.java4
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/SelectThemeStep.java2
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/SetupJdkPath.java8
-rw-r--r--android/src/com/android/tools/idea/welcome/wizard/TwoRadiosToBooleanBinding.java2
-rw-r--r--android/src/com/android/tools/idea/wizard/ChooseFromFileListDialog.java104
-rw-r--r--android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.form50
-rw-r--r--android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.java112
-rw-r--r--android/src/com/android/tools/idea/wizard/WizardConstants.java10
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/AndroidStudioWizardPath.java (renamed from android/src/com/android/tools/idea/wizard/AndroidStudioWizardPath.java)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/AndroidStudioWizardStep.java (renamed from android/src/com/android/tools/idea/wizard/AndroidStudioWizardStep.java)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DialogWrapperHost.java (renamed from android/src/com/android/tools/idea/wizard/DialogWrapperHost.java)5
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizard.java (renamed from android/src/com/android/tools/idea/wizard/DynamicWizard.java)22
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardHost.java (renamed from android/src/com/android/tools/idea/wizard/DynamicWizardHost.java)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardPath.java (renamed from android/src/com/android/tools/idea/wizard/DynamicWizardPath.java)12
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStep.java (renamed from android/src/com/android/tools/idea/wizard/DynamicWizardStep.java)25
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithDescription.form (renamed from android/src/com/android/tools/idea/wizard/DynamicWizardStepWithDescription.form)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithDescription.java (renamed from android/src/com/android/tools/idea/wizard/DynamicWizardStepWithDescription.java)6
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithHeaderAndDescription.form (renamed from android/src/com/android/tools/idea/wizard/DynamicWizardStepWithHeaderAndDescription.form)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/DynamicWizardStepWithHeaderAndDescription.java (renamed from android/src/com/android/tools/idea/wizard/DynamicWizardStepWithHeaderAndDescription.java)7
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/RadioButtonGroupBinding.java (renamed from android/src/com/android/tools/idea/wizard/RadioButtonGroupBinding.java)4
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/ScopedDataBinder.java (renamed from android/src/com/android/tools/idea/wizard/ScopedDataBinder.java)43
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/ScopedStateStore.java (renamed from android/src/com/android/tools/idea/wizard/ScopedStateStore.java)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/SingleStepDialogWrapperHost.java (renamed from android/src/com/android/tools/idea/wizard/SingleStepDialogWrapperHost.java)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/SingleStepPath.java (renamed from android/src/com/android/tools/idea/wizard/SingleStepPath.java)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/SingleStepWizard.java (renamed from android/src/com/android/tools/idea/wizard/SingleStepWizard.java)2
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/WizardStepHeaderPanel.java (renamed from android/src/com/android/tools/idea/wizard/WizardStepHeaderPanel.java)4
-rw-r--r--android/src/com/android/tools/idea/wizard/dynamic/package-info.java28
-rw-r--r--android/src/com/android/tools/idea/wizard/template/TemplateWizard.java (renamed from android/src/com/android/tools/idea/wizard/TemplateWizard.java)3
-rw-r--r--android/src/com/android/tools/idea/wizard/template/TemplateWizardState.java (renamed from android/src/com/android/tools/idea/wizard/TemplateWizardState.java)22
-rwxr-xr-xandroid/src/com/android/tools/idea/wizard/template/TemplateWizardStep.java (renamed from android/src/com/android/tools/idea/wizard/TemplateWizardStep.java)26
-rw-r--r--android/src/com/android/tools/idea/wizard/template/package-info.java24
-rw-r--r--android/src/org/jetbrains/android/actions/CreateResourceActionBase.java8
-rw-r--r--android/testSrc/com/android/tools/idea/npw/AssetStudioAssetGeneratorTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/AssetStudioAssetGeneratorTest.java)8
-rw-r--r--android/testSrc/com/android/tools/idea/npw/ChooseTemplateStepTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ChooseTemplateStepTest.java)4
-rw-r--r--android/testSrc/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamicTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamicTest.java)6
-rw-r--r--android/testSrc/com/android/tools/idea/npw/ConfigureAndroidModuleStepTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepTest.java)9
-rw-r--r--android/testSrc/com/android/tools/idea/npw/ConfigureAndroidProjectStepTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidProjectStepTest.java)4
-rw-r--r--android/testSrc/com/android/tools/idea/npw/ImportSourceLocationStepTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ImportSourceLocationStepTest.java)4
-rw-r--r--android/testSrc/com/android/tools/idea/npw/ModulesListModelTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ModulesListModelTest.java)5
-rw-r--r--android/testSrc/com/android/tools/idea/npw/NewFormFactorModulePathTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/NewFormFactorModulePathTest.java)29
-rw-r--r--android/testSrc/com/android/tools/idea/npw/NewModuleWizardStateTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/NewModuleWizardStateTest.java)6
-rw-r--r--android/testSrc/com/android/tools/idea/npw/NewModuleWizardTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/NewModuleWizardTest.java)18
-rw-r--r--android/testSrc/com/android/tools/idea/npw/NewProjectWizardTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/NewProjectWizardTest.java)10
-rw-r--r--android/testSrc/com/android/tools/idea/npw/NewTemplateObjectWizardTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/NewTemplateObjectWizardTest.java)4
-rw-r--r--android/testSrc/com/android/tools/idea/npw/ParameterDefaultValueComputerTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ParameterDefaultValueComputerTest.java)2
-rw-r--r--android/testSrc/com/android/tools/idea/npw/TemplateParameterStep2DynamcTypeTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2DynamcTypeTest.java)6
-rw-r--r--android/testSrc/com/android/tools/idea/npw/TemplateParameterStep2Test.java (renamed from android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2Test.java)11
-rw-r--r--android/testSrc/com/android/tools/idea/npw/TemplateParameterStepTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/TemplateParameterStepTest.java)5
-rw-r--r--android/testSrc/com/android/tools/idea/npw/TemplateWizardModuleBuilderTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/TemplateWizardModuleBuilderTest.java)13
-rw-r--r--android/testSrc/com/android/tools/idea/npw/WrapArchiveWizardPathTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/WrapArchiveWizardPathTest.java)5
-rw-r--r--android/testSrc/com/android/tools/idea/templates/AndroidGradleTestCase.java4
-rwxr-xr-xandroid/testSrc/com/android/tools/idea/templates/TemplateTest.java13
-rw-r--r--android/testSrc/com/android/tools/idea/ui/ASGalleryTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ASGalleryTest.java)3
-rw-r--r--android/testSrc/com/android/tools/idea/ui/FileTreeModelTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/FileTreeModelTest.java)5
-rwxr-xr-xandroid/testSrc/com/android/tools/idea/welcome/install/AndroidVirtualDeviceTest.java12
-rw-r--r--android/testSrc/com/android/tools/idea/welcome/wizard/FirstRunWizardTest.java10
-rw-r--r--android/testSrc/com/android/tools/idea/welcome/wizard/InstallComponentsPathTest.java2
-rw-r--r--android/testSrc/com/android/tools/idea/wizard/AsyncValidatorTest.java1
-rw-r--r--android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardPathTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/DynamicWizardPathTest.java)10
-rw-r--r--android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardStepTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/DynamicWizardStepTest.java)2
-rw-r--r--android/testSrc/com/android/tools/idea/wizard/dynamic/DynamicWizardTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/DynamicWizardTest.java)16
-rw-r--r--android/testSrc/com/android/tools/idea/wizard/dynamic/ScopedDataBinderTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ScopedDataBinderTest.java)6
-rw-r--r--android/testSrc/com/android/tools/idea/wizard/dynamic/ScopedStateStoreTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/ScopedStateStoreTest.java)9
-rw-r--r--android/testSrc/com/android/tools/idea/wizard/template/TemplateWizardStateTest.java (renamed from android/testSrc/com/android/tools/idea/wizard/TemplateWizardStateTest.java)7
-rw-r--r--android/testSrc/org/jetbrains/android/inspections/lint/IntellijApiDetectorTest.java4
-rw-r--r--sdk-updates/src/com/android/tools/idea/updater/UpdateInfoDialog.java2
-rw-r--r--sdk-updates/src/com/android/tools/idea/updater/configure/SdkUpdaterConfigPanel.java8
228 files changed, 831 insertions, 809 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/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureAndroidProjectStepFixture.java b/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureAndroidProjectStepFixture.java
index b180affedbf..256edd6b7ac 100644
--- a/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureAndroidProjectStepFixture.java
+++ b/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureAndroidProjectStepFixture.java
@@ -15,7 +15,7 @@
*/
package com.android.tools.idea.tests.gui.framework.fixture.newProjectWizard;
-import com.android.tools.idea.wizard.LabelWithEditLink;
+import com.android.tools.idea.ui.LabelWithEditLink;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.ui.HyperlinkLabel;
import org.fest.swing.core.Robot;
diff --git a/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureFormFactorStepFixture.java b/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureFormFactorStepFixture.java
index eb2ea8e6bdf..984f2cc47d6 100644
--- a/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureFormFactorStepFixture.java
+++ b/android/guiTestSrc/com/android/tools/idea/tests/gui/framework/fixture/newProjectWizard/ConfigureFormFactorStepFixture.java
@@ -15,7 +15,7 @@
*/
package com.android.tools.idea.tests.gui.framework.fixture.newProjectWizard;
-import com.android.tools.idea.wizard.FormFactorUtils.FormFactor;
+import com.android.tools.idea.npw.FormFactorUtils.FormFactor;
import org.fest.swing.core.GenericTypeMatcher;
import org.fest.swing.core.Robot;
import org.fest.swing.driver.AbstractButtonDriver;
diff --git a/android/guiTestSrc/com/android/tools/idea/tests/gui/gradle/NewModuleTest.java b/android/guiTestSrc/com/android/tools/idea/tests/gui/gradle/NewModuleTest.java
index ce3523730c3..df18d5f08d6 100644
--- a/android/guiTestSrc/com/android/tools/idea/tests/gui/gradle/NewModuleTest.java
+++ b/android/guiTestSrc/com/android/tools/idea/tests/gui/gradle/NewModuleTest.java
@@ -18,7 +18,7 @@ package com.android.tools.idea.tests.gui.gradle;
import com.android.tools.idea.tests.gui.framework.*;
import com.android.tools.idea.tests.gui.framework.fixture.EditorFixture;
import com.android.tools.idea.tests.gui.framework.fixture.IdeFrameFixture;
-import com.android.tools.idea.wizard.ASGallery;
+import com.android.tools.idea.ui.ASGallery;
import com.intellij.openapi.vfs.VirtualFile;
import org.fest.swing.core.matcher.DialogMatcher;
import org.fest.swing.edt.GuiTask;
diff --git a/android/guiTestSrc/com/android/tools/idea/tests/gui/layout/NewProjectTest.java b/android/guiTestSrc/com/android/tools/idea/tests/gui/layout/NewProjectTest.java
index 11546344f4a..db7e8f46981 100644
--- a/android/guiTestSrc/com/android/tools/idea/tests/gui/layout/NewProjectTest.java
+++ b/android/guiTestSrc/com/android/tools/idea/tests/gui/layout/NewProjectTest.java
@@ -40,7 +40,7 @@ import org.junit.Test;
import java.io.File;
import java.io.IOException;
-import static com.android.tools.idea.wizard.FormFactorUtils.FormFactor.MOBILE;
+import static com.android.tools.idea.npw.FormFactorUtils.FormFactor.MOBILE;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static org.fest.assertions.Assertions.assertThat;
diff --git a/android/src/META-INF/plugin.xml b/android/src/META-INF/plugin.xml
index 1fa52e000ec..2c21e63bbb6 100755
--- a/android/src/META-INF/plugin.xml
+++ b/android/src/META-INF/plugin.xml
@@ -280,7 +280,7 @@
<framework.detector implementation="org.jetbrains.android.facet.AndroidFrameworkDetector"/>
<fileTemplateGroup implementation="org.jetbrains.android.AndroidFileTemplateProvider"/>
- <projectTemplatesFactory implementation="com.android.tools.idea.wizard.TemplateWizardProjectTemplateFactory"/>
+ <projectTemplatesFactory implementation="com.android.tools.idea.npw.TemplateWizardProjectTemplateFactory"/>
<projectTemplatesFactory implementation="org.jetbrains.android.newProject.AndroidProjectTemplatesFactory"/>
<defaultLiveTemplatesProvider implementation="com.android.tools.idea.templates.live.AndroidLiveTemplatesProvider"/>
@@ -746,9 +746,9 @@
<extensionPoint name="mavenProvider" interface="org.jetbrains.android.maven.AndroidMavenProvider"/>
<extensionPoint name="lightBuildProvider" interface="org.jetbrains.android.compiler.AndroidLightBuildProvider"/>
<extensionPoint name="refactoringContextProvider" interface="org.jetbrains.android.refactoring.AndroidRefactoringContextProvider"/>
- <extensionPoint name="newModuleWizardPathFactory" interface="com.android.tools.idea.wizard.NewModuleWizardPathFactory"/>
- <extensionPoint name="newModuleDynamicPathFactory" interface="com.android.tools.idea.wizard.NewModuleDynamicPathFactory"/>
- <extensionPoint name="wizardParameterFactory" interface="com.android.tools.idea.wizard.WizardParameterFactory"/>
+ <extensionPoint name="newModuleWizardPathFactory" interface="com.android.tools.idea.npw.NewModuleWizardPathFactory"/>
+ <extensionPoint name="newModuleDynamicPathFactory" interface="com.android.tools.idea.npw.NewModuleDynamicPathFactory"/>
+ <extensionPoint name="wizardParameterFactory" interface="com.android.tools.idea.npw.WizardParameterFactory"/>
<extensionPoint qualifiedName="com.android.captureType" interface="com.android.tools.idea.profiling.capture.CaptureType"/>
<extensionPoint qualifiedName="com.android.gradle.syncErrorHandler"
interface="com.android.tools.idea.gradle.service.notification.errors.AbstractSyncErrorHandler"/>
@@ -772,9 +772,9 @@
</extensions>
<extensions defaultExtensionNs="org.jetbrains.android">
- <newModuleWizardPathFactory implementation="com.android.tools.idea.wizard.WrapArchiveWizardPathFactory"/>
- <newModuleDynamicPathFactory implementation="com.android.tools.idea.wizard.LegacyWizardPathProvider"/>
- <newModuleDynamicPathFactory implementation="com.android.tools.idea.wizard.JavaWizardPathProvider"/>
+ <newModuleWizardPathFactory implementation="com.android.tools.idea.npw.WrapArchiveWizardPathFactory"/>
+ <newModuleDynamicPathFactory implementation="com.android.tools.idea.npw.LegacyWizardPathProvider"/>
+ <newModuleDynamicPathFactory implementation="com.android.tools.idea.npw.JavaWizardPathProvider"/>
</extensions>
<extensions defaultExtensionNs="com.android.gradle">
diff --git a/android/src/com/android/tools/idea/actions/AndroidAssetStudioAction.java b/android/src/com/android/tools/idea/actions/AndroidAssetStudioAction.java
index fd3b9181178..38a5c455864 100644
--- a/android/src/com/android/tools/idea/actions/AndroidAssetStudioAction.java
+++ b/android/src/com/android/tools/idea/actions/AndroidAssetStudioAction.java
@@ -16,7 +16,7 @@
package com.android.tools.idea.actions;
import com.android.tools.idea.navigator.AndroidProjectViewPane;
-import com.android.tools.idea.wizard.AssetStudioWizard;
+import com.android.tools.idea.npw.AssetStudioWizard;
import com.intellij.ide.IdeView;
import com.intellij.ide.projectView.ProjectView;
import com.intellij.ide.projectView.impl.AbstractProjectViewPane;
diff --git a/android/src/com/android/tools/idea/actions/AndroidImportModuleAction.java b/android/src/com/android/tools/idea/actions/AndroidImportModuleAction.java
index 2b5a031fa92..c4c60486b44 100644
--- a/android/src/com/android/tools/idea/actions/AndroidImportModuleAction.java
+++ b/android/src/com/android/tools/idea/actions/AndroidImportModuleAction.java
@@ -17,7 +17,7 @@ package com.android.tools.idea.actions;
import com.android.tools.idea.gradle.project.ModuleImporter;
import com.android.tools.idea.gradle.project.ModuleToImport;
-import com.android.tools.idea.wizard.NewModuleWizard;
+import com.android.tools.idea.npw.NewModuleWizard;
import com.google.common.collect.Maps;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
diff --git a/android/src/com/android/tools/idea/actions/AndroidNewModuleAction.java b/android/src/com/android/tools/idea/actions/AndroidNewModuleAction.java
index 90d2b52067d..0408a8574d5 100644
--- a/android/src/com/android/tools/idea/actions/AndroidNewModuleAction.java
+++ b/android/src/com/android/tools/idea/actions/AndroidNewModuleAction.java
@@ -16,7 +16,7 @@
package com.android.tools.idea.actions;
-import com.android.tools.idea.wizard.NewModuleWizardDynamic;
+import com.android.tools.idea.npw.NewModuleWizardDynamic;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
diff --git a/android/src/com/android/tools/idea/actions/AndroidNewProjectAction.java b/android/src/com/android/tools/idea/actions/AndroidNewProjectAction.java
index b808e0f8f2e..132c24c5639 100644
--- a/android/src/com/android/tools/idea/actions/AndroidNewProjectAction.java
+++ b/android/src/com/android/tools/idea/actions/AndroidNewProjectAction.java
@@ -16,7 +16,7 @@
package com.android.tools.idea.actions;
-import com.android.tools.idea.wizard.NewProjectWizardDynamic;
+import com.android.tools.idea.npw.NewProjectWizardDynamic;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.diagnostic.Logger;
diff --git a/android/src/com/android/tools/idea/actions/AndroidVectorAssetStudioAction.java b/android/src/com/android/tools/idea/actions/AndroidVectorAssetStudioAction.java
index 2910b040874..c434f417379 100644
--- a/android/src/com/android/tools/idea/actions/AndroidVectorAssetStudioAction.java
+++ b/android/src/com/android/tools/idea/actions/AndroidVectorAssetStudioAction.java
@@ -15,8 +15,7 @@
*/
package com.android.tools.idea.actions;
-import com.android.tools.idea.wizard.VectorAssetStudioWizard;
-import com.intellij.openapi.actionSystem.AnActionEvent;
+import com.android.tools.idea.npw.VectorAssetStudioWizard;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
diff --git a/android/src/com/android/tools/idea/actions/NewAndroidComponentAction.java b/android/src/com/android/tools/idea/actions/NewAndroidComponentAction.java
index 250e089a3aa..4068371d8b2 100644
--- a/android/src/com/android/tools/idea/actions/NewAndroidComponentAction.java
+++ b/android/src/com/android/tools/idea/actions/NewAndroidComponentAction.java
@@ -18,7 +18,7 @@ package com.android.tools.idea.actions;
import com.android.tools.idea.model.AndroidModuleInfo;
import com.android.tools.idea.templates.TemplateManager;
import com.android.tools.idea.templates.TemplateMetadata;
-import com.android.tools.idea.wizard.NewAndroidActivityWizard;
+import com.android.tools.idea.npw.NewAndroidActivityWizard;
import com.google.common.collect.ImmutableSet;
import com.intellij.ide.IdeView;
import com.intellij.openapi.actionSystem.*;
diff --git a/android/src/com/android/tools/idea/actions/ShowLicensesUsedAction.java b/android/src/com/android/tools/idea/actions/ShowLicensesUsedAction.java
index fef9a6a22f3..b78fc2d702f 100644
--- a/android/src/com/android/tools/idea/actions/ShowLicensesUsedAction.java
+++ b/android/src/com/android/tools/idea/actions/ShowLicensesUsedAction.java
@@ -15,7 +15,7 @@
*/
package com.android.tools.idea.actions;
-import com.android.tools.idea.wizard.WizardUtils;
+import com.android.tools.idea.npw.WizardUtils;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import com.intellij.openapi.actionSystem.AnAction;
@@ -23,7 +23,6 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
-import com.intellij.ui.components.JBLabel;
import com.intellij.ui.components.JBScrollPane;
import com.intellij.util.PathUtil;
import com.intellij.util.ui.JBUI;
@@ -31,7 +30,6 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
-import javax.swing.text.JTextComponent;
import java.awt.*;
import java.io.File;
import java.io.IOException;
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/AvdDisplayList.java b/android/src/com/android/tools/idea/avdmanager/AvdDisplayList.java
index 6cc1f948231..470c7318eed 100644
--- a/android/src/com/android/tools/idea/avdmanager/AvdDisplayList.java
+++ b/android/src/com/android/tools/idea/avdmanager/AvdDisplayList.java
@@ -19,7 +19,7 @@ import com.android.resources.Density;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.devices.Storage;
import com.android.sdklib.internal.avd.AvdInfo;
-import com.android.tools.idea.wizard.WizardUtils;
+import com.android.tools.idea.npw.WizardUtils;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.intellij.icons.AllIcons;
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.form b/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.form
index 5c89d100912..230c27662b5 100644
--- a/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.form
+++ b/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.form
@@ -83,7 +83,7 @@
</constraints>
<properties/>
</component>
- <component id="cd11c" class="com.android.tools.idea.wizard.ASGallery" binding="myOrientationToggle" custom-create="true">
+ <component id="cd11c" class="com.android.tools.idea.ui.ASGallery" binding="myOrientationToggle" custom-create="true">
<constraints>
<grid row="8" column="2" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="9" fill="0" indent="0" use-parent-layout="false">
<preferred-size width="200" height="50"/>
diff --git a/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java b/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java
index 8bcbd538300..4effbd0bf2a 100644
--- a/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java
+++ b/android/src/com/android/tools/idea/avdmanager/ConfigureAvdOptionsStep.java
@@ -25,7 +25,9 @@ import com.android.sdklib.devices.Device;
import com.android.sdklib.devices.Screen;
import com.android.sdklib.devices.Storage;
import com.android.sdklib.internal.avd.AvdInfo;
+import com.android.tools.idea.ui.ASGallery;
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 +66,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/DeviceDefinitionList.java b/android/src/com/android/tools/idea/avdmanager/DeviceDefinitionList.java
index 5dd3d71c014..49435269f61 100755
--- a/android/src/com/android/tools/idea/avdmanager/DeviceDefinitionList.java
+++ b/android/src/com/android/tools/idea/avdmanager/DeviceDefinitionList.java
@@ -17,7 +17,7 @@ package com.android.tools.idea.avdmanager;
import com.android.ide.common.rendering.HardwareConfigHelper;
import com.android.sdklib.devices.Device;
-import com.android.tools.idea.wizard.FormFactorUtils;
+import com.android.tools.idea.npw.FormFactorUtils;
import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableSet;
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/EmptyAvdListPanel.java b/android/src/com/android/tools/idea/avdmanager/EmptyAvdListPanel.java
index bde04f632e0..d42d75fd457 100644
--- a/android/src/com/android/tools/idea/avdmanager/EmptyAvdListPanel.java
+++ b/android/src/com/android/tools/idea/avdmanager/EmptyAvdListPanel.java
@@ -15,7 +15,7 @@
*/
package com.android.tools.idea.avdmanager;
-import com.android.tools.idea.wizard.FormFactorUtils;
+import com.android.tools.idea.npw.FormFactorUtils;
import com.intellij.ui.components.JBLabel;
import javax.swing.*;
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/avdmanager/SystemImagePreview.java b/android/src/com/android/tools/idea/avdmanager/SystemImagePreview.java
index 8c7df33c6cc..39c2820ca81 100644
--- a/android/src/com/android/tools/idea/avdmanager/SystemImagePreview.java
+++ b/android/src/com/android/tools/idea/avdmanager/SystemImagePreview.java
@@ -16,11 +16,8 @@
package com.android.tools.idea.avdmanager;
import com.android.sdklib.SdkVersionInfo;
-import com.android.sdklib.SystemImage;
import com.android.sdklib.repository.descriptors.IdDisplay;
-import com.android.tools.idea.stats.Distribution;
-import com.android.tools.idea.stats.DistributionService;
-import com.android.tools.idea.wizard.ChooseApiLevelDialog;
+import com.android.tools.idea.npw.ChooseApiLevelDialog;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.IconLoader;
diff --git a/android/src/com/android/tools/idea/configurations/DeviceMenuAction.java b/android/src/com/android/tools/idea/configurations/DeviceMenuAction.java
index 13cd05f0b2b..2d9171d3490 100644
--- a/android/src/com/android/tools/idea/configurations/DeviceMenuAction.java
+++ b/android/src/com/android/tools/idea/configurations/DeviceMenuAction.java
@@ -22,6 +22,7 @@ import com.android.sdklib.devices.State;
import com.android.sdklib.internal.avd.AvdInfo;
import com.android.sdklib.internal.avd.AvdManager;
import com.android.tools.idea.ddms.screenshot.DeviceArtPainter;
+import com.android.tools.idea.npw.FormFactorUtils;
import com.android.tools.idea.rendering.RenderService;
import com.android.tools.idea.rendering.multi.RenderPreviewMode;
import com.google.common.collect.Lists;
@@ -154,7 +155,7 @@ public class DeviceMenuAction extends FlatComboAction {
return AndroidIcons.NeleIcons.Phone;
}
- /** TODO: Combine with {@link com.android.tools.idea.wizard.FormFactorUtils.FormFactor} */
+ /** TODO: Combine with {@link FormFactorUtils.FormFactor} */
public enum FormFactor {
MOBILE, WEAR, GLASS, TV, CAR;
private Icon myIcon64;
diff --git a/android/src/com/android/tools/idea/editors/navigation/NavigationView.java b/android/src/com/android/tools/idea/editors/navigation/NavigationView.java
index 6594f7d1306..a0b4f48be9a 100644
--- a/android/src/com/android/tools/idea/editors/navigation/NavigationView.java
+++ b/android/src/com/android/tools/idea/editors/navigation/NavigationView.java
@@ -26,7 +26,7 @@ import com.android.tools.idea.editors.navigation.macros.FragmentEntry;
import com.android.tools.idea.editors.navigation.model.*;
import com.android.tools.idea.model.ManifestInfo;
import com.android.tools.idea.rendering.*;
-import com.android.tools.idea.wizard.NewAndroidActivityWizard;
+import com.android.tools.idea.npw.NewAndroidActivityWizard;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.intellij.ide.dnd.DnDEvent;
diff --git a/android/src/com/android/tools/idea/wizard/AbstractModuleTemplate.java b/android/src/com/android/tools/idea/npw/AbstractModuleTemplate.java
index b9b93c4cf44..9b35051d132 100644
--- a/android/src/com/android/tools/idea/wizard/AbstractModuleTemplate.java
+++ b/android/src/com/android/tools/idea/npw/AbstractModuleTemplate.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.npw;
+import com.android.tools.idea.npw.FormFactorUtils;
+import com.android.tools.idea.npw.ModuleTemplate;
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/npw/ActivityGalleryStep.java
index 0434da5f7cd..a1ac8ad07e4 100644
--- a/android/src/com/android/tools/idea/wizard/ActivityGalleryStep.java
+++ b/android/src/com/android/tools/idea/npw/ActivityGalleryStep.java
@@ -13,11 +13,14 @@
* 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.npw;
import com.android.sdklib.AndroidVersion;
import com.android.tools.idea.actions.NewAndroidComponentAction;
import com.android.tools.idea.templates.TemplateManager;
+import com.android.tools.idea.ui.ASGallery;
+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,8 +37,8 @@ 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.WizardConstants.DEFAULT_GALLERY_THUMBNAIL_SIZE;
+import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key;
/**
* Gallery of Android activity templates.
diff --git a/android/src/com/android/tools/idea/wizard/AddAndroidActivityPath.java b/android/src/com/android/tools/idea/npw/AddAndroidActivityPath.java
index 084c95e32ae..96977da8f20 100644
--- a/android/src/com/android/tools/idea/wizard/AddAndroidActivityPath.java
+++ b/android/src/com/android/tools/idea/npw/AddAndroidActivityPath.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.npw;
import com.android.builder.model.SourceProvider;
import com.android.sdklib.AndroidVersion;
@@ -21,6 +21,8 @@ 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;
import com.google.common.collect.ImmutableList;
@@ -39,7 +41,6 @@ import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.RecentsManager;
import com.intellij.util.ArrayUtil;
-import com.intellij.util.ui.UIUtil;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.facet.AndroidRootUtil;
import org.jetbrains.android.facet.IdeaSourceProvider;
@@ -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/AndroidModuleTemplatesProvider.java b/android/src/com/android/tools/idea/npw/AndroidModuleTemplatesProvider.java
index d07877c5dbe..9ee28c4b1e3 100644
--- a/android/src/com/android/tools/idea/wizard/AndroidModuleTemplatesProvider.java
+++ b/android/src/com/android/tools/idea/npw/AndroidModuleTemplatesProvider.java
@@ -13,12 +13,17 @@
* 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.npw;
import com.android.tools.idea.configurations.DeviceMenuAction;
+import com.android.tools.idea.npw.CreateModuleTemplate;
+import com.android.tools.idea.npw.FormFactorUtils;
+import com.android.tools.idea.npw.ModuleTemplate;
+import com.android.tools.idea.npw.ModuleTemplateProvider;
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.WizardConstants;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import icons.AndroidIcons;
diff --git a/android/src/com/android/tools/idea/wizard/AssetStudioAssetGenerator.java b/android/src/com/android/tools/idea/npw/AssetStudioAssetGenerator.java
index 0391958b9ba..1c4261dfea8 100644
--- a/android/src/com/android/tools/idea/wizard/AssetStudioAssetGenerator.java
+++ b/android/src/com/android/tools/idea/npw/AssetStudioAssetGenerator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.npw;
import com.android.SdkConstants;
import com.android.assetstudiolib.*;
@@ -22,6 +22,7 @@ import com.android.assetstudiolib.vectordrawable.Svg2Vector;
import com.android.assetstudiolib.vectordrawable.VdPreview;
import com.android.resources.Density;
import com.android.tools.idea.rendering.ImageUtils;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.google.common.base.Charsets;
import com.google.common.base.Strings;
import com.google.common.cache.Cache;
diff --git a/android/src/com/android/tools/idea/wizard/AssetStudioWizard.java b/android/src/com/android/tools/idea/npw/AssetStudioWizard.java
index c59455cdfe2..a4684b52a61 100644
--- a/android/src/com/android/tools/idea/wizard/AssetStudioWizard.java
+++ b/android/src/com/android/tools/idea/npw/AssetStudioWizard.java
@@ -13,8 +13,13 @@
* 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.npw;
+import com.android.tools.idea.npw.ChooseOutputResDirStep;
+import com.android.tools.idea.npw.RasterAssetSetStep;
+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.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
@@ -24,7 +29,7 @@ import org.jetbrains.annotations.Nullable;
import java.awt.*;
-import static com.android.tools.idea.wizard.TemplateWizardStep.NONE;
+import static com.android.tools.idea.wizard.template.TemplateWizardStep.NONE;
/**
* Wizard that allows the user to create various density-scaled assets.
diff --git a/android/src/com/android/tools/idea/wizard/AsyncValidator.java b/android/src/com/android/tools/idea/npw/AsyncValidator.java
index 5843169db80..86559e7cd60 100644
--- a/android/src/com/android/tools/idea/wizard/AsyncValidator.java
+++ b/android/src/com/android/tools/idea/npw/AsyncValidator.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.npw;
import com.android.annotations.concurrency.GuardedBy;
import com.intellij.openapi.application.Application;
diff --git a/android/src/com/android/tools/idea/wizard/ChooseAndroidAndJavaSdkStep.form b/android/src/com/android/tools/idea/npw/ChooseAndroidAndJavaSdkStep.form
index 27126664801..fa9ac02e3cf 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseAndroidAndJavaSdkStep.form
+++ b/android/src/com/android/tools/idea/npw/ChooseAndroidAndJavaSdkStep.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.ChooseAndroidAndJavaSdkStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ChooseAndroidAndJavaSdkStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="3" column-count="3" 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/ChooseAndroidAndJavaSdkStep.java b/android/src/com/android/tools/idea/npw/ChooseAndroidAndJavaSdkStep.java
index ae2e1d27751..5b650f0426e 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseAndroidAndJavaSdkStep.java
+++ b/android/src/com/android/tools/idea/npw/ChooseAndroidAndJavaSdkStep.java
@@ -1,4 +1,4 @@
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.npw;
import com.android.tools.idea.sdk.IdeSdks;
import com.intellij.CommonBundle;
diff --git a/android/src/com/android/tools/idea/wizard/ChooseApiLevelDialog.form b/android/src/com/android/tools/idea/npw/ChooseApiLevelDialog.form
index b5bef6ebd42..b9844012c93 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseApiLevelDialog.form
+++ b/android/src/com/android/tools/idea/npw/ChooseApiLevelDialog.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.ChooseApiLevelDialog">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ChooseApiLevelDialog">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="3" column-count="4" 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/ChooseApiLevelDialog.java b/android/src/com/android/tools/idea/npw/ChooseApiLevelDialog.java
index 53236e81df2..7a919938011 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseApiLevelDialog.java
+++ b/android/src/com/android/tools/idea/npw/ChooseApiLevelDialog.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.npw;
import com.android.tools.idea.stats.Distribution;
import com.android.tools.idea.stats.DistributionService;
+import com.android.tools.idea.ui.DistributionChartComponent;
import com.intellij.ide.BrowserUtil;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
diff --git a/android/src/com/android/tools/idea/wizard/ChooseModuleTypeStep.java b/android/src/com/android/tools/idea/npw/ChooseModuleTypeStep.java
index 8e1993e21b7..97c79a2df2d 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseModuleTypeStep.java
+++ b/android/src/com/android/tools/idea/npw/ChooseModuleTypeStep.java
@@ -13,8 +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.npw;
+import com.android.tools.idea.ui.ASGallery;
+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/ChooseOutputResDirStep.form b/android/src/com/android/tools/idea/npw/ChooseOutputResDirStep.form
index 5eb9bea1eab..5f1bfc77571 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseOutputResDirStep.form
+++ b/android/src/com/android/tools/idea/npw/ChooseOutputResDirStep.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.ChooseOutputResDirStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ChooseOutputResDirStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="4" column-count="4" 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/ChooseOutputResDirStep.java b/android/src/com/android/tools/idea/npw/ChooseOutputResDirStep.java
index 7ecbd6a1c2c..0ab5e5c6d38 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseOutputResDirStep.java
+++ b/android/src/com/android/tools/idea/npw/ChooseOutputResDirStep.java
@@ -13,10 +13,15 @@
* 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.npw;
import com.android.builder.model.SourceProvider;
import com.android.tools.idea.gradle.IdeaAndroidProject;
+import com.android.tools.idea.ui.ComboBoxItemWithApiTag;
+import com.android.tools.idea.ui.FileTreeCellRenderer;
+import com.android.tools.idea.ui.FileTreeModel;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.project.Project;
@@ -191,7 +196,7 @@ public class ChooseOutputResDirStep extends TemplateWizardStep {
for (File f : sourceProvider.getResDirectories()) {
String resPath = FileUtil.getRelativePath(moduleRoot,
FileUtil.toSystemIndependentName(f.getPath()), '/');
- comboBoxModel.addElement(new ComboBoxItem(f, resPath, 1, 1));
+ comboBoxModel.addElement(new ComboBoxItemWithApiTag(f, resPath, 1, 1));
if (resDir != null && resDir.equals(f)) {
selectedIndex = index;
}
@@ -220,8 +225,8 @@ public class ChooseOutputResDirStep extends TemplateWizardStep {
File resDir = (File)myTemplateState.get(ATTR_TARGET_VARIANT);
if (resDir == null) {
Object selectedVariant = myVariantComboBox.getSelectedItem();
- if (selectedVariant instanceof ComboBoxItem) {
- resDir = (File)((ComboBoxItem)selectedVariant).id;
+ if (selectedVariant instanceof ComboBoxItemWithApiTag) {
+ resDir = (File)((ComboBoxItemWithApiTag)selectedVariant).id;
}
}
if (resDir != null) {
diff --git a/android/src/com/android/tools/idea/wizard/ChooseSourceSetStep.form b/android/src/com/android/tools/idea/npw/ChooseSourceSetStep.form
index d591e9baf5c..a6012779832 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseSourceSetStep.form
+++ b/android/src/com/android/tools/idea/npw/ChooseSourceSetStep.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.ChooseSourceSetStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ChooseSourceSetStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="5" column-count="1" 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/ChooseSourceSetStep.java b/android/src/com/android/tools/idea/npw/ChooseSourceSetStep.java
index 73e66051b5f..6b7e3b43796 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseSourceSetStep.java
+++ b/android/src/com/android/tools/idea/npw/ChooseSourceSetStep.java
@@ -13,9 +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.npw;
import com.android.builder.model.SourceProvider;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.collect.Lists;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
diff --git a/android/src/com/android/tools/idea/wizard/ChooseTemplateStep.form b/android/src/com/android/tools/idea/npw/ChooseTemplateStep.form
index fb33a2269ed..8673b4d02d4 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseTemplateStep.form
+++ b/android/src/com/android/tools/idea/npw/ChooseTemplateStep.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.ChooseTemplateStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ChooseTemplateStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="2" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
@@ -16,7 +16,7 @@
</constraints>
<properties/>
</component>
- <component id="a51bb" class="com.android.tools.idea.wizard.ImageComponent" binding="myTemplateImage">
+ <component id="a51bb" class="com.android.tools.idea.ui.ImageComponent" binding="myTemplateImage">
<constraints>
<grid row="0" column="2" row-span="1" col-span="2" vsize-policy="6" hsize-policy="6" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="256" height="256"/>
diff --git a/android/src/com/android/tools/idea/wizard/ChooseTemplateStep.java b/android/src/com/android/tools/idea/npw/ChooseTemplateStep.java
index 839e6e632ac..b33c1344e1a 100644
--- a/android/src/com/android/tools/idea/wizard/ChooseTemplateStep.java
+++ b/android/src/com/android/tools/idea/npw/ChooseTemplateStep.java
@@ -13,11 +13,14 @@
* 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.npw;
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.ui.ImageComponent;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.collect.ComparisonChain;
import com.google.common.io.Files;
import com.intellij.openapi.diagnostic.Logger;
diff --git a/android/src/com/android/tools/idea/wizard/CircularParameterDependencyException.java b/android/src/com/android/tools/idea/npw/CircularParameterDependencyException.java
index e4fdcce05a6..47971c3a104 100644
--- a/android/src/com/android/tools/idea/wizard/CircularParameterDependencyException.java
+++ b/android/src/com/android/tools/idea/npw/CircularParameterDependencyException.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.npw;
import org.jetbrains.annotations.NotNull;
diff --git a/android/src/com/android/tools/idea/wizard/CommonAssetSetStep.java b/android/src/com/android/tools/idea/npw/CommonAssetSetStep.java
index 879dcc04ec3..deac54c4026 100644
--- a/android/src/com/android/tools/idea/wizard/CommonAssetSetStep.java
+++ b/android/src/com/android/tools/idea/npw/CommonAssetSetStep.java
@@ -13,13 +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.npw;
import com.android.builder.model.SourceProvider;
import com.android.resources.ResourceFolderType;
import com.android.resources.ResourceType;
import com.android.tools.idea.templates.Parameter;
import com.android.tools.idea.templates.TemplateMetadata;
+import com.android.tools.idea.ui.ImageComponent;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.collect.Iterators;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.diagnostic.Logger;
@@ -40,7 +43,7 @@ import java.io.File;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.*;
+import static com.android.tools.idea.npw.AssetStudioAssetGenerator.*;
/**
* This is the common asset set step for both PNG files and SVG files.
diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStep.form b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStep.form
index 9be2e383ac6..939552419be 100644
--- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStep.form
+++ b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStep.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.ConfigureAndroidModuleStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ConfigureAndroidModuleStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="16" column-count="7" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStep.java b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStep.java
index f38b31f4136..cdea89475ff 100755
--- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStep.java
+++ b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStep.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.npw;
import com.android.annotations.VisibleForTesting;
import com.android.sdklib.AndroidVersion;
@@ -26,6 +26,9 @@ import com.android.sdklib.repository.local.LocalPkgInfo;
import com.android.tools.idea.templates.Parameter;
import com.android.tools.idea.templates.TemplateMetadata;
import com.android.tools.idea.templates.TemplateUtils;
+import com.android.tools.idea.ui.ComboBoxItemWithApiTag;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableSet;
@@ -64,9 +67,9 @@ import java.util.Locale;
import java.util.Set;
import java.util.concurrent.Callable;
+import static com.android.tools.idea.npw.NewModuleWizardState.APP_NAME;
+import static com.android.tools.idea.npw.NewProjectWizardState.*;
import static com.android.tools.idea.templates.TemplateMetadata.*;
-import static com.android.tools.idea.wizard.NewModuleWizardState.APP_NAME;
-import static com.android.tools.idea.wizard.NewProjectWizardState.*;
/**
* ConfigureAndroidModuleStep is the first page in the New Project wizard that sets project/module name, location, and other project-global
@@ -478,7 +481,7 @@ public class ConfigureAndroidModuleStep extends TemplateWizardStep {
}
if ((myTemplateState.getString(ATTR_PACKAGE_NAME)).startsWith(SAMPLE_PACKAGE_PREFIX)) {
int length = SAMPLE_PACKAGE_PREFIX.length();
- if (SAMPLE_PACKAGE_PREFIX.endsWith(".")) {
+ if (SAMPLE_PACKAGE_PREFIX.endsWith("")) {
length--;
}
myPackageName.select(0, length);
@@ -659,7 +662,7 @@ public class ConfigureAndroidModuleStep extends TemplateWizardStep {
String projectName = myTemplateState.getString(ATTR_APP_TITLE);
projectName = nameToPackage(projectName);
moduleName = nameToPackage(moduleName);
- if (!myPackagePrefix.endsWith(".")) {
+ if (!myPackagePrefix.endsWith("")) {
myPackagePrefix += '.';
}
if (moduleName.isEmpty() && projectName.isEmpty()) {
@@ -830,7 +833,7 @@ public class ConfigureAndroidModuleStep extends TemplateWizardStep {
}
}
- public static class SourceLevelComboBoxItem extends ComboBoxItem {
+ public static class SourceLevelComboBoxItem extends ComboBoxItemWithApiTag {
public final LanguageLevel level;
public SourceLevelComboBoxItem(@NotNull LanguageLevel level) {
@@ -844,7 +847,7 @@ public class ConfigureAndroidModuleStep extends TemplateWizardStep {
}
}
- public static class AndroidTargetComboBoxItem extends ComboBoxItem {
+ public static class AndroidTargetComboBoxItem extends ComboBoxItemWithApiTag {
public int apiLevel = -1;
public IAndroidTarget target = null;
diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.form b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamic.form
index 99047132fcf..963c37ffef4 100644
--- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.form
+++ b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamic.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.ConfigureAndroidModuleStepDynamic">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ConfigureAndroidModuleStepDynamic">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="4" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
@@ -38,7 +38,7 @@
<grid row="3" column="2" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
- <component id="6c8a2" class="com.android.tools.idea.wizard.LabelWithEditLink" binding="myPackageName">
+ <component id="6c8a2" class="com.android.tools.idea.ui.LabelWithEditLink" binding="myPackageName">
<constraints>
<grid row="2" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
@@ -71,7 +71,7 @@
<text value="Minimum SDK"/>
</properties>
</component>
- <component id="9427e" class="com.android.tools.idea.wizard.FormFactorApiComboBox" binding="mySdkControls" custom-create="true">
+ <component id="9427e" class="com.android.tools.idea.npw.FormFactorApiComboBox" binding="mySdkControls" custom-create="true">
<constraints>
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.java b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamic.java
index 46666c93d55..70c0761e56e 100644
--- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamic.java
+++ b/android/src/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamic.java
@@ -13,8 +13,12 @@
* 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.npw;
+import com.android.tools.idea.ui.LabelWithEditLink;
+import com.android.tools.idea.wizard.WizardConstants;
+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;
@@ -27,8 +31,8 @@ import javax.swing.*;
import javax.swing.text.Document;
import java.util.Set;
-import static com.android.tools.idea.wizard.ConfigureAndroidProjectStep.PACKAGE_NAME_DERIVER;
-import static com.android.tools.idea.wizard.ConfigureAndroidProjectStep.SAVED_COMPANY_DOMAIN;
+import static com.android.tools.idea.npw.ConfigureAndroidProjectStep.PACKAGE_NAME_DERIVER;
+import static com.android.tools.idea.npw.ConfigureAndroidProjectStep.SAVED_COMPANY_DOMAIN;
import static com.android.tools.idea.wizard.WizardConstants.*;
/**
diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectPath.java b/android/src/com/android/tools/idea/npw/ConfigureAndroidProjectPath.java
index 5ff440c0ad3..ee50a6f33b2 100644
--- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectPath.java
+++ b/android/src/com/android/tools/idea/npw/ConfigureAndroidProjectPath.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.npw;
import com.android.SdkConstants;
import com.android.sdklib.BuildToolInfo;
@@ -24,7 +24,10 @@ 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.WizardConstants;
+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.form b/android/src/com/android/tools/idea/npw/ConfigureAndroidProjectStep.form
index 4c0622f7238..aa59bad341a 100644
--- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.form
+++ b/android/src/com/android/tools/idea/npw/ConfigureAndroidProjectStep.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.ConfigureAndroidProjectStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ConfigureAndroidProjectStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="6" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
@@ -76,7 +76,7 @@
<grid row="5" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
- <component id="6c8a2" class="com.android.tools.idea.wizard.LabelWithEditLink" binding="myPackageName">
+ <component id="6c8a2" class="com.android.tools.idea.ui.LabelWithEditLink" binding="myPackageName">
<constraints>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
diff --git a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.java b/android/src/com/android/tools/idea/npw/ConfigureAndroidProjectStep.java
index f526877f9b0..b3ff3500e2e 100644
--- a/android/src/com/android/tools/idea/wizard/ConfigureAndroidProjectStep.java
+++ b/android/src/com/android/tools/idea/npw/ConfigureAndroidProjectStep.java
@@ -13,9 +13,13 @@
* 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.npw;
import com.android.annotations.VisibleForTesting;
+import com.android.tools.idea.ui.LabelWithEditLink;
+import com.android.tools.idea.wizard.WizardConstants;
+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 +39,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.form b/android/src/com/android/tools/idea/npw/ConfigureFormFactorStep.form
index 88cc7c29491..f2b2edac37d 100644
--- a/android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.form
+++ b/android/src/com/android/tools/idea/npw/ConfigureFormFactorStep.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.ConfigureFormFactorStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ConfigureFormFactorStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="3" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="5" right="5"/>
<constraints>
diff --git a/android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.java b/android/src/com/android/tools/idea/npw/ConfigureFormFactorStep.java
index 7e36ce307ed..9cf959b7138 100755
--- a/android/src/com/android/tools/idea/wizard/ConfigureFormFactorStep.java
+++ b/android/src/com/android/tools/idea/npw/ConfigureFormFactorStep.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.npw;
import com.android.sdklib.repository.descriptors.IPkgDesc;
import com.android.tools.idea.sdk.SdkLoadedCallback;
@@ -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;
@@ -52,13 +56,13 @@ import java.util.*;
import java.util.List;
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.npw.FormFactorApiComboBox.AndroidTargetComboBoxItem;
+import static com.android.tools.idea.npw.FormFactorUtils.*;
+import static com.android.tools.idea.npw.FormFactorUtils.FormFactor.MOBILE;
+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;
/**
@@ -371,7 +375,7 @@ public class ConfigureFormFactorStep extends DynamicWizardStepWithHeaderAndDescr
}
Boolean isBaseEnabled = myState.get(getInclusionKey(formFactor.baseFormFactor));
if (isBaseEnabled == null || !isBaseEnabled) {
- setErrorHtml("In order to support " + formFactor + " you need to enable " + formFactor.baseFormFactor + ".");
+ setErrorHtml("In order to support " + formFactor + " you need to enable " + formFactor.baseFormFactor + "");
return false;
}
// Check if minSDK of the base is valid:
diff --git a/android/src/com/android/tools/idea/wizard/CreateModuleFromArchiveAction.java b/android/src/com/android/tools/idea/npw/CreateModuleFromArchiveAction.java
index 2bd33c7a300..03838634228 100644
--- a/android/src/com/android/tools/idea/wizard/CreateModuleFromArchiveAction.java
+++ b/android/src/com/android/tools/idea/npw/CreateModuleFromArchiveAction.java
@@ -13,12 +13,13 @@
* 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.npw;
import com.android.SdkConstants;
import com.android.annotations.VisibleForTesting;
import com.android.tools.idea.gradle.parser.*;
import com.android.tools.idea.gradle.util.GradleUtil;
+import com.android.tools.idea.npw.WrapArchiveWizardPath;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.intellij.openapi.application.Result;
diff --git a/android/src/com/android/tools/idea/wizard/CreateModuleTemplate.java b/android/src/com/android/tools/idea/npw/CreateModuleTemplate.java
index 4c165c4c1c3..34993742117 100644
--- a/android/src/com/android/tools/idea/wizard/CreateModuleTemplate.java
+++ b/android/src/com/android/tools/idea/npw/CreateModuleTemplate.java
@@ -13,9 +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.npw;
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/npw/FormFactorApiComboBox.java
index effbd48d0d5..f7535265d9a 100644
--- a/android/src/com/android/tools/idea/wizard/FormFactorApiComboBox.java
+++ b/android/src/com/android/tools/idea/npw/FormFactorApiComboBox.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.npw;
import com.android.sdklib.AndroidTargetHash;
import com.android.sdklib.AndroidVersion;
@@ -25,6 +25,9 @@ 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.ui.ComboBoxItemWithApiTag;
+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;
@@ -45,9 +48,9 @@ import java.util.ArrayList;
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.npw.FormFactorUtils.*;
import static com.android.tools.idea.wizard.WizardConstants.INSTALL_REQUESTS_KEY;
+import static com.android.tools.idea.wizard.dynamic.ScopedStateStore.Key;
/**
* A labeled combo box of SDK options for a given FormFactor.
@@ -282,7 +285,7 @@ public final class FormFactorApiComboBox extends JComboBox {
return list.toArray(new IAndroidTarget[list.size()]);
}
- public static class AndroidTargetComboBoxItem extends ComboBoxItem {
+ public static class AndroidTargetComboBoxItem extends ComboBoxItemWithApiTag {
public int apiLevel = -1;
public IAndroidTarget target = null;
diff --git a/android/src/com/android/tools/idea/wizard/FormFactorUtils.java b/android/src/com/android/tools/idea/npw/FormFactorUtils.java
index 47574157e95..0e1178b1fb6 100644
--- a/android/src/com/android/tools/idea/wizard/FormFactorUtils.java
+++ b/android/src/com/android/tools/idea/npw/FormFactorUtils.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.npw;
import com.android.sdklib.repository.descriptors.IPkgDescAddon;
import com.android.sdklib.repository.descriptors.PkgType;
@@ -35,11 +35,11 @@ import java.util.List;
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.npw.FormFactorApiComboBox.AndroidTargetComboBoxItem;
+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/IconPicker.java b/android/src/com/android/tools/idea/npw/IconPicker.java
index 4d5681d4150..813d5e4072c 100644
--- a/android/src/com/android/tools/idea/wizard/IconPicker.java
+++ b/android/src/com/android/tools/idea/npw/IconPicker.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.npw;
import com.android.SdkConstants;
import com.android.annotations.Nullable;
diff --git a/android/src/com/android/tools/idea/wizard/IconStep.form b/android/src/com/android/tools/idea/npw/IconStep.form
index 844c26ebcc8..db2514c4510 100644
--- a/android/src/com/android/tools/idea/wizard/IconStep.form
+++ b/android/src/com/android/tools/idea/npw/IconStep.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.IconStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.IconStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="3" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
@@ -542,7 +542,7 @@
<text value="API 11+"/>
</properties>
</component>
- <component id="67237" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9XHdpiPreview">
+ <component id="67237" class="com.android.tools.idea.ui.ImageComponent" binding="myV9XHdpiPreview">
<constraints>
<grid row="1" column="2" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="32" height="50"/>
@@ -551,7 +551,7 @@
</constraints>
<properties/>
</component>
- <component id="c6797" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9XXHdpiPreview">
+ <component id="c6797" class="com.android.tools.idea.ui.ImageComponent" binding="myV9XXHdpiPreview">
<constraints>
<grid row="1" column="3" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="48" height="75"/>
@@ -560,7 +560,7 @@
</constraints>
<properties/>
</component>
- <component id="b070e" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9MdpiPreview">
+ <component id="b070e" class="com.android.tools.idea.ui.ImageComponent" binding="myV9MdpiPreview">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="16" height="25"/>
@@ -569,7 +569,7 @@
</constraints>
<properties/>
</component>
- <component id="df66e" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9HdpiPreview">
+ <component id="df66e" class="com.android.tools.idea.ui.ImageComponent" binding="myV9HdpiPreview">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="24" height="38"/>
@@ -578,7 +578,7 @@
</constraints>
<properties/>
</component>
- <component id="407db" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11XHdpiPreview">
+ <component id="407db" class="com.android.tools.idea.ui.ImageComponent" binding="myV11XHdpiPreview">
<constraints>
<grid row="3" column="2" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="48" height="48"/>
@@ -587,7 +587,7 @@
</constraints>
<properties/>
</component>
- <component id="83c81" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11XXHdpiPreview">
+ <component id="83c81" class="com.android.tools.idea.ui.ImageComponent" binding="myV11XXHdpiPreview">
<constraints>
<grid row="3" column="3" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="72" height="72"/>
@@ -596,7 +596,7 @@
</constraints>
<properties/>
</component>
- <component id="2deaf" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11MdpiPreview">
+ <component id="2deaf" class="com.android.tools.idea.ui.ImageComponent" binding="myV11MdpiPreview">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="24" height="24"/>
@@ -605,7 +605,7 @@
</constraints>
<properties/>
</component>
- <component id="dd5f6" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11HdpiPreview">
+ <component id="dd5f6" class="com.android.tools.idea.ui.ImageComponent" binding="myV11HdpiPreview">
<constraints>
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="36" height="36"/>
@@ -655,7 +655,7 @@
<text value="XHDPI"/>
</properties>
</component>
- <component id="8a696" class="com.android.tools.idea.wizard.ImageComponent" binding="myMdpiPreview">
+ <component id="8a696" class="com.android.tools.idea.ui.ImageComponent" binding="myMdpiPreview">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="48" height="48"/>
@@ -664,7 +664,7 @@
</constraints>
<properties/>
</component>
- <component id="43639" class="com.android.tools.idea.wizard.ImageComponent" binding="myXHdpiPreview">
+ <component id="43639" class="com.android.tools.idea.ui.ImageComponent" binding="myXHdpiPreview">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="96" height="96"/>
@@ -673,7 +673,7 @@
</constraints>
<properties/>
</component>
- <component id="e5feb" class="com.android.tools.idea.wizard.ImageComponent" binding="myHdpiPreview">
+ <component id="e5feb" class="com.android.tools.idea.ui.ImageComponent" binding="myHdpiPreview">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="72" height="72"/>
@@ -690,7 +690,7 @@
<text value="HDPI"/>
</properties>
</component>
- <component id="6bf5d" class="com.android.tools.idea.wizard.ImageComponent" binding="myXXHdpiPreview">
+ <component id="6bf5d" class="com.android.tools.idea.ui.ImageComponent" binding="myXXHdpiPreview">
<constraints>
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="144" height="144"/>
diff --git a/android/src/com/android/tools/idea/wizard/IconStep.java b/android/src/com/android/tools/idea/npw/IconStep.java
index f12a73b83fe..36d5b76e610 100644
--- a/android/src/com/android/tools/idea/wizard/IconStep.java
+++ b/android/src/com/android/tools/idea/npw/IconStep.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.npw;
import com.android.SdkConstants;
import com.android.assetstudiolib.GraphicGenerator;
@@ -22,10 +22,11 @@ import com.android.builder.model.SourceProvider;
import com.android.resources.Density;
import com.android.resources.ResourceFolderType;
import com.android.resources.ResourceType;
-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.templates.*;
+import com.android.tools.idea.ui.ComboBoxItemWithApiTag;
+import com.android.tools.idea.ui.ImageComponent;
+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;
@@ -56,11 +57,11 @@ import java.util.List;
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.npw.AssetStudioAssetGenerator.*;
+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.
@@ -163,7 +164,7 @@ public class IconStep extends DynamicWizardStepWithDescription implements Dispos
myBackgroundColor.setSelectedColor(Color.WHITE);
for (String font : GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()) {
- myFontFamily.addItem(new ComboBoxItem(font, font, 1, 1));
+ myFontFamily.addItem(new ComboBoxItemWithApiTag(font, font, 1, 1));
if (font.equals(myState.get(ATTR_FONT))) {
myFontFamily.setSelectedIndex(myFontFamily.getItemCount() - 1);
}
@@ -196,7 +197,7 @@ public class IconStep extends DynamicWizardStepWithDescription implements Dispos
private static void populateThemeComboBox(JComboBox comboBox) {
for (Theme theme : Theme.values()) {
String themeName = theme.name();
- comboBox.addItem(new ComboBoxItem(themeName, themeName, 0, 0));
+ comboBox.addItem(new ComboBoxItemWithApiTag(themeName, themeName, 0, 0));
}
}
@@ -359,9 +360,9 @@ public class IconStep extends DynamicWizardStepWithDescription implements Dispos
showLabelAndCombo = folders.size() > 1;
mySourceSetComboBox.removeAllItems();
if (showLabelAndCombo) {
- ComboBoxItem selected = null;
+ ComboBoxItemWithApiTag selected = null;
for (File directory : folders) {
- ComboBoxItem item = new ComboBoxItem(directory, getResourceDirLabel(getModule(), directory), 0, 0);
+ ComboBoxItemWithApiTag item = new ComboBoxItemWithApiTag(directory, getResourceDirLabel(getModule(), directory), 0, 0);
if (Objects.equal(directory, res)) {
selected = item;
}
diff --git a/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.form b/android/src/com/android/tools/idea/npw/ImportSourceLocationStep.form
index dbe4ef3ba1b..9ccdf236a19 100644
--- a/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.form
+++ b/android/src/com/android/tools/idea/npw/ImportSourceLocationStep.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.ImportSourceLocationStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.ImportSourceLocationStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="8" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
@@ -25,7 +25,7 @@
</properties>
<border type="none"/>
<children>
- <component id="fa8c8" class="com.android.tools.idea.wizard.ModulesTable" binding="myModulesPanel">
+ <component id="fa8c8" class="com.android.tools.idea.npw.ModulesTable" binding="myModulesPanel">
<constraints/>
<properties/>
</component>
diff --git a/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.java b/android/src/com/android/tools/idea/npw/ImportSourceLocationStep.java
index d111c7f830f..c0dc5ad9150 100644
--- a/android/src/com/android/tools/idea/wizard/ImportSourceLocationStep.java
+++ b/android/src/com/android/tools/idea/npw/ImportSourceLocationStep.java
@@ -13,11 +13,13 @@
* 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.npw;
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;
import com.google.common.base.Strings;
@@ -351,10 +353,10 @@ public class ImportSourceLocationStep extends ModuleWizardStep implements Androi
@SuppressWarnings("unchecked")
public String getMessage(@Nullable Object details) {
if (this == MISSING_SUBPROJECTS && details instanceof Collection) {
- final String message = ImportUIUtil.formatElementListString((Collection<String>)details,
- "Unable to find sources for subproject %1$s.",
- "Unable to find sources for subprojects %1$s and %2$s.",
- "Unable to find sources for %1$s and %2$d more subprojects.");
+ final String message = ImportUIUtil
+ .formatElementListString((Collection<String>)details, "Unable to find sources for subproject %1$s.",
+ "Unable to find sources for subprojects %1$s and %2$s.",
+ "Unable to find sources for %1$s and %2$d more subprojects.");
return multiLineJLabelText(message, "This may result in missing dependencies.");
}
else {
diff --git a/android/src/com/android/tools/idea/wizard/ImportSourceModulePath.java b/android/src/com/android/tools/idea/npw/ImportSourceModulePath.java
index 568c1337074..3b8c5a1bf3b 100644
--- a/android/src/com/android/tools/idea/wizard/ImportSourceModulePath.java
+++ b/android/src/com/android/tools/idea/npw/ImportSourceModulePath.java
@@ -13,12 +13,13 @@
* 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.npw;
import com.android.tools.idea.gradle.project.ModuleImporter;
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.template.TemplateWizardStep;
import com.google.common.collect.Lists;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.ide.util.projectWizard.WizardContext;
@@ -34,7 +35,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import static com.android.tools.idea.wizard.ChooseTemplateStep.MetadataListItem;
+import static com.android.tools.idea.npw.ChooseTemplateStep.MetadataListItem;
/**
* Create a new module using existing ADT or Gradle source files.
diff --git a/android/src/com/android/tools/idea/wizard/ImportUIUtil.java b/android/src/com/android/tools/idea/npw/ImportUIUtil.java
index c6d8f310082..0cbfd0d80fa 100644
--- a/android/src/com/android/tools/idea/wizard/ImportUIUtil.java
+++ b/android/src/com/android/tools/idea/npw/ImportUIUtil.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.npw;
import com.google.common.base.Functions;
import com.google.common.base.Joiner;
diff --git a/android/src/com/android/tools/idea/wizard/ImportWizardModuleBuilder.java b/android/src/com/android/tools/idea/npw/ImportWizardModuleBuilder.java
index dffd5805ec3..b18cd38b01f 100644
--- a/android/src/com/android/tools/idea/wizard/ImportWizardModuleBuilder.java
+++ b/android/src/com/android/tools/idea/npw/ImportWizardModuleBuilder.java
@@ -13,11 +13,12 @@
* 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.npw;
import com.android.annotations.VisibleForTesting;
import com.android.tools.idea.gradle.project.GradleProjectImporter;
import com.android.tools.idea.templates.Template;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.base.Functions;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
@@ -58,8 +59,8 @@ import java.util.Map;
import static com.android.SdkConstants.GRADLE_LATEST_VERSION;
import static com.android.SdkConstants.GRADLE_PLUGIN_RECOMMENDED_VERSION;
import static com.android.tools.idea.templates.TemplateMetadata.*;
-import static com.android.tools.idea.wizard.FormFactorUtils.ATTR_MODULE_NAME;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_PROJECT_LOCATION;
+import static com.android.tools.idea.npw.FormFactorUtils.ATTR_MODULE_NAME;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_PROJECT_LOCATION;
public class ImportWizardModuleBuilder extends ModuleBuilder implements TemplateWizardStep.UpdateListener, ChooseTemplateStep.TemplateChangeListener {
@NotNull protected final List<ModuleWizardStep> mySteps;
diff --git a/android/src/com/android/tools/idea/wizard/JavaModuleDynamicPath.java b/android/src/com/android/tools/idea/npw/JavaModuleDynamicPath.java
index ae3e5f997a2..eb3b4c0e833 100644
--- a/android/src/com/android/tools/idea/wizard/JavaModuleDynamicPath.java
+++ b/android/src/com/android/tools/idea/npw/JavaModuleDynamicPath.java
@@ -13,12 +13,15 @@
* 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.npw;
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.WizardConstants;
+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/JavaWizardPathProvider.java b/android/src/com/android/tools/idea/npw/JavaWizardPathProvider.java
index 6ca9567dfc8..acc2c8a6dca 100644
--- a/android/src/com/android/tools/idea/wizard/JavaWizardPathProvider.java
+++ b/android/src/com/android/tools/idea/npw/JavaWizardPathProvider.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.npw;
import com.google.common.collect.ImmutableSet;
import com.intellij.openapi.Disposable;
diff --git a/android/src/com/android/tools/idea/wizard/LegacyPathWrapper.java b/android/src/com/android/tools/idea/npw/LegacyPathWrapper.java
index 8cf4305935b..95fcb11d7c9 100644
--- a/android/src/com/android/tools/idea/wizard/LegacyPathWrapper.java
+++ b/android/src/com/android/tools/idea/npw/LegacyPathWrapper.java
@@ -13,8 +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.npw;
+import 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/LegacyWizardPathProvider.java b/android/src/com/android/tools/idea/npw/LegacyWizardPathProvider.java
index 1c2de9545ad..090ef8a00e5 100644
--- a/android/src/com/android/tools/idea/wizard/LegacyWizardPathProvider.java
+++ b/android/src/com/android/tools/idea/npw/LegacyWizardPathProvider.java
@@ -1,4 +1,4 @@
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.npw;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
diff --git a/android/src/com/android/tools/idea/wizard/ModuleImportSettings.java b/android/src/com/android/tools/idea/npw/ModuleImportSettings.java
index c6aadd8cc27..e46e96668f8 100644
--- a/android/src/com/android/tools/idea/wizard/ModuleImportSettings.java
+++ b/android/src/com/android/tools/idea/npw/ModuleImportSettings.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.npw;
import com.intellij.openapi.ui.MessageType;
import org.jetbrains.annotations.Nullable;
diff --git a/android/src/com/android/tools/idea/wizard/ModuleImportSettingsPane.java b/android/src/com/android/tools/idea/npw/ModuleImportSettingsPane.java
index 8567fb45a47..e0cc449b0fb 100644
--- a/android/src/com/android/tools/idea/wizard/ModuleImportSettingsPane.java
+++ b/android/src/com/android/tools/idea/npw/ModuleImportSettingsPane.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.npw;
import com.google.common.base.Objects;
import com.google.common.collect.Lists;
diff --git a/android/src/com/android/tools/idea/wizard/ModuleListModel.java b/android/src/com/android/tools/idea/npw/ModuleListModel.java
index 20226d25eaf..80ff06cef35 100644
--- a/android/src/com/android/tools/idea/wizard/ModuleListModel.java
+++ b/android/src/com/android/tools/idea/npw/ModuleListModel.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.npw;
import com.android.annotations.VisibleForTesting;
import com.android.tools.idea.gradle.project.ModuleToImport;
diff --git a/android/src/com/android/tools/idea/wizard/ModuleTemplate.java b/android/src/com/android/tools/idea/npw/ModuleTemplate.java
index 973f0c5b73c..a777bd90173 100644
--- a/android/src/com/android/tools/idea/wizard/ModuleTemplate.java
+++ b/android/src/com/android/tools/idea/npw/ModuleTemplate.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.npw;
+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/ModuleTemplateProvider.java b/android/src/com/android/tools/idea/npw/ModuleTemplateProvider.java
index 5414a1c6698..993ea2a3243 100644
--- a/android/src/com/android/tools/idea/wizard/ModuleTemplateProvider.java
+++ b/android/src/com/android/tools/idea/npw/ModuleTemplateProvider.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.npw;
+import com.android.tools.idea.npw.ModuleTemplate;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/android/src/com/android/tools/idea/wizard/ModulesTable.java b/android/src/com/android/tools/idea/npw/ModulesTable.java
index a6b108b3c17..e30b3b5fc99 100644
--- a/android/src/com/android/tools/idea/wizard/ModulesTable.java
+++ b/android/src/com/android/tools/idea/npw/ModulesTable.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.npw;
import com.android.tools.idea.gradle.project.ModuleToImport;
import com.google.common.base.Objects;
diff --git a/android/src/com/android/tools/idea/wizard/NewAndroidActivityWizard.java b/android/src/com/android/tools/idea/npw/NewAndroidActivityWizard.java
index 08bb4faf83a..28a7037fe7b 100644
--- a/android/src/com/android/tools/idea/wizard/NewAndroidActivityWizard.java
+++ b/android/src/com/android/tools/idea/npw/NewAndroidActivityWizard.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.npw;
+import com.android.tools.idea.npw.AddAndroidActivityPath;
+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/NewAndroidModulePath.java b/android/src/com/android/tools/idea/npw/NewAndroidModulePath.java
index a884214cb1b..8f7a1d6eed8 100644
--- a/android/src/com/android/tools/idea/wizard/NewAndroidModulePath.java
+++ b/android/src/com/android/tools/idea/npw/NewAndroidModulePath.java
@@ -13,11 +13,13 @@
* 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.npw;
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.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.collect.ImmutableSet;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.openapi.Disposable;
@@ -36,7 +38,7 @@ import java.util.Collection;
import static com.android.tools.idea.templates.Template.CATEGORY_ACTIVITIES;
import static com.android.tools.idea.templates.TemplateMetadata.ATTR_CREATE_ICONS;
-import static com.android.tools.idea.wizard.ChooseTemplateStep.MetadataListItem;
+import static com.android.tools.idea.npw.ChooseTemplateStep.MetadataListItem;
/**
* This class deals with the "main" flow of the new module wizard when
diff --git a/android/src/com/android/tools/idea/wizard/NewFormFactorModulePath.java b/android/src/com/android/tools/idea/npw/NewFormFactorModulePath.java
index 2d6b6443436..50c716d82fc 100644
--- a/android/src/com/android/tools/idea/wizard/NewFormFactorModulePath.java
+++ b/android/src/com/android/tools/idea/npw/NewFormFactorModulePath.java
@@ -13,13 +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.npw;
import com.android.builder.model.SourceProvider;
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.*;
+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;
import com.google.common.collect.Sets;
@@ -37,13 +40,13 @@ import java.util.*;
import static com.android.tools.idea.templates.TemplateMetadata.*;
import static com.android.tools.idea.templates.TemplateUtils.checkedCreateDirectoryIfMissing;
-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.npw.AddAndroidActivityPath.KEY_SELECTED_TEMPLATE;
+import static com.android.tools.idea.npw.ConfigureFormFactorStep.NUM_ENABLED_FORM_FACTORS_KEY;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_CREATE_ACTIVITY;
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/npw/NewModuleDynamicPath.java
index e3b22661813..996db0fab20 100644
--- a/android/src/com/android/tools/idea/wizard/NewModuleDynamicPath.java
+++ b/android/src/com/android/tools/idea/npw/NewModuleDynamicPath.java
@@ -13,7 +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.npw;
+
+import com.android.tools.idea.npw.ModuleTemplateProvider;
+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/NewModuleDynamicPathFactory.java b/android/src/com/android/tools/idea/npw/NewModuleDynamicPathFactory.java
index 927a8d68b13..2dd2bc92416 100644
--- a/android/src/com/android/tools/idea/wizard/NewModuleDynamicPathFactory.java
+++ b/android/src/com/android/tools/idea/npw/NewModuleDynamicPathFactory.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.npw;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.extensions.ExtensionPointName;
@@ -26,7 +26,7 @@ import java.util.Collection;
/**
* Creates the wizard paths to be displayed in Android Studio's New Module dialog.
*
- * This class replaces deprecated {@link com.android.tools.idea.wizard.NewModuleWizardPathFactory}
+ * This class replaces deprecated {@link NewModuleWizardPathFactory}
*/
public interface NewModuleDynamicPathFactory {
ExtensionPointName<NewModuleDynamicPathFactory> EP_NAME = ExtensionPointName.create("org.jetbrains.android.newModuleDynamicPathFactory");
diff --git a/android/src/com/android/tools/idea/wizard/NewModuleWizard.java b/android/src/com/android/tools/idea/npw/NewModuleWizard.java
index 8505d200688..355cbf42ad9 100644
--- a/android/src/com/android/tools/idea/wizard/NewModuleWizard.java
+++ b/android/src/com/android/tools/idea/npw/NewModuleWizard.java
@@ -13,11 +13,12 @@
* 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.npw;
import com.android.SdkConstants;
import com.android.annotations.VisibleForTesting;
import com.android.tools.idea.templates.TemplateUtils;
+import com.android.tools.idea.wizard.template.TemplateWizard;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
diff --git a/android/src/com/android/tools/idea/wizard/NewModuleWizardDynamic.java b/android/src/com/android/tools/idea/npw/NewModuleWizardDynamic.java
index e1dfe3e6309..e84ff30f4c2 100644
--- a/android/src/com/android/tools/idea/wizard/NewModuleWizardDynamic.java
+++ b/android/src/com/android/tools/idea/npw/NewModuleWizardDynamic.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.npw;
import com.android.SdkConstants;
@@ -24,7 +24,12 @@ 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.WizardConstants;
+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;
import com.google.common.collect.Lists;
diff --git a/android/src/com/android/tools/idea/wizard/NewModuleWizardPathFactory.java b/android/src/com/android/tools/idea/npw/NewModuleWizardPathFactory.java
index b0cd322c5d4..8998b5f3d46 100644
--- a/android/src/com/android/tools/idea/wizard/NewModuleWizardPathFactory.java
+++ b/android/src/com/android/tools/idea/npw/NewModuleWizardPathFactory.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.npw;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.project.Project;
diff --git a/android/src/com/android/tools/idea/wizard/NewModuleWizardState.java b/android/src/com/android/tools/idea/npw/NewModuleWizardState.java
index c31c3256c62..a32cd7c0668 100644
--- a/android/src/com/android/tools/idea/wizard/NewModuleWizardState.java
+++ b/android/src/com/android/tools/idea/npw/NewModuleWizardState.java
@@ -14,12 +14,14 @@
* limitations under the License.
*/
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.npw;
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;
import com.intellij.openapi.util.io.FileUtil;
@@ -38,7 +40,7 @@ import static com.android.tools.idea.templates.TemplateMetadata.*;
/**
* Value object which holds the current state of the wizard pages for the
- * {@link com.android.tools.idea.wizard.NewModuleWizard}
+ * {@link NewModuleWizard}
*
* Deprecated. Use {@link ScopedStateStore} instead.
*/
diff --git a/android/src/com/android/tools/idea/wizard/NewProjectWizard.java b/android/src/com/android/tools/idea/npw/NewProjectWizard.java
index 15d6e1b48b6..08b3709eec8 100644
--- a/android/src/com/android/tools/idea/wizard/NewProjectWizard.java
+++ b/android/src/com/android/tools/idea/npw/NewProjectWizard.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.npw;
import com.android.annotations.VisibleForTesting;
import com.android.tools.idea.gradle.project.GradleProjectImporter;
@@ -23,6 +23,9 @@ 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.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.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.intellij.ide.startup.StartupManagerEx;
@@ -55,7 +58,7 @@ import static icons.AndroidIcons.Wizards.NewProjectSidePanel;
* Deprecated by {@link NewProjectWizardDynamic}
*/
@Deprecated
-public class NewProjectWizard extends TemplateWizard implements TemplateParameterStep.UpdateListener {
+public class NewProjectWizard extends TemplateWizard implements TemplateWizardStep.UpdateListener {
private static final Logger LOG = Logger.getInstance("#" + NewProjectWizard.class.getName());
private static final String ERROR_MSG_TITLE = "New Project Wizard";
private static final String UNABLE_TO_CREATE_DIR_FORMAT = "Unable to create directory '%1$s'.";
diff --git a/android/src/com/android/tools/idea/wizard/NewProjectWizardDynamic.java b/android/src/com/android/tools/idea/npw/NewProjectWizardDynamic.java
index ee4c4b10e56..8a6063ee079 100644
--- a/android/src/com/android/tools/idea/wizard/NewProjectWizardDynamic.java
+++ b/android/src/com/android/tools/idea/npw/NewProjectWizardDynamic.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.npw;
import com.android.SdkConstants;
import com.android.tools.idea.gradle.project.GradleProjectImporter;
@@ -22,7 +22,11 @@ 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.FormFactorUtils.FormFactor;
+import com.android.tools.idea.npw.FormFactorUtils.FormFactor;
+import com.android.tools.idea.wizard.WizardConstants;
+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;
import com.intellij.openapi.application.ApplicationManager;
@@ -46,9 +50,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.
@@ -236,7 +238,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/NewProjectWizardState.java b/android/src/com/android/tools/idea/npw/NewProjectWizardState.java
index 46e143784c9..86a7506689a 100644
--- a/android/src/com/android/tools/idea/wizard/NewProjectWizardState.java
+++ b/android/src/com/android/tools/idea/npw/NewProjectWizardState.java
@@ -14,8 +14,12 @@
* limitations under the License.
*/
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.npw;
+import com.android.tools.idea.npw.ConfigureAndroidProjectPath;
+import com.android.tools.idea.npw.NewModuleWizardState;
+import com.android.tools.idea.npw.NewProjectWizard;
+import com.android.tools.idea.npw.NewProjectWizardDynamic;
import com.android.tools.idea.templates.Template;
import com.intellij.ide.RecentProjectsManagerImpl;
import com.intellij.openapi.application.ApplicationNamesInfo;
diff --git a/android/src/com/android/tools/idea/wizard/NewTemplateObjectWizard.java b/android/src/com/android/tools/idea/npw/NewTemplateObjectWizard.java
index 27cbbcda47a..66fc9d61363 100644
--- a/android/src/com/android/tools/idea/wizard/NewTemplateObjectWizard.java
+++ b/android/src/com/android/tools/idea/npw/NewTemplateObjectWizard.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.npw;
import com.android.annotations.VisibleForTesting;
import com.android.builder.model.SourceProvider;
@@ -25,6 +25,10 @@ import com.android.tools.idea.templates.KeystoreUtils;
import com.android.tools.idea.templates.TemplateManager;
import com.android.tools.idea.templates.TemplateMetadata;
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;
@@ -59,7 +63,7 @@ import static com.android.tools.idea.templates.TemplateMetadata.*;
* Deprecated. Extend from {@link DynamicWizard} instead.
*/
@Deprecated
-public class NewTemplateObjectWizard extends TemplateWizard implements TemplateParameterStep.UpdateListener,
+public class NewTemplateObjectWizard extends TemplateWizard implements TemplateWizardStep.UpdateListener,
ChooseTemplateStep.TemplateChangeListener,
ChooseSourceSetStep.SourceProviderSelectedListener {
private static final Logger LOG = Logger.getInstance("#" + NewTemplateObjectWizard.class.getName());
diff --git a/android/src/com/android/tools/idea/wizard/ParameterDefaultValueComputer.java b/android/src/com/android/tools/idea/npw/ParameterDefaultValueComputer.java
index 3586bafea08..048886b0805 100644
--- a/android/src/com/android/tools/idea/wizard/ParameterDefaultValueComputer.java
+++ b/android/src/com/android/tools/idea/npw/ParameterDefaultValueComputer.java
@@ -13,9 +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.npw;
import com.android.tools.idea.templates.Parameter;
+import com.android.tools.idea.templates.StringEvaluator;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
diff --git a/android/src/com/android/tools/idea/wizard/RasterAssetSetStep.form b/android/src/com/android/tools/idea/npw/RasterAssetSetStep.form
index 65844035dfa..53706a98b00 100644
--- a/android/src/com/android/tools/idea/wizard/RasterAssetSetStep.form
+++ b/android/src/com/android/tools/idea/npw/RasterAssetSetStep.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.RasterAssetSetStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.RasterAssetSetStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
@@ -45,7 +45,7 @@
<text value="API 11+"/>
</properties>
</component>
- <component id="67237" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9XHdpiPreview">
+ <component id="67237" class="com.android.tools.idea.ui.ImageComponent" binding="myV9XHdpiPreview">
<constraints>
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="1" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="32" height="50"/>
@@ -54,7 +54,7 @@
</constraints>
<properties/>
</component>
- <component id="c6797" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9XXHdpiPreview">
+ <component id="c6797" class="com.android.tools.idea.ui.ImageComponent" binding="myV9XXHdpiPreview">
<constraints>
<grid row="0" column="3" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="48" height="75"/>
@@ -63,7 +63,7 @@
</constraints>
<properties/>
</component>
- <component id="b070e" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9MdpiPreview">
+ <component id="b070e" class="com.android.tools.idea.ui.ImageComponent" binding="myV9MdpiPreview">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="16" height="25"/>
@@ -72,7 +72,7 @@
</constraints>
<properties/>
</component>
- <component id="df66e" class="com.android.tools.idea.wizard.ImageComponent" binding="myV9HdpiPreview">
+ <component id="df66e" class="com.android.tools.idea.ui.ImageComponent" binding="myV9HdpiPreview">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="24" height="38"/>
@@ -81,7 +81,7 @@
</constraints>
<properties/>
</component>
- <component id="407db" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11XHdpiPreview">
+ <component id="407db" class="com.android.tools.idea.ui.ImageComponent" binding="myV11XHdpiPreview">
<constraints>
<grid row="2" column="2" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="48" height="48"/>
@@ -90,7 +90,7 @@
</constraints>
<properties/>
</component>
- <component id="83c81" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11XXHdpiPreview">
+ <component id="83c81" class="com.android.tools.idea.ui.ImageComponent" binding="myV11XXHdpiPreview">
<constraints>
<grid row="2" column="3" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="72" height="72"/>
@@ -99,7 +99,7 @@
</constraints>
<properties/>
</component>
- <component id="2deaf" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11MdpiPreview">
+ <component id="2deaf" class="com.android.tools.idea.ui.ImageComponent" binding="myV11MdpiPreview">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="24" height="24"/>
@@ -108,7 +108,7 @@
</constraints>
<properties/>
</component>
- <component id="dd5f6" class="com.android.tools.idea.wizard.ImageComponent" binding="myV11HdpiPreview">
+ <component id="dd5f6" class="com.android.tools.idea.ui.ImageComponent" binding="myV11HdpiPreview">
<constraints>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="36" height="36"/>
@@ -174,7 +174,7 @@
<text value="XXHDPI"/>
</properties>
</component>
- <component id="26eab" class="com.android.tools.idea.wizard.ImageComponent" binding="myHdpiPreview">
+ <component id="26eab" class="com.android.tools.idea.ui.ImageComponent" binding="myHdpiPreview">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="72" height="72"/>
@@ -183,7 +183,7 @@
</constraints>
<properties/>
</component>
- <component id="b9c0e" class="com.android.tools.idea.wizard.ImageComponent" binding="myXHdpiPreview">
+ <component id="b9c0e" class="com.android.tools.idea.ui.ImageComponent" binding="myXHdpiPreview">
<constraints>
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="96" height="96"/>
@@ -192,7 +192,7 @@
</constraints>
<properties/>
</component>
- <component id="1a70" class="com.android.tools.idea.wizard.ImageComponent" binding="myXXHdpiPreview">
+ <component id="1a70" class="com.android.tools.idea.ui.ImageComponent" binding="myXXHdpiPreview">
<constraints>
<grid row="6" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="144" height="144"/>
@@ -209,7 +209,7 @@
<text value="XXXHDPI"/>
</properties>
</component>
- <component id="83597" class="com.android.tools.idea.wizard.ImageComponent" binding="myXXXHdpiPreview">
+ <component id="83597" class="com.android.tools.idea.ui.ImageComponent" binding="myXXXHdpiPreview">
<constraints>
<grid row="8" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="192" height="192"/>
@@ -218,7 +218,7 @@
</constraints>
<properties/>
</component>
- <component id="a0f98" class="com.android.tools.idea.wizard.ImageComponent" binding="myMdpiPreview">
+ <component id="a0f98" class="com.android.tools.idea.ui.ImageComponent" binding="myMdpiPreview">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="0" indent="0" use-parent-layout="false">
<minimum-size width="48" height="48"/>
diff --git a/android/src/com/android/tools/idea/wizard/RasterAssetSetStep.java b/android/src/com/android/tools/idea/npw/RasterAssetSetStep.java
index 4e4a490f9f1..c0e249a0e48 100644
--- a/android/src/com/android/tools/idea/wizard/RasterAssetSetStep.java
+++ b/android/src/com/android/tools/idea/npw/RasterAssetSetStep.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.npw;
import com.android.SdkConstants;
import com.android.assetstudiolib.ActionBarIconGenerator;
@@ -23,6 +23,10 @@ import com.android.resources.Density;
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.ui.ComboBoxItemWithApiTag;
+import com.android.tools.idea.ui.ImageComponent;
+import com.android.tools.idea.templates.StringEvaluator;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.module.Module;
@@ -47,7 +51,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.Callable;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.*;
+import static com.android.tools.idea.npw.AssetStudioAssetGenerator.*;
/**
* {@linkplain RasterAssetSetStep} is a wizard page that lets the user create a variety of density-scaled assets.
@@ -159,7 +163,7 @@ public class RasterAssetSetStep extends CommonAssetSetStep {
myBackgroundColor.setSelectedColor(Color.WHITE);
for (String font : GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()) {
- myFontFamily.addItem(new ComboBoxItem(font, font, 1, 1));
+ myFontFamily.addItem(new ComboBoxItemWithApiTag(font, font, 1, 1));
if (font.equals(myTemplateState.get(ATTR_FONT))) {
myFontFamily.setSelectedIndex(myFontFamily.getItemCount() - 1);
}
@@ -345,7 +349,7 @@ public class RasterAssetSetStep extends CommonAssetSetStep {
mySelectedAssetType = type;
myTemplateState.put(ATTR_ASSET_TYPE, type.name());
for (int i = 0; i < myAssetTypeComboBox.getItemCount(); ++i) {
- if (((ComboBoxItem)myAssetTypeComboBox.getItemAt(i)).id.equals(type.name())) {
+ if (((ComboBoxItemWithApiTag)myAssetTypeComboBox.getItemAt(i)).id.equals(type.name())) {
myAssetTypeComboBox.setSelectedIndex(i);
break;
}
diff --git a/android/src/com/android/tools/idea/wizard/ScopedStateStoreAdapter.java b/android/src/com/android/tools/idea/npw/ScopedStateStoreAdapter.java
index 114b8c2ff2b..09b2cfc6b7d 100644
--- a/android/src/com/android/tools/idea/wizard/ScopedStateStoreAdapter.java
+++ b/android/src/com/android/tools/idea/npw/ScopedStateStoreAdapter.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.npw;
import com.android.assetstudiolib.GraphicGenerator;
+import com.android.tools.idea.npw.AssetStudioAssetGenerator;
+import com.android.tools.idea.wizard.dynamic.ScopedStateStore;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
-import static com.android.tools.idea.wizard.IconStep.*;
+import static com.android.tools.idea.npw.IconStep.*;
/**
* Adapter for asset studio asset generator to use data from {@link ScopedStateStore}.
diff --git a/android/src/com/android/tools/idea/wizard/TemplateEntry.java b/android/src/com/android/tools/idea/npw/TemplateEntry.java
index fc6c9b60b21..5ef93f51fb9 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateEntry.java
+++ b/android/src/com/android/tools/idea/npw/TemplateEntry.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.npw;
import com.android.tools.idea.templates.Parameter;
import com.android.tools.idea.templates.Template;
diff --git a/android/src/com/android/tools/idea/wizard/TemplateGalleryStep.form b/android/src/com/android/tools/idea/npw/TemplateGalleryStep.form
index 8b878cbacaf..21f7adde0f2 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateGalleryStep.form
+++ b/android/src/com/android/tools/idea/npw/TemplateGalleryStep.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.TemplateGalleryStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.TemplateGalleryStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
@@ -49,7 +49,7 @@
<properties/>
<border type="none"/>
<children>
- <component id="4a990" class="com.android.tools.idea.wizard.ASGallery" binding="myGallery">
+ <component id="4a990" class="com.android.tools.idea.ui.ASGallery" binding="myGallery">
<constraints/>
<properties/>
</component>
diff --git a/android/src/com/android/tools/idea/wizard/TemplateGalleryStep.java b/android/src/com/android/tools/idea/npw/TemplateGalleryStep.java
index b6d26210366..a2f2c538388 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateGalleryStep.java
+++ b/android/src/com/android/tools/idea/npw/TemplateGalleryStep.java
@@ -13,11 +13,14 @@
* 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.npw;
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.ui.ASGallery;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.base.Function;
import com.google.common.base.Strings;
import com.intellij.openapi.diagnostic.Logger;
diff --git a/android/src/com/android/tools/idea/wizard/TemplateListProvider.java b/android/src/com/android/tools/idea/npw/TemplateListProvider.java
index a24e53fb09b..10859e847c0 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateListProvider.java
+++ b/android/src/com/android/tools/idea/npw/TemplateListProvider.java
@@ -13,10 +13,12 @@
* 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.npw;
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/TemplateParameterStep.form b/android/src/com/android/tools/idea/npw/TemplateParameterStep.form
index 11bd78a1bd0..b5a6be2265f 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateParameterStep.form
+++ b/android/src/com/android/tools/idea/npw/TemplateParameterStep.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.TemplateParameterStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.TemplateParameterStep">
<grid id="27dc6" binding="myContainer" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="5" bottom="0" right="0"/>
<constraints>
diff --git a/android/src/com/android/tools/idea/wizard/TemplateParameterStep.java b/android/src/com/android/tools/idea/npw/TemplateParameterStep.java
index 4a5e7c792a0..6e26a860193 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateParameterStep.java
+++ b/android/src/com/android/tools/idea/npw/TemplateParameterStep.java
@@ -13,11 +13,14 @@
* 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.npw;
import com.android.builder.model.SourceProvider;
import com.android.tools.idea.templates.Parameter;
import com.android.tools.idea.templates.TemplateMetadata;
+import com.android.tools.idea.ui.TextFieldWithLaunchBrowserButton;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Sets;
import com.google.common.io.Files;
diff --git a/android/src/com/android/tools/idea/wizard/TemplateParameterStep2.form b/android/src/com/android/tools/idea/npw/TemplateParameterStep2.form
index 51be2a901a6..3fa0adb0413 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateParameterStep2.form
+++ b/android/src/com/android/tools/idea/npw/TemplateParameterStep2.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.TemplateParameterStep2">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.TemplateParameterStep2">
<grid id="27dc6" binding="myRootPanel" layout-manager="GridLayoutManager" row-count="6" column-count="3" 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/TemplateParameterStep2.java b/android/src/com/android/tools/idea/npw/TemplateParameterStep2.java
index b442c491349..45a67001e91 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateParameterStep2.java
+++ b/android/src/com/android/tools/idea/npw/TemplateParameterStep2.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.npw;
import com.android.SdkConstants;
import com.android.annotations.VisibleForTesting;
@@ -22,9 +22,14 @@ 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.ui.ComboBoxItemWithApiTag;
+import com.android.tools.idea.ui.LabelWithEditLink;
+import com.android.tools.idea.ui.TextFieldWithLaunchBrowserButton;
+import com.android.tools.idea.templates.StringEvaluator;
+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;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
@@ -73,8 +78,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.
@@ -142,7 +147,7 @@ public class TemplateParameterStep2 extends DynamicWizardStepWithDescription {
private static JComponent createEnumCombo(Parameter parameter) {
List<Element> options = parameter.getOptions();
- ComboBoxItem[] items = new ComboBoxItem[options.size()];
+ ComboBoxItemWithApiTag[] items = new ComboBoxItemWithApiTag[options.size()];
int initialSelection = -1;
int i = 0;
assert !options.isEmpty();
@@ -160,7 +165,7 @@ public class TemplateParameterStep2 extends DynamicWizardStepWithDescription {
return comboBox;
}
- public static ComboBoxItem createItemForOption(Parameter parameter, Element option) {
+ public static ComboBoxItemWithApiTag createItemForOption(Parameter parameter, Element option) {
String optionId = option.getAttribute(SdkConstants.ATTR_ID);
assert optionId != null && !optionId.isEmpty() : SdkConstants.ATTR_ID;
NodeList childNodes = option.getChildNodes();
@@ -168,7 +173,7 @@ public class TemplateParameterStep2 extends DynamicWizardStepWithDescription {
String optionLabel = childNodes.item(0).getNodeValue().trim();
int minSdk = getIntegerOptionValue(option, TemplateMetadata.ATTR_MIN_API, parameter.name, 1);
int minBuildApi = getIntegerOptionValue(option, TemplateMetadata.ATTR_MIN_BUILD_API, parameter.name, 1);
- return new ComboBoxItem(optionId, optionLabel, minSdk, minBuildApi);
+ return new ComboBoxItemWithApiTag(optionId, optionLabel, minSdk, minBuildApi);
}
private static int getIntegerOptionValue(Element option, String attribute, @Nullable String parameterName, int defaultValue) {
@@ -557,8 +562,8 @@ public class TemplateParameterStep2 extends DynamicWizardStepWithDescription {
}
// Check to see that the selection's constraints are met if this is a combo box
- if (value instanceof ComboBoxItem) {
- ComboBoxItem selectedItem = (ComboBoxItem)value;
+ if (value instanceof ComboBoxItemWithApiTag) {
+ ComboBoxItemWithApiTag selectedItem = (ComboBoxItemWithApiTag)value;
if (minApi != null && selectedItem.minApi > minApi.getFeatureLevel()) {
setErrorHtml(String.format("The \"%s\" option for %s requires a minimum API level of %d",
@@ -720,7 +725,7 @@ public class TemplateParameterStep2 extends DynamicWizardStepWithDescription {
mySourceSet.removeAllItems();
for (SourceProvider sourceProvider : mySourceProviders) {
//noinspection unchecked
- mySourceSet.addItem(new ComboBoxItem(sourceProvider, sourceProvider.getName(), 0, 0));
+ mySourceSet.addItem(new ComboBoxItemWithApiTag(sourceProvider, sourceProvider.getName(), 0, 0));
}
addComponent(myTemplateParameters, mySourceSetLabel, row, 0, false);
addComponent(myTemplateParameters, mySourceSet, row, 1, true);
diff --git a/android/src/com/android/tools/idea/wizard/TemplateWizardContextAdapter.java b/android/src/com/android/tools/idea/npw/TemplateWizardContextAdapter.java
index 1af058fae6e..a965055d99c 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateWizardContextAdapter.java
+++ b/android/src/com/android/tools/idea/npw/TemplateWizardContextAdapter.java
@@ -13,15 +13,17 @@
* 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.npw;
import com.android.assetstudiolib.GraphicGenerator;
+import com.android.tools.idea.npw.AssetStudioAssetGenerator;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.*;
+import static com.android.tools.idea.npw.AssetStudioAssetGenerator.*;
/**
* Adapter to use asset studio with template wizard context
diff --git a/android/src/com/android/tools/idea/wizard/TemplateWizardModuleBuilder.java b/android/src/com/android/tools/idea/npw/TemplateWizardModuleBuilder.java
index d9cde0d79c9..564a3c82226 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateWizardModuleBuilder.java
+++ b/android/src/com/android/tools/idea/npw/TemplateWizardModuleBuilder.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.npw;
import com.android.tools.idea.templates.TemplateMetadata;
import com.google.common.collect.Lists;
diff --git a/android/src/com/android/tools/idea/wizard/TemplateWizardProjectTemplateFactory.java b/android/src/com/android/tools/idea/npw/TemplateWizardProjectTemplateFactory.java
index 5748ea4b2eb..90be113e285 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateWizardProjectTemplateFactory.java
+++ b/android/src/com/android/tools/idea/npw/TemplateWizardProjectTemplateFactory.java
@@ -13,9 +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.npw;
import com.android.tools.idea.gradle.util.Projects;
+import com.android.tools.idea.npw.NewProjectWizardState;
+import com.android.tools.idea.npw.TemplateWizardModuleBuilder;
import com.android.tools.idea.templates.Template;
import com.android.tools.idea.templates.TemplateManager;
import com.android.tools.idea.templates.TemplateMetadata;
diff --git a/android/src/com/android/tools/idea/wizard/VectorAssetSetStep.form b/android/src/com/android/tools/idea/npw/VectorAssetSetStep.form
index ce808ad25d4..b8f06d412f0 100644
--- a/android/src/com/android/tools/idea/wizard/VectorAssetSetStep.form
+++ b/android/src/com/android/tools/idea/npw/VectorAssetSetStep.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.VectorAssetSetStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.VectorAssetSetStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="7" 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>
@@ -97,7 +97,7 @@
<color color="-16777216"/>
</border>
<children>
- <component id="960a1" class="com.android.tools.idea.wizard.ImageComponent" binding="myImagePreview">
+ <component id="960a1" class="com.android.tools.idea.ui.ImageComponent" binding="myImagePreview">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="3" anchor="0" fill="0" indent="1" use-parent-layout="false">
<minimum-size width="128" height="128"/>
diff --git a/android/src/com/android/tools/idea/wizard/VectorAssetSetStep.java b/android/src/com/android/tools/idea/npw/VectorAssetSetStep.java
index 6883f61009d..567c2b1ed9a 100644
--- a/android/src/com/android/tools/idea/wizard/VectorAssetSetStep.java
+++ b/android/src/com/android/tools/idea/npw/VectorAssetSetStep.java
@@ -13,9 +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.npw;
import com.android.resources.Density;
+import com.android.tools.idea.ui.ImageComponent;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.google.common.base.Strings;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
@@ -30,7 +32,6 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
-
import javax.swing.event.HyperlinkEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -40,9 +41,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.concurrent.Callable;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.*;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.ATTR_ASSET_TYPE;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.ATTR_IMAGE_PATH;
+import static com.android.tools.idea.npw.AssetStudioAssetGenerator.*;
/**
* Similar to RasterAssetSetStep, this is particular for vector drawable generation.
diff --git a/android/src/com/android/tools/idea/wizard/VectorAssetStudioWizard.java b/android/src/com/android/tools/idea/npw/VectorAssetStudioWizard.java
index 431f8e3e32b..a0127212371 100644
--- a/android/src/com/android/tools/idea/wizard/VectorAssetStudioWizard.java
+++ b/android/src/com/android/tools/idea/npw/VectorAssetStudioWizard.java
@@ -13,8 +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.npw;
+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.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
@@ -24,8 +27,8 @@ import org.jetbrains.annotations.Nullable;
import java.awt.*;
-import static com.android.tools.idea.wizard.TemplateWizardStep.NONE;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.*;
+import static com.android.tools.idea.wizard.template.TemplateWizardStep.NONE;
+import static com.android.tools.idea.npw.AssetStudioAssetGenerator.*;
/**
* Wizard that allows the user to create vector assets.
diff --git a/android/src/com/android/tools/idea/wizard/WizardParameterFactory.java b/android/src/com/android/tools/idea/npw/WizardParameterFactory.java
index 210b06edcc7..0769bff9559 100644
--- a/android/src/com/android/tools/idea/wizard/WizardParameterFactory.java
+++ b/android/src/com/android/tools/idea/npw/WizardParameterFactory.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.npw;
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/npw/WizardPath.java
index 513ff68a8f5..abf7130848c 100644
--- a/android/src/com/android/tools/idea/wizard/WizardPath.java
+++ b/android/src/com/android/tools/idea/npw/WizardPath.java
@@ -13,13 +13,14 @@
* 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.npw;
+import com.android.tools.idea.wizard.dynamic.DynamicWizardPath;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import java.util.Collection;
-import static com.android.tools.idea.wizard.ChooseTemplateStep.MetadataListItem;
+import static com.android.tools.idea.npw.ChooseTemplateStep.MetadataListItem;
/**
* New module wizard supports several "paths". This is an interface for delegates that manage each path.
diff --git a/android/src/com/android/tools/idea/wizard/WizardUtils.java b/android/src/com/android/tools/idea/npw/WizardUtils.java
index 341f0b49c6b..13341b24ebb 100644
--- a/android/src/com/android/tools/idea/wizard/WizardUtils.java
+++ b/android/src/com/android/tools/idea/npw/WizardUtils.java
@@ -13,9 +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.npw;
import com.android.annotations.VisibleForTesting;
+import com.android.tools.idea.wizard.WizardConstants;
import com.google.common.base.CharMatcher;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationNamesInfo;
@@ -183,8 +184,8 @@ public class WizardUtils {
}
/**
- * Will return {@link com.android.tools.idea.wizard.WizardUtils.ValidationResult#OK} if projectLocation is valid
- * or {@link com.android.tools.idea.wizard.WizardUtils.ValidationResult} with error if not.
+ * Will return {@link WizardUtils.ValidationResult#OK} if projectLocation is valid
+ * or {@link WizardUtils.ValidationResult} with error if not.
*/
@NotNull
public static ValidationResult validateLocation(@Nullable String projectLocation) {
diff --git a/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.form b/android/src/com/android/tools/idea/npw/WrapArchiveOptionsStep.form
index 1bc7ebf1355..da34afefd0d 100644
--- a/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.form
+++ b/android/src/com/android/tools/idea/npw/WrapArchiveOptionsStep.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.WrapArchiveOptionsStep">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.android.tools.idea.npw.WrapArchiveOptionsStep">
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="7" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="96" left="16" bottom="0" right="0"/>
<constraints>
diff --git a/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.java b/android/src/com/android/tools/idea/npw/WrapArchiveOptionsStep.java
index 18700c3461b..a060633fdcd 100644
--- a/android/src/com/android/tools/idea/wizard/WrapArchiveOptionsStep.java
+++ b/android/src/com/android/tools/idea/npw/WrapArchiveOptionsStep.java
@@ -13,11 +13,13 @@
* 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.npw;
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;
import com.google.common.collect.ImmutableSet;
diff --git a/android/src/com/android/tools/idea/wizard/WrapArchiveWizardPath.java b/android/src/com/android/tools/idea/npw/WrapArchiveWizardPath.java
index 02ef171a7cd..a4e0694738c 100644
--- a/android/src/com/android/tools/idea/wizard/WrapArchiveWizardPath.java
+++ b/android/src/com/android/tools/idea/npw/WrapArchiveWizardPath.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.npw;
import com.android.SdkConstants;
import com.android.tools.idea.gradle.parser.GradleSettingsFile;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.annotations.VisibleForTesting;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.ide.wizard.StepListener;
diff --git a/android/src/com/android/tools/idea/wizard/WrapArchiveWizardPathFactory.java b/android/src/com/android/tools/idea/npw/WrapArchiveWizardPathFactory.java
index 88658c38ba1..b22c610be13 100644
--- a/android/src/com/android/tools/idea/wizard/WrapArchiveWizardPathFactory.java
+++ b/android/src/com/android/tools/idea/npw/WrapArchiveWizardPathFactory.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.npw;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
diff --git a/android/src/com/android/tools/idea/npw/package-info.java b/android/src/com/android/tools/idea/npw/package-info.java
new file mode 100644
index 00000000000..2bfb0d806e9
--- /dev/null
+++ b/android/src/com/android/tools/idea/npw/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * 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.
+ */
+
+/**
+ * "NPW" is short for "New Project Wizard", and this package is a collection of wizards that
+ * allow the user to create new projects and files within projects (like modules, activities,
+ * assets, etc.)
+ */
+package com.android.tools.idea.npw; \ No newline at end of file
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/templates/FmActivityToLayoutMethod.java b/android/src/com/android/tools/idea/templates/FmActivityToLayoutMethod.java
index e6873b86b98..acd021f85de 100644
--- a/android/src/com/android/tools/idea/templates/FmActivityToLayoutMethod.java
+++ b/android/src/com/android/tools/idea/templates/FmActivityToLayoutMethod.java
@@ -15,7 +15,6 @@
*/
package com.android.tools.idea.templates;
-import com.android.annotations.NonNull;
import com.android.utils.SdkUtils;
import freemarker.template.*;
import org.jetbrains.annotations.NotNull;
@@ -23,8 +22,8 @@ import org.jetbrains.annotations.NotNull;
import java.util.List;
import static com.android.tools.idea.templates.FmUtil.stripSuffix;
-import static com.android.tools.idea.wizard.TemplateWizardState.ACTIVITY_NAME_SUFFIX;
-import static com.android.tools.idea.wizard.TemplateWizardState.LAYOUT_NAME_PREFIX;
+import static com.android.tools.idea.wizard.template.TemplateWizardState.ACTIVITY_NAME_SUFFIX;
+import static com.android.tools.idea.wizard.template.TemplateWizardState.LAYOUT_NAME_PREFIX;
/**
* Method invoked by FreeMarker to convert an Activity class name into
diff --git a/android/src/com/android/tools/idea/templates/FmClassNameToResourceMethod.java b/android/src/com/android/tools/idea/templates/FmClassNameToResourceMethod.java
index b46e25c7160..7a78cab9a3e 100644
--- a/android/src/com/android/tools/idea/templates/FmClassNameToResourceMethod.java
+++ b/android/src/com/android/tools/idea/templates/FmClassNameToResourceMethod.java
@@ -20,7 +20,7 @@ import freemarker.template.*;
import java.util.List;
import static com.android.tools.idea.templates.FmUtil.stripSuffix;
-import static com.android.tools.idea.wizard.TemplateWizardState.ACTIVITY_NAME_SUFFIX;
+import static com.android.tools.idea.wizard.template.TemplateWizardState.ACTIVITY_NAME_SUFFIX;
/**
* Similar to {@link FmCamelCaseToUnderscoreMethod}, but strips off common class
diff --git a/android/src/com/android/tools/idea/templates/FmHasDependencyMethod.java b/android/src/com/android/tools/idea/templates/FmHasDependencyMethod.java
index adbebee1efd..a974d61857c 100644
--- a/android/src/com/android/tools/idea/templates/FmHasDependencyMethod.java
+++ b/android/src/com/android/tools/idea/templates/FmHasDependencyMethod.java
@@ -16,7 +16,6 @@
package com.android.tools.idea.templates;
import com.android.SdkConstants;
-import com.android.builder.model.Dependencies;
import com.android.tools.idea.gradle.IdeaAndroidProject;
import com.android.tools.idea.gradle.util.GradleUtil;
import com.intellij.openapi.module.Module;
@@ -25,19 +24,13 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectLocator;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
-import freemarker.ext.beans.BooleanModel;
import freemarker.template.*;
import org.jetbrains.android.facet.AndroidFacet;
-import org.jetbrains.android.inspections.lint.IntellijLintClient;
import java.io.File;
import java.util.List;
import java.util.Map;
-import static com.android.tools.idea.templates.FmUtil.stripSuffix;
-import static com.android.tools.idea.wizard.TemplateWizardState.ACTIVITY_NAME_SUFFIX;
-import static com.android.tools.idea.wizard.TemplateWizardState.LAYOUT_NAME_PREFIX;
-
/**
* Method invoked by FreeMarker to check whether a given dependency
* is available in this module
diff --git a/android/src/com/android/tools/idea/templates/FmLayoutToActivityMethod.java b/android/src/com/android/tools/idea/templates/FmLayoutToActivityMethod.java
index 6b2952ecbd0..a102c722395 100644
--- a/android/src/com/android/tools/idea/templates/FmLayoutToActivityMethod.java
+++ b/android/src/com/android/tools/idea/templates/FmLayoutToActivityMethod.java
@@ -15,8 +15,8 @@
*/
package com.android.tools.idea.templates;
-import static com.android.tools.idea.wizard.TemplateWizardState.ACTIVITY_NAME_SUFFIX;
-import static com.android.tools.idea.wizard.TemplateWizardState.LAYOUT_NAME_PREFIX;
+import static com.android.tools.idea.wizard.template.TemplateWizardState.ACTIVITY_NAME_SUFFIX;
+import static com.android.tools.idea.wizard.template.TemplateWizardState.LAYOUT_NAME_PREFIX;
import freemarker.template.*;
diff --git a/android/src/com/android/tools/idea/wizard/StringEvaluator.java b/android/src/com/android/tools/idea/templates/StringEvaluator.java
index ddc75dab12b..36b59c7e8a1 100644
--- a/android/src/com/android/tools/idea/wizard/StringEvaluator.java
+++ b/android/src/com/android/tools/idea/templates/StringEvaluator.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.templates;
import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
-import com.android.tools.idea.templates.FreemarkerConfiguration;
import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
diff --git a/android/src/com/android/tools/idea/templates/TemplateMetadata.java b/android/src/com/android/tools/idea/templates/TemplateMetadata.java
index f915af100e4..f22a5edcba4 100644
--- a/android/src/com/android/tools/idea/templates/TemplateMetadata.java
+++ b/android/src/com/android/tools/idea/templates/TemplateMetadata.java
@@ -18,7 +18,7 @@ package com.android.tools.idea.templates;
import com.android.annotations.VisibleForTesting;
import com.android.sdklib.AndroidTargetHash;
import com.android.sdklib.AndroidVersion;
-import com.android.tools.idea.wizard.AssetStudioAssetGenerator;
+import com.android.tools.idea.npw.AssetStudioAssetGenerator;
import com.google.common.base.Function;
import com.intellij.openapi.diagnostic.Logger;
import org.jetbrains.annotations.NotNull;
diff --git a/android/src/com/android/tools/idea/templates/TemplateUtils.java b/android/src/com/android/tools/idea/templates/TemplateUtils.java
index 5bc3ef50ddf..d169ccb39f6 100755
--- a/android/src/com/android/tools/idea/templates/TemplateUtils.java
+++ b/android/src/com/android/tools/idea/templates/TemplateUtils.java
@@ -18,13 +18,12 @@ package com.android.tools.idea.templates;
import com.android.sdklib.AndroidVersion;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.SdkVersionInfo;
-import com.android.tools.idea.wizard.WizardUtils;
+import com.android.tools.idea.npw.WizardUtils;
import com.android.utils.SparseArray;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import com.intellij.ide.impl.ProjectPaneSelectInTarget;
import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.application.Result;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
diff --git a/android/src/com/android/tools/idea/wizard/ASGallery.java b/android/src/com/android/tools/idea/ui/ASGallery.java
index a9e298a0b1d..62a14f54a02 100644
--- a/android/src/com/android/tools/idea/wizard/ASGallery.java
+++ b/android/src/com/android/tools/idea/ui/ASGallery.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.ui;
import com.android.annotations.VisibleForTesting;
import com.google.common.base.Function;
diff --git a/android/src/com/android/tools/idea/wizard/ComboBoxItem.java b/android/src/com/android/tools/idea/ui/ComboBoxItemWithApiTag.java
index 5f82457a8e6..94f31976458 100644
--- a/android/src/com/android/tools/idea/wizard/ComboBoxItem.java
+++ b/android/src/com/android/tools/idea/ui/ComboBoxItemWithApiTag.java
@@ -13,23 +13,26 @@
* 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.ui;
import com.google.common.base.Objects;
import org.jetbrains.annotations.NotNull;
/**
- * ComboBoxItem is a container class for an item of a {@link JComboBox} that's backed by a
- * {@link Parameter} representing an enumerated type. It has a human-readable label, an
- * ID in parameter space, and optional API restrictions.
-*/
-public class ComboBoxItem {
+ * ComboBoxItemWithApiTag wraps choices that appear in a combobox where a user should only be able to
+ * select them if they're targeting a minimum API (or newer). It is up to the parent UI form to
+ * query these combobox items and reject them if necessary.
+ * TODO: This seems backwards, throwing data on a combobox item and then using instanceof checks in
+ * various classes to cast and pull API info out later. Let's investigate how this is used and see
+ * if there's a better way.
+ */
+public class ComboBoxItemWithApiTag {
public Object id;
public String label;
public int minApi;
public int minBuildApi;
- public ComboBoxItem(@NotNull Object id, @NotNull String label, int minApi, int minBuildApi) {
+ public ComboBoxItemWithApiTag(@NotNull Object id, @NotNull String label, int minApi, int minBuildApi) {
this.id = id;
this.label = label;
this.minApi = minApi;
@@ -46,7 +49,7 @@ public class ComboBoxItem {
if (obj == null || !obj.getClass().equals(getClass())) {
return false;
}
- ComboBoxItem other = (ComboBoxItem)obj;
+ ComboBoxItemWithApiTag other = (ComboBoxItemWithApiTag)obj;
return Objects.equal(id, other.id) && Objects.equal(label, other.label);
}
diff --git a/android/src/com/android/tools/idea/wizard/DistributionChartComponent.java b/android/src/com/android/tools/idea/ui/DistributionChartComponent.java
index c0339492ecd..d7f9ddd154f 100644
--- a/android/src/com/android/tools/idea/wizard/DistributionChartComponent.java
+++ b/android/src/com/android/tools/idea/ui/DistributionChartComponent.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.ui;
import com.android.tools.idea.stats.Distribution;
import com.android.tools.idea.stats.DistributionService;
-import com.intellij.openapi.diagnostic.Logger;
import com.intellij.ui.JBColor;
import com.intellij.util.ui.GraphicsUtil;
import org.jetbrains.annotations.NotNull;
@@ -33,8 +32,6 @@ import java.util.List;
* Chart of distributions
*/
public class DistributionChartComponent extends JPanel {
- private static final Logger LOG = Logger.getInstance(DistributionChartComponent.class);
-
// Because this text overlays colored components, it must stay white/gray, and does not change for dark themes. 
private static final Color TEXT_COLOR = new Color(0xFEFEFE);
private static final Color API_LEVEL_COLOR = new Color(0, 0, 0, 77);
diff --git a/android/src/com/android/tools/idea/wizard/FileTreeCellRenderer.java b/android/src/com/android/tools/idea/ui/FileTreeCellRenderer.java
index 54a5c5620d8..7484f099371 100644
--- a/android/src/com/android/tools/idea/wizard/FileTreeCellRenderer.java
+++ b/android/src/com/android/tools/idea/ui/FileTreeCellRenderer.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.ui;
import com.intellij.icons.AllIcons;
import com.intellij.ui.ColoredTreeCellRenderer;
diff --git a/android/src/com/android/tools/idea/wizard/FileTreeModel.java b/android/src/com/android/tools/idea/ui/FileTreeModel.java
index ee3d0a0c3e6..71d11440112 100644
--- a/android/src/com/android/tools/idea/wizard/FileTreeModel.java
+++ b/android/src/com/android/tools/idea/ui/FileTreeModel.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.ui;
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
diff --git a/android/src/com/android/tools/idea/wizard/ImageComponent.java b/android/src/com/android/tools/idea/ui/ImageComponent.java
index 1cfde7baa91..c5bb901d5cc 100644
--- a/android/src/com/android/tools/idea/wizard/ImageComponent.java
+++ b/android/src/com/android/tools/idea/ui/ImageComponent.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.ui;
import com.intellij.ui.components.panels.OpaquePanel;
import com.intellij.util.ui.UIUtil;
diff --git a/android/src/com/android/tools/idea/wizard/LabelWithEditLink.java b/android/src/com/android/tools/idea/ui/LabelWithEditLink.java
index 41190dcdc61..38c30630dc7 100644
--- a/android/src/com/android/tools/idea/wizard/LabelWithEditLink.java
+++ b/android/src/com/android/tools/idea/ui/LabelWithEditLink.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.ui;
import com.intellij.ui.HyperlinkLabel;
import com.intellij.ui.JBColor;
diff --git a/android/src/com/android/tools/idea/wizard/TextFieldWithLaunchBrowserButton.java b/android/src/com/android/tools/idea/ui/TextFieldWithLaunchBrowserButton.java
index b32d9d47431..cd3fc097268 100644
--- a/android/src/com/android/tools/idea/wizard/TextFieldWithLaunchBrowserButton.java
+++ b/android/src/com/android/tools/idea/ui/TextFieldWithLaunchBrowserButton.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.ui;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.ui.Messages;
diff --git a/android/src/com/android/tools/idea/welcome/config/InstallerData.java b/android/src/com/android/tools/idea/welcome/config/InstallerData.java
index b06006e9cf5..60d1015faa4 100644
--- a/android/src/com/android/tools/idea/welcome/config/InstallerData.java
+++ b/android/src/com/android/tools/idea/welcome/config/InstallerData.java
@@ -17,9 +17,8 @@ package com.android.tools.idea.welcome.config;
import com.android.annotations.VisibleForTesting;
import com.android.prefs.AndroidLocation;
-import com.android.tools.idea.welcome.wizard.JdkLocationStep;
import com.android.tools.idea.welcome.wizard.SdkComponentsStep;
-import com.android.tools.idea.wizard.WizardUtils;
+import com.android.tools.idea.npw.WizardUtils;
import com.google.common.base.Charsets;
import com.google.common.base.Objects;
import com.google.common.collect.Maps;
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/InstallComponentsOperation.java b/android/src/com/android/tools/idea/welcome/install/InstallComponentsOperation.java
index 7306d213e5f..85904af8b62 100644
--- a/android/src/com/android/tools/idea/welcome/install/InstallComponentsOperation.java
+++ b/android/src/com/android/tools/idea/welcome/install/InstallComponentsOperation.java
@@ -17,7 +17,7 @@ package com.android.tools.idea.welcome.install;
import com.android.sdklib.SdkManager;
import com.android.tools.idea.sdk.LogWrapper;
-import com.android.tools.idea.wizard.ImportUIUtil;
+import com.android.tools.idea.npw.ImportUIUtil;
import com.android.utils.ILogger;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.openapi.diagnostic.Logger;
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/FirstRunWelcomeStep.java b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWelcomeStep.java
index 99aee1a3003..c81c500e300 100644
--- a/android/src/com/android/tools/idea/welcome/wizard/FirstRunWelcomeStep.java
+++ b/android/src/com/android/tools/idea/welcome/wizard/FirstRunWelcomeStep.java
@@ -15,7 +15,7 @@
*/
package com.android.tools.idea.welcome.wizard;
-import com.android.tools.idea.wizard.FormFactorUtils;
+import com.android.tools.idea.npw.FormFactorUtils;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
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..d3337395981 100755
--- a/android/src/com/android/tools/idea/welcome/wizard/SdkComponentsStep.java
+++ b/android/src/com/android/tools/idea/welcome/wizard/SdkComponentsStep.java
@@ -19,9 +19,9 @@ 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.android.tools.idea.npw.WizardUtils;
import com.google.common.collect.*;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.ui.Splitter;
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/ChooseFromFileListDialog.java b/android/src/com/android/tools/idea/wizard/ChooseFromFileListDialog.java
deleted file mode 100644
index fa6fae9caa9..00000000000
--- a/android/src/com/android/tools/idea/wizard/ChooseFromFileListDialog.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.tools.idea.wizard;
-
-import com.google.common.collect.Lists;
-import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.project.Project;
-import com.intellij.openapi.ui.DialogWrapper;
-import com.intellij.ui.components.JBList;
-import com.intellij.ui.speedSearch.ListWithFilter;
-import com.intellij.util.ArrayUtil;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.awt.*;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class ChooseFromFileListDialog extends DialogWrapper {
- private final List<File> myFiles;
- private FileListItem myChosenFile;
-
- public ChooseFromFileListDialog(@Nullable Project project, @NotNull List<File> files) {
- super(project);
- myFiles = files;
- Window window = getWindow();
- // Allow creation in headless mode for tests
- if (window != null) {
- getWindow().setMinimumSize(new Dimension(600, 480));
- } else {
- assert ApplicationManager.getApplication().isUnitTestMode();
- }
- init();
- }
-
- @Nullable
- public File getChosenFile() {
- return myChosenFile.myFile;
- }
-
- @Override
- public boolean isOKActionEnabled() {
- return myChosenFile != null;
- }
-
- @Nullable
- @Override
- protected JComponent createCenterPanel() {
- final JBList list = new JBList();
- list.setModel(getListModel(myFiles));
- list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- list.addListSelectionListener(new ListSelectionListener() {
- @Override
- public void valueChanged(ListSelectionEvent e) {
- myChosenFile = (FileListItem)list.getSelectedValue();
- }
- });
- return ListWithFilter.wrap(list);
- }
-
- private static ListModel getListModel(List<File> files) {
- ArrayList<FileListItem> items = Lists.newArrayListWithExpectedSize(files.size());
- for (File f : files) {
- items.add(new FileListItem(f));
- }
- Collections.sort(items);
- return JBList.createDefaultListModel(ArrayUtil.toObjectArray(items));
- }
-
- private static class FileListItem implements Comparable<FileListItem> {
- private final File myFile;
- public FileListItem(@NotNull File file) {
- myFile = file;
- }
-
- @Override
- public String toString() {
- return myFile.getName();
- }
-
- @Override
- public int compareTo(@NotNull FileListItem o) {
- return toString().compareTo(o.toString());
- }
- }
-}
diff --git a/android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.form b/android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.form
deleted file mode 100644
index 532b0135dd4..00000000000
--- a/android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.form
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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.ChooseGithubRepositoryStep">
- <grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="5" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
- <margin top="0" left="0" bottom="0" right="0"/>
- <constraints>
- <xy x="20" y="20" width="500" height="400"/>
- </constraints>
- <properties/>
- <border type="none"/>
- <children>
- <component id="b2730" class="com.intellij.ui.components.JBLabel" binding="myDescription">
- <constraints>
- <grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false">
- <minimum-size width="-1" height="200"/>
- <preferred-size width="-1" height="200"/>
- </grid>
- </constraints>
- <properties>
- <text value="Label"/>
- </properties>
- </component>
- <component id="7bd7c" class="javax.swing.JTextField" binding="myUrlField">
- <constraints>
- <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
- <preferred-size width="150" height="-1"/>
- </grid>
- </constraints>
- <properties/>
- </component>
- <vspacer id="818df">
- <constraints>
- <grid row="3" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
- </constraints>
- </vspacer>
- <component id="68110" class="com.intellij.ui.components.JBLabel">
- <constraints>
- <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
- </constraints>
- <properties>
- <text value="Github URL:"/>
- </properties>
- </component>
- <vspacer id="92795">
- <constraints>
- <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
- </constraints>
- </vspacer>
- </children>
- </grid>
-</form>
diff --git a/android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.java b/android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.java
deleted file mode 100644
index 3619c37f952..00000000000
--- a/android/src/com/android/tools/idea/wizard/ChooseGithubRepositoryStep.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.tools.idea.wizard;
-
-import com.intellij.openapi.module.Module;
-import com.intellij.openapi.project.Project;
-import com.intellij.ui.components.JBLabel;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import javax.swing.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-/**
- * A step that lets you select a Github repository to clone.
- * TODO: Save previously used URLs
- * TODO: Allow selection of branches
- */
-public class ChooseGithubRepositoryStep extends TemplateWizardStep {
- private JTextField myUrlField;
- private JBLabel myDescription;
- private JPanel myPanel;
- public static final String GITHUB_TEMPLATE_KEY = "githubUrl";
- private String myBranch = null;
-
- public ChooseGithubRepositoryStep(@NotNull TemplateWizardState state,
- @Nullable Project project,
- @Nullable Module module,
- UpdateListener updateListener) {
- super(state, project, module, null, updateListener);
- register(GITHUB_TEMPLATE_KEY, myUrlField);
- }
-
- @Override
- public boolean validate() {
- if (!super.validate()) {
- return false;
- }
-
- String urlText = myUrlField.getText();
- if (urlText.isEmpty()) {
- setErrorHtml("URL field may not be empty");
- return false;
- }
-
- URL url;
- try {
- url = new URL(urlText);
- }
- catch (MalformedURLException e) {
- setErrorHtml("Malformed URL");
- return false;
- }
- if (!url.getProtocol().equalsIgnoreCase("https")) {
- setErrorHtml("GitHub URLs must be HTTPS");
- return false;
- }
-
- if (!url.getHost().equalsIgnoreCase("github.com")) {
- setErrorHtml("That is not a GitHub URL");
- return false;
- }
- return true;
- }
-
- @Override
- public JComponent getComponent() {
- return myPanel;
- }
-
- @Override
- public JComponent getPreferredFocusedComponent() {
- return myUrlField;
- }
-
- @NotNull
- @Override
- protected JLabel getDescription() {
- return myDescription;
- }
-
- @NotNull
- @Override
- protected JLabel getError() {
- return myDescription;
- }
-
- @NotNull
- public String getUrl() {
- return myUrlField.getText();
- }
-
- @Nullable
- public String getBranch() {
- // TODO: Implement this properly.
- return myBranch;
- }
-}
diff --git a/android/src/com/android/tools/idea/wizard/WizardConstants.java b/android/src/com/android/tools/idea/wizard/WizardConstants.java
index 04c62de8804..b3d01a0ad27 100644
--- a/android/src/com/android/tools/idea/wizard/WizardConstants.java
+++ b/android/src/com/android/tools/idea/wizard/WizardConstants.java
@@ -16,7 +16,9 @@
package com.android.tools.idea.wizard;
import com.android.sdklib.repository.descriptors.IPkgDesc;
+import com.android.tools.idea.npw.ModuleTemplate;
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 +28,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/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 83f3c9c7e96..b2e970297a4 100644
--- a/android/src/com/android/tools/idea/wizard/DynamicWizard.java
+++ b/android/src/com/android/tools/idea/wizard/dynamic/DynamicWizard.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.template.TemplateWizard;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.intellij.ide.wizard.Step;
@@ -40,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
@@ -61,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;
@@ -185,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;
}
@@ -227,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..9b87441bd9d 100644
--- a/android/src/com/android/tools/idea/wizard/ScopedDataBinder.java
+++ b/android/src/com/android/tools/idea/wizard/dynamic/ScopedDataBinder.java
@@ -13,9 +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.annotations.VisibleForTesting;
+import com.android.tools.idea.ui.ComboBoxItemWithApiTag;
import com.android.tools.idea.ui.TextAccessors;
import com.google.common.base.Objects;
import com.google.common.collect.*;
@@ -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;
}
@@ -266,8 +269,8 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F
}
else if (component instanceof JComboBox) {
Object selectedObject = ((JComboBox)component).getSelectedItem();
- if (selectedObject instanceof ComboBoxItem) {
- ComboBoxItem selectedItem = (ComboBoxItem)selectedObject;
+ if (selectedObject instanceof ComboBoxItemWithApiTag) {
+ ComboBoxItemWithApiTag selectedItem = (ComboBoxItemWithApiTag)selectedObject;
newValue = selectedItem.id;
} else {
newValue = selectedObject;
@@ -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);
@@ -508,8 +511,8 @@ public class ScopedDataBinder implements ScopedStateStore.ScopedStoreListener, F
int index = -1;
for (int i = 0; i < comboBox.getItemCount(); i++) {
Object item = comboBox.getItemAt(i);
- if (item instanceof ComboBoxItem) {
- item = ((ComboBoxItem)item).id;
+ if (item instanceof ComboBoxItemWithApiTag) {
+ item = ((ComboBoxItemWithApiTag)item).id;
}
if (Objects.equal(item, value)) {
index = i;
@@ -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..9af55b15aaa 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.ui.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/TemplateWizard.java b/android/src/com/android/tools/idea/wizard/template/TemplateWizard.java
index 8adb3fa3300..c4fdb16f905 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateWizard.java
+++ b/android/src/com/android/tools/idea/wizard/template/TemplateWizard.java
@@ -13,9 +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.template;
import com.android.sdklib.IAndroidTarget;
+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/TemplateWizardState.java b/android/src/com/android/tools/idea/wizard/template/TemplateWizardState.java
index 4a57915b97e..f4e07bfea1d 100644
--- a/android/src/com/android/tools/idea/wizard/TemplateWizardState.java
+++ b/android/src/com/android/tools/idea/wizard/template/TemplateWizardState.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.tools.idea.wizard;
+package com.android.tools.idea.wizard.template;
import com.android.annotations.VisibleForTesting;
import com.android.builder.model.SourceProvider;
@@ -22,6 +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.npw.FormFactorUtils;
+import com.android.tools.idea.npw.NewModuleWizardState;
+import com.android.tools.idea.npw.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;
@@ -78,25 +83,30 @@ public class TemplateWizardState implements Function<String, Object> {
public static final String LAYOUT_NAME_PREFIX = "activity_";
/** Template handler responsible for instantiating templates and reading resources */
- protected Template myTemplate;
+ // TODO: Temporary change. Set to private in a followup CL!
+ public Template myTemplate;
/** Targeted source set */
protected SourceProvider mySourceProvider;
/** Configured parameters, by id */
- protected final Map<String, Object> myParameters = new HashMap<String, Object>();
+ // TODO: Temporary change. Set to private in a followup CL!
+ public final Map<String, Object> myParameters = new HashMap<String, Object>();
/** Ids for parameters which should be hidden (because the client wizard already
* has information for these parameters) */
- protected final Set<String> myHidden = new HashSet<String>();
+ // TODO: Temporary change. Set to private in a followup CL!
+ public final Set<String> myHidden = new HashSet<String>();
/**
* Ids for parameters whose values should not change.
*/
- protected final Set<String> myFinal = new HashSet<String>();
+ // TODO: Temporary change. Set to private in a followup CL!
+ public final Set<String> myFinal = new HashSet<String>();
/** Ids for parameters which have been modified directly by the user. */
- protected final Set<String> myModified = new HashSet<String>();
+ // TODO: Temporary change. Set to private in a followup CL!
+ public final Set<String> myModified = new HashSet<String>();
public TemplateWizardState() {
put(TemplateMetadata.ATTR_IS_NEW_PROJECT, false);
diff --git a/android/src/com/android/tools/idea/wizard/TemplateWizardStep.java b/android/src/com/android/tools/idea/wizard/template/TemplateWizardStep.java
index a50b763e823..7b67ad40d53 100755
--- a/android/src/com/android/tools/idea/wizard/TemplateWizardStep.java
+++ b/android/src/com/android/tools/idea/wizard/template/TemplateWizardStep.java
@@ -13,11 +13,15 @@
* 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.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.ui.ComboBoxItemWithApiTag;
+import com.android.tools.idea.wizard.dynamic.AndroidStudioWizardStep;
+import com.android.tools.idea.wizard.dynamic.DynamicWizardStepWithHeaderAndDescription;
+import com.android.tools.idea.templates.StringEvaluator;
import com.android.utils.Pair;
import com.android.utils.XmlUtils;
import com.google.common.collect.BiMap;
@@ -73,7 +77,7 @@ public abstract class TemplateWizardStep extends ModuleWizardStep
protected final BiMap<String, JComponent> myParamFields = HashBiMap.create();
protected final Map<String, JLabel> myParamFieldLabels = Maps.newHashMap();
protected final Map<JRadioButton, Pair<String, Object>> myRadioButtonValues = Maps.newHashMap();
- protected final Map<Parameter, ComboBoxItem> myComboBoxValues = Maps.newHashMap();
+ protected final Map<Parameter, ComboBoxItemWithApiTag> myComboBoxValues = Maps.newHashMap();
protected final Project myProject;
protected final Module myModule;
private final Icon mySidePanelIcon;
@@ -340,7 +344,7 @@ public abstract class TemplateWizardStep extends ModuleWizardStep
// Check to see that the selection's constraints are met if this is a combo box
if (myComboBoxValues.containsKey(param)) {
- ComboBoxItem selectedItem = myComboBoxValues.get(param);
+ ComboBoxItemWithApiTag selectedItem = myComboBoxValues.get(param);
if (selectedItem == null) {
return false;
@@ -391,7 +395,7 @@ public abstract class TemplateWizardStep extends ModuleWizardStep
}
else if (component instanceof JComboBox) {
for (int i = 0; i < ((JComboBox)component).getItemCount(); i++) {
- if (((ComboBoxItem)((JComboBox)component).getItemAt(i)).id.equals(value)) {
+ if (((ComboBoxItemWithApiTag)((JComboBox)component).getItemAt(i)).id.equals(value)) {
((JComboBox)component).setSelectedIndex(i);
break;
}
@@ -424,7 +428,7 @@ public abstract class TemplateWizardStep extends ModuleWizardStep
newValue = ((JCheckBox)component).isSelected();
}
else if (component instanceof JComboBox) {
- ComboBoxItem selectedItem = (ComboBoxItem)((JComboBox)component).getSelectedItem();
+ ComboBoxItemWithApiTag selectedItem = (ComboBoxItemWithApiTag)((JComboBox)component).getSelectedItem();
myComboBoxValues.put(param, selectedItem);
if (selectedItem != null) {
@@ -464,7 +468,7 @@ public abstract class TemplateWizardStep extends ModuleWizardStep
try { minSdk = Integer.parseInt(option.getAttribute(TemplateMetadata.ATTR_MIN_API)); } catch (Exception e) { }
int minBuildApi = 1;
try { minBuildApi = Integer.parseInt(option.getAttribute(TemplateMetadata.ATTR_MIN_BUILD_API)); } catch (Exception e) { }
- comboBox.addItem(new ComboBoxItem(optionId, optionLabel, minSdk, minBuildApi));
+ comboBox.addItem(new ComboBoxItemWithApiTag(optionId, optionLabel, minSdk, minBuildApi));
String isDefault = option.getAttribute(ATTR_DEFAULT);
if (isDefault != null && !isDefault.isEmpty() && Boolean.valueOf(isDefault)) {
comboBox.setSelectedIndex(comboBox.getItemCount() - 1);
@@ -478,18 +482,18 @@ public abstract class TemplateWizardStep extends ModuleWizardStep
*/
protected static <E extends Enum<E>> void populateComboBox(@NotNull JComboBox comboBox, @NotNull Class<E> enumClass) {
for (Enum<E> e : enumClass.getEnumConstants()) {
- comboBox.addItem(new ComboBoxItem(e.name(), e.toString(), 1, 1));
+ comboBox.addItem(new ComboBoxItemWithApiTag(e.name(), e.toString(), 1, 1));
}
}
/**
* Takes a {@link JComboBox} instance and an array and
* populates the combo box with the values in the array.
- * Similar to the {@link DefaultComboBoxModel}, but uses our ComboBoxItem.
+ * Similar to the {@link DefaultComboBoxModel}, but uses our ComboBoxItemWithApiTag.
*/
protected static void populateComboBox(@NotNull JComboBox comboBox, @NotNull Object[] array) {
for (int i = 0; i < array.length; ++i) {
- comboBox.addItem(new ComboBoxItem(i, array[i].toString(), 1, 1));
+ comboBox.addItem(new ComboBoxItemWithApiTag(i, array[i].toString(), 1, 1));
}
}
@@ -527,10 +531,10 @@ public abstract class TemplateWizardStep extends ModuleWizardStep
if (value != null) {
for (int i = 0; i < comboBox.getItemCount(); i++) {
Object item = comboBox.getItemAt(i);
- if (!(item instanceof ComboBoxItem)) {
+ if (!(item instanceof ComboBoxItemWithApiTag)) {
continue;
}
- if (((ComboBoxItem)item).id.equals(value)) {
+ if (((ComboBoxItemWithApiTag)item).id.equals(value)) {
comboBox.setSelectedIndex(i);
break;
}
diff --git a/android/src/com/android/tools/idea/wizard/template/package-info.java b/android/src/com/android/tools/idea/wizard/template/package-info.java
new file mode 100644
index 00000000000..713e9299e43
--- /dev/null
+++ b/android/src/com/android/tools/idea/wizard/template/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * 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 wizard UI forms that are driven by values loaded from FreeMarker templates.
+ * <p/>
+ * See {@link com.android.tools.idea.wizard.template.TemplateWizard} for a good starting
+ * point, and <a href="http://freemarker.org/">visit freemarker.org</a> for more details about
+ * FreeMarker.
+ */
+package com.android.tools.idea.wizard.template; \ No newline at end of file
diff --git a/android/src/org/jetbrains/android/actions/CreateResourceActionBase.java b/android/src/org/jetbrains/android/actions/CreateResourceActionBase.java
index 0f014f15c43..c61c506fb48 100644
--- a/android/src/org/jetbrains/android/actions/CreateResourceActionBase.java
+++ b/android/src/org/jetbrains/android/actions/CreateResourceActionBase.java
@@ -19,7 +19,7 @@ package org.jetbrains.android.actions;
import com.android.builder.model.SourceProvider;
import com.android.tools.idea.AndroidPsiUtils;
import com.android.tools.idea.navigator.AndroidProjectViewPane;
-import com.android.tools.idea.wizard.ComboBoxItem;
+import com.android.tools.idea.ui.ComboBoxItemWithApiTag;
import com.intellij.ide.IdeView;
import com.intellij.ide.actions.ElementCreator;
import com.intellij.ide.projectView.ProjectView;
@@ -71,8 +71,8 @@ public abstract class CreateResourceActionBase extends AnAction {
public static SourceProvider getSourceProvider(@Nullable JComboBox combo) {
if (combo != null && combo.isVisible()) {
Object selectedItem = combo.getSelectedItem();
- if (selectedItem instanceof ComboBoxItem) {
- return (SourceProvider)((ComboBoxItem)selectedItem).id;
+ if (selectedItem instanceof ComboBoxItemWithApiTag) {
+ return (SourceProvider)((ComboBoxItemWithApiTag)selectedItem).id;
}
}
@@ -132,7 +132,7 @@ public abstract class CreateResourceActionBase extends AnAction {
DefaultComboBoxModel model = new DefaultComboBoxModel();
for (SourceProvider sourceProvider : providers) {
//noinspection unchecked
- model.addElement(new ComboBoxItem(sourceProvider, sourceProvider.getName(), 0, 0));
+ model.addElement(new ComboBoxItemWithApiTag(sourceProvider, sourceProvider.getName(), 0, 0));
}
combo.setModel(model);
diff --git a/android/testSrc/com/android/tools/idea/wizard/AssetStudioAssetGeneratorTest.java b/android/testSrc/com/android/tools/idea/npw/AssetStudioAssetGeneratorTest.java
index 6d97ee30a10..b5477d65ba7 100644
--- a/android/testSrc/com/android/tools/idea/wizard/AssetStudioAssetGeneratorTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/AssetStudioAssetGeneratorTest.java
@@ -13,11 +13,15 @@
* 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.npw;
import com.android.assetstudiolib.*;
+import com.android.tools.idea.npw.AssetStudioAssetGenerator;
+import com.android.tools.idea.npw.NewProjectWizardState;
+import com.android.tools.idea.npw.TemplateWizardContextAdapter;
import com.android.tools.idea.templates.Template;
import com.android.tools.idea.templates.TemplateManager;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.android.AndroidTestCase;
import org.jetbrains.annotations.Nullable;
@@ -28,7 +32,7 @@ import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Map;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.*;
+import static com.android.tools.idea.npw.AssetStudioAssetGenerator.*;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.*;
diff --git a/android/testSrc/com/android/tools/idea/wizard/ChooseTemplateStepTest.java b/android/testSrc/com/android/tools/idea/npw/ChooseTemplateStepTest.java
index 37e711092ce..143677fc6ec 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ChooseTemplateStepTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/ChooseTemplateStepTest.java
@@ -13,10 +13,12 @@
* 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.npw;
+import com.android.tools.idea.npw.ChooseTemplateStep;
import com.android.tools.idea.templates.Template;
import com.android.tools.idea.templates.TemplateManager;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.google.common.collect.ImmutableSet;
import org.jetbrains.android.AndroidTestCase;
import org.junit.Test;
diff --git a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamicTest.java b/android/testSrc/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamicTest.java
index 352b0ae7b3f..71cb7196b73 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepDynamicTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/ConfigureAndroidModuleStepDynamicTest.java
@@ -13,16 +13,20 @@
* 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.npw;
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;
import com.intellij.openapi.module.ModuleTypeId;
+import junit.framework.Assert;
import java.io.File;
+import static junit.framework.Assert.*;
+
public class ConfigureAndroidModuleStepDynamicTest extends AndroidGradleTestCase {
private ConfigureAndroidModuleStepDynamic myStep;
diff --git a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepTest.java b/android/testSrc/com/android/tools/idea/npw/ConfigureAndroidModuleStepTest.java
index ff4285fa614..b075ee29724 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidModuleStepTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/ConfigureAndroidModuleStepTest.java
@@ -13,11 +13,14 @@
* 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.npw;
import com.android.sdklib.IAndroidTarget;
+import com.android.tools.idea.npw.ConfigureAndroidModuleStep;
+import com.android.tools.idea.npw.NewModuleWizardState;
import com.android.tools.idea.templates.AndroidGradleTestCase;
import com.android.tools.idea.templates.TemplateUtils;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.google.common.collect.Sets;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.module.Module;
@@ -32,8 +35,8 @@ import java.util.Locale;
import java.util.Set;
import static com.android.tools.idea.templates.TemplateMetadata.*;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_PROJECT_LOCATION;
-import static com.android.tools.idea.wizard.FormFactorUtils.ATTR_MODULE_NAME;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_PROJECT_LOCATION;
+import static com.android.tools.idea.npw.FormFactorUtils.ATTR_MODULE_NAME;
/**
* Test cases for the Android Module Configuration wizard step.
diff --git a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidProjectStepTest.java b/android/testSrc/com/android/tools/idea/npw/ConfigureAndroidProjectStepTest.java
index 0bb08ac07fd..1433a552123 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ConfigureAndroidProjectStepTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/ConfigureAndroidProjectStepTest.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.npw;
+import com.android.tools.idea.npw.ConfigureAndroidProjectStep;
+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/ImportSourceLocationStepTest.java b/android/testSrc/com/android/tools/idea/npw/ImportSourceLocationStepTest.java
index 17ce11350eb..8f5abc7f64a 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ImportSourceLocationStepTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/ImportSourceLocationStepTest.java
@@ -13,9 +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.npw;
import com.android.tools.idea.gradle.project.GradleModuleImportTest;
+import com.android.tools.idea.npw.ImportSourceLocationStep;
+import com.android.tools.idea.npw.NewModuleWizardState;
import com.google.common.io.Files;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.application.ApplicationManager;
diff --git a/android/testSrc/com/android/tools/idea/wizard/ModulesListModelTest.java b/android/testSrc/com/android/tools/idea/npw/ModulesListModelTest.java
index ab7b4f0767b..0a1cdd8f47d 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ModulesListModelTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/ModulesListModelTest.java
@@ -13,9 +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.npw;
import com.android.tools.idea.gradle.project.ModuleToImport;
+import com.android.tools.idea.npw.ModuleListModel;
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableSet;
@@ -30,7 +31,7 @@ import org.jetbrains.android.AndroidTestCase;
import java.io.IOException;
import java.util.Collection;
-import static com.android.tools.idea.wizard.ModuleListModel.ModuleValidationState.*;
+import static com.android.tools.idea.npw.ModuleListModel.ModuleValidationState.*;
public final class ModulesListModelTest extends AndroidTestCase {
public static final String NEW_NAME = "a new name";
diff --git a/android/testSrc/com/android/tools/idea/wizard/NewFormFactorModulePathTest.java b/android/testSrc/com/android/tools/idea/npw/NewFormFactorModulePathTest.java
index 64a7a51b113..dcc739c0746 100644
--- a/android/testSrc/com/android/tools/idea/wizard/NewFormFactorModulePathTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/NewFormFactorModulePathTest.java
@@ -13,16 +13,19 @@
* 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.npw;
+import com.android.tools.idea.npw.FormFactorUtils;
+import com.android.tools.idea.npw.NewFormFactorModulePath;
+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.npw.FormFactorUtils.FormFactor.MOBILE;
+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 +37,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/NewModuleWizardStateTest.java b/android/testSrc/com/android/tools/idea/npw/NewModuleWizardStateTest.java
index e36e4ce663d..6e20eb33cb4 100644
--- a/android/testSrc/com/android/tools/idea/wizard/NewModuleWizardStateTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/NewModuleWizardStateTest.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.npw;
+import com.android.tools.idea.npw.NewModuleWizardState;
+import com.android.tools.idea.npw.TemplateWizardModuleBuilder;
import com.android.tools.idea.templates.*;
import com.google.common.collect.Maps;
@@ -25,7 +27,7 @@ import java.util.Map;
import static com.android.tools.idea.templates.RepositoryUrlManager.*;
import static com.android.tools.idea.templates.TemplateMetadata.*;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_CREATE_ACTIVITY;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_CREATE_ACTIVITY;
/**
*
diff --git a/android/testSrc/com/android/tools/idea/wizard/NewModuleWizardTest.java b/android/testSrc/com/android/tools/idea/npw/NewModuleWizardTest.java
index 1f72d89a9e3..88fa12e5a2d 100644
--- a/android/testSrc/com/android/tools/idea/wizard/NewModuleWizardTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/NewModuleWizardTest.java
@@ -13,12 +13,14 @@
* 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.npw;
+import com.android.tools.idea.npw.*;
import com.android.tools.idea.sdk.IdeSdks;
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.template.TemplateWizardStep;
import com.google.common.collect.Lists;
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
import com.intellij.openapi.extensions.Extensions;
@@ -116,39 +118,33 @@ public class NewModuleWizardTest extends AndroidTestCase {
try {
// On some systems JDK and Android SDK location might not be known - then the wizard will proceed to a page to set them up
- final int firstStepNewModulePath;
final Class<?> firstStepNewModuleClass;
if (IdeSdks.getJdk() != null && IdeSdks.getAndroidSdkPath() != null) {
// Should proceed to Android module creation first step
- firstStepNewModulePath = 9;
firstStepNewModuleClass = ConfigureAndroidModuleStep.class;
}
else {
// Needs to setup JDK/Android SDK paths
- firstStepNewModulePath = 7;
firstStepNewModuleClass = ChooseAndroidAndJavaSdkStep.class;
}
assertInstanceOf(wizard.getCurrentStepObject(), ChooseTemplateStep.class);
- assertEquals(firstStepNewModulePath, wizard.getNextStep(0));
// Import path
- assertFollowingTheRightPath(wizard, NewModuleWizardState.MODULE_IMPORT_NAME, 1, ImportSourceLocationStep.class);
+ assertFollowingTheRightPath(wizard, NewModuleWizardState.MODULE_IMPORT_NAME, ImportSourceLocationStep.class);
// New module path
- assertFollowingTheRightPath(wizard, TemplateWizardModuleBuilder.APP_TEMPLATE_NAME, firstStepNewModulePath, firstStepNewModuleClass);
+ assertFollowingTheRightPath(wizard, TemplateWizardModuleBuilder.APP_TEMPLATE_NAME, firstStepNewModuleClass);
// Import archive
- assertFollowingTheRightPath(wizard, NewModuleWizardState.ARCHIVE_IMPORT_NAME, 13, WrapArchiveOptionsStep.class);
+ assertFollowingTheRightPath(wizard, NewModuleWizardState.ARCHIVE_IMPORT_NAME, WrapArchiveOptionsStep.class);
}
finally {
Disposer.dispose(wizard.getDisposable());
}
}
- private static void assertFollowingTheRightPath(NewModuleWizard wizard, String templateName, int stepIndex, Class<?> stepClass) {
+ private static void assertFollowingTheRightPath(NewModuleWizard wizard, String templateName, Class<?> stepClass) {
wizard.myModuleBuilder.templateChanged(templateName);
- assertEquals(stepIndex, wizard.getNextStep(0));
wizard.doNextAction();
assertInstanceOf(wizard.getCurrentStepObject(), stepClass);
- assertEquals(0, wizard.getPreviousStep(stepIndex));
wizard.doPreviousAction();
assertInstanceOf(wizard.getCurrentStepObject(), ChooseTemplateStep.class);
}
diff --git a/android/testSrc/com/android/tools/idea/wizard/NewProjectWizardTest.java b/android/testSrc/com/android/tools/idea/npw/NewProjectWizardTest.java
index e6189c58285..b75a0642c98 100644
--- a/android/testSrc/com/android/tools/idea/wizard/NewProjectWizardTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/NewProjectWizardTest.java
@@ -13,12 +13,18 @@
* 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.npw;
import com.android.SdkConstants;
+import com.android.tools.idea.npw.AssetStudioAssetGenerator;
+import com.android.tools.idea.npw.FormFactorUtils;
+import com.android.tools.idea.npw.NewProjectWizard;
+import com.android.tools.idea.npw.NewProjectWizardState;
import com.android.tools.idea.templates.AndroidGradleTestCase;
import com.android.tools.idea.templates.Template;
import com.android.tools.idea.templates.TemplateUtils;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.io.FileUtil;
@@ -26,7 +32,7 @@ import com.intellij.openapi.util.io.FileUtil;
import java.io.File;
import static com.android.tools.idea.templates.TemplateMetadata.*;
-import static com.android.tools.idea.wizard.NewProjectWizardState.*;
+import static com.android.tools.idea.npw.NewProjectWizardState.*;
import static org.mockito.Mockito.*;
/**
diff --git a/android/testSrc/com/android/tools/idea/wizard/NewTemplateObjectWizardTest.java b/android/testSrc/com/android/tools/idea/npw/NewTemplateObjectWizardTest.java
index feb297ef66b..fc61f31fb64 100644
--- a/android/testSrc/com/android/tools/idea/wizard/NewTemplateObjectWizardTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/NewTemplateObjectWizardTest.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.npw;
import com.android.builder.model.SourceProvider;
import com.android.tools.idea.gradle.IdeaAndroidProject;
+import com.android.tools.idea.npw.*;
import com.android.tools.idea.templates.AndroidGradleTestCase;
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.template.TemplateWizardState;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
diff --git a/android/testSrc/com/android/tools/idea/wizard/ParameterDefaultValueComputerTest.java b/android/testSrc/com/android/tools/idea/npw/ParameterDefaultValueComputerTest.java
index bf1260b0e4e..b2fde4a8459 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ParameterDefaultValueComputerTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/ParameterDefaultValueComputerTest.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.npw;
import com.android.tools.idea.templates.Parameter;
import com.android.tools.idea.templates.TemplateMetadata;
diff --git a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2DynamcTypeTest.java b/android/testSrc/com/android/tools/idea/npw/TemplateParameterStep2DynamcTypeTest.java
index 0c44e124f58..e409317c854 100644
--- a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2DynamcTypeTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/TemplateParameterStep2DynamcTypeTest.java
@@ -13,10 +13,12 @@
* 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.npw;
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;
@@ -36,7 +38,7 @@ import java.io.File;
import java.io.IOException;
import java.io.StringReader;
-import static com.android.tools.idea.wizard.ParameterDefaultValueComputerTest.getParameterObject;
+import static com.android.tools.idea.npw.ParameterDefaultValueComputerTest.getParameterObject;
public final class TemplateParameterStep2DynamcTypeTest extends LightIdeaTestCase {
private static final String METADATA_XML = "<?xml version=\"1.0\"?>\n" +
diff --git a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2Test.java b/android/testSrc/com/android/tools/idea/npw/TemplateParameterStep2Test.java
index dbb71bd85a5..ed88b5f72b9 100644
--- a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStep2Test.java
+++ b/android/testSrc/com/android/tools/idea/npw/TemplateParameterStep2Test.java
@@ -13,10 +13,17 @@
* 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.npw;
import com.android.builder.model.SourceProvider;
+import com.android.tools.idea.npw.AddAndroidActivityPath;
+import com.android.tools.idea.npw.FormFactorUtils;
+import com.android.tools.idea.npw.TemplateEntry;
+import com.android.tools.idea.npw.TemplateParameterStep2;
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;
@@ -27,7 +34,7 @@ import org.w3c.dom.Document;
import java.io.File;
-import static com.android.tools.idea.wizard.ParameterDefaultValueComputerTest.getParameterObject;
+import static com.android.tools.idea.npw.ParameterDefaultValueComputerTest.getParameterObject;
public final class TemplateParameterStep2Test extends LightIdeaTestCase {
private static final String METADATA_XML = "<?xml version=\"1.0\"?>\n" +
diff --git a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStepTest.java b/android/testSrc/com/android/tools/idea/npw/TemplateParameterStepTest.java
index 9bbcab9f59f..ada3ea3d4a0 100644
--- a/android/testSrc/com/android/tools/idea/wizard/TemplateParameterStepTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/TemplateParameterStepTest.java
@@ -13,11 +13,14 @@
* 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.npw;
+import com.android.tools.idea.npw.TemplateParameterStep;
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.template.TemplateWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardStep;
import com.intellij.openapi.util.io.FileUtil;
import icons.AndroidIcons;
import org.jetbrains.android.AndroidTestCase;
diff --git a/android/testSrc/com/android/tools/idea/wizard/TemplateWizardModuleBuilderTest.java b/android/testSrc/com/android/tools/idea/npw/TemplateWizardModuleBuilderTest.java
index 0aadf56cee4..e72a15ebcce 100644
--- a/android/testSrc/com/android/tools/idea/wizard/TemplateWizardModuleBuilderTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/TemplateWizardModuleBuilderTest.java
@@ -13,8 +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.npw;
+import com.android.tools.idea.npw.AssetStudioAssetGenerator;
+import com.android.tools.idea.npw.NewProjectWizardState;
+import com.android.tools.idea.npw.TemplateWizardModuleBuilder;
import com.android.tools.idea.templates.AndroidGradleTestCase;
import com.android.tools.idea.templates.TemplateManager;
import com.android.tools.idea.templates.TemplateUtils;
@@ -27,10 +30,10 @@ import java.util.ArrayList;
import static com.android.tools.idea.templates.Template.CATEGORY_PROJECTS;
import static com.android.tools.idea.templates.TemplateMetadata.*;
-import static com.android.tools.idea.wizard.AssetStudioAssetGenerator.ATTR_ASSET_TYPE;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_CREATE_ACTIVITY;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_PROJECT_LOCATION;
-import static com.android.tools.idea.wizard.FormFactorUtils.ATTR_MODULE_NAME;
+import static com.android.tools.idea.npw.AssetStudioAssetGenerator.ATTR_ASSET_TYPE;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_CREATE_ACTIVITY;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_PROJECT_LOCATION;
+import static com.android.tools.idea.npw.FormFactorUtils.ATTR_MODULE_NAME;
/**
diff --git a/android/testSrc/com/android/tools/idea/wizard/WrapArchiveWizardPathTest.java b/android/testSrc/com/android/tools/idea/npw/WrapArchiveWizardPathTest.java
index e9c3a75d952..1b88037fc6f 100644
--- a/android/testSrc/com/android/tools/idea/wizard/WrapArchiveWizardPathTest.java
+++ b/android/testSrc/com/android/tools/idea/npw/WrapArchiveWizardPathTest.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.npw;
import com.android.SdkConstants;
import com.android.tools.idea.gradle.IdeaGradleProject;
@@ -26,6 +26,9 @@ import com.android.tools.idea.gradle.project.GradleSyncListener;
import com.android.tools.idea.gradle.stubs.gradle.GradleProjectStub;
import com.android.tools.idea.gradle.util.GradleUtil;
import com.android.tools.idea.gradle.util.Projects;
+import com.android.tools.idea.npw.CreateModuleFromArchiveAction;
+import com.android.tools.idea.npw.NewModuleWizardState;
+import com.android.tools.idea.npw.WrapArchiveWizardPath;
import com.android.tools.idea.templates.AndroidGradleTestCase;
import com.google.common.base.Joiner;
import com.google.common.collect.Iterables;
diff --git a/android/testSrc/com/android/tools/idea/templates/AndroidGradleTestCase.java b/android/testSrc/com/android/tools/idea/templates/AndroidGradleTestCase.java
index c1040413d7d..0bdb8e175df 100644
--- a/android/testSrc/com/android/tools/idea/templates/AndroidGradleTestCase.java
+++ b/android/testSrc/com/android/tools/idea/templates/AndroidGradleTestCase.java
@@ -25,8 +25,10 @@ import com.android.tools.idea.gradle.project.GradleProjectImporter;
import com.android.tools.idea.gradle.project.GradleSyncListener;
import com.android.tools.idea.gradle.util.GradleUtil;
import com.android.tools.idea.gradle.util.Projects;
+import com.android.tools.idea.npw.*;
import com.android.tools.idea.sdk.VersionCheck;
-import com.android.tools.idea.wizard.*;
+import com.android.tools.idea.wizard.template.TemplateWizard;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.android.tools.lint.checks.BuiltinIssueRegistry;
import com.android.tools.lint.client.api.LintDriver;
import com.android.tools.lint.client.api.LintRequest;
diff --git a/android/testSrc/com/android/tools/idea/templates/TemplateTest.java b/android/testSrc/com/android/tools/idea/templates/TemplateTest.java
index 2f201da9763..1efd60c2061 100755
--- a/android/testSrc/com/android/tools/idea/templates/TemplateTest.java
+++ b/android/testSrc/com/android/tools/idea/templates/TemplateTest.java
@@ -21,10 +21,9 @@ import com.android.sdklib.SdkVersionInfo;
import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.tools.idea.sdk.VersionCheck;
-import com.android.tools.idea.wizard.ConfigureAndroidModuleStep;
-import com.android.tools.idea.wizard.NewProjectWizardState;
-import com.android.tools.idea.wizard.StringEvaluator;
-import com.android.tools.idea.wizard.TemplateWizardState;
+import com.android.tools.idea.npw.ConfigureAndroidModuleStep;
+import com.android.tools.idea.npw.NewProjectWizardState;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.android.tools.lint.checks.ManifestDetector;
import com.android.tools.lint.detector.api.Severity;
import com.google.common.base.Stopwatch;
@@ -55,9 +54,9 @@ import java.util.Set;
import static com.android.SdkConstants.*;
import static com.android.tools.idea.templates.TemplateMetadata.*;
import static com.android.tools.idea.templates.TemplateMetadata.ATTR_TARGET_API;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_CREATE_ACTIVITY;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_PROJECT_LOCATION;
-import static com.android.tools.idea.wizard.FormFactorUtils.ATTR_MODULE_NAME;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_CREATE_ACTIVITY;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_PROJECT_LOCATION;
+import static com.android.tools.idea.npw.FormFactorUtils.ATTR_MODULE_NAME;
/**
* Test for template instantiation.
diff --git a/android/testSrc/com/android/tools/idea/wizard/ASGalleryTest.java b/android/testSrc/com/android/tools/idea/ui/ASGalleryTest.java
index 82978343a7c..32631dd4d0e 100644
--- a/android/testSrc/com/android/tools/idea/wizard/ASGalleryTest.java
+++ b/android/testSrc/com/android/tools/idea/ui/ASGalleryTest.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.ui;
+import com.android.tools.idea.ui.ASGallery;
import com.google.common.base.Functions;
import com.intellij.ui.components.JBList;
import junit.framework.TestCase;
diff --git a/android/testSrc/com/android/tools/idea/wizard/FileTreeModelTest.java b/android/testSrc/com/android/tools/idea/ui/FileTreeModelTest.java
index 9f3e24830de..37d217bbd14 100644
--- a/android/testSrc/com/android/tools/idea/wizard/FileTreeModelTest.java
+++ b/android/testSrc/com/android/tools/idea/ui/FileTreeModelTest.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.ui;
+import com.android.tools.idea.ui.FileTreeModel;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.containers.Stack;
import org.jetbrains.android.AndroidTestCase;
@@ -24,7 +25,7 @@ import java.io.File;
import java.io.FileFilter;
import java.util.*;
-import static com.android.tools.idea.wizard.FileTreeModel.Node;
+import static com.android.tools.idea.ui.FileTreeModel.Node;
/**
*
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/AsyncValidatorTest.java b/android/testSrc/com/android/tools/idea/wizard/AsyncValidatorTest.java
index 27db2696867..f5b40df2888 100644
--- a/android/testSrc/com/android/tools/idea/wizard/AsyncValidatorTest.java
+++ b/android/testSrc/com/android/tools/idea/wizard/AsyncValidatorTest.java
@@ -15,6 +15,7 @@
*/
package com.android.tools.idea.wizard;
+import com.android.tools.idea.npw.AsyncValidator;
import com.intellij.idea.IdeaTestApplication;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.testFramework.PlatformTestCase;
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/android/testSrc/com/android/tools/idea/wizard/TemplateWizardStateTest.java b/android/testSrc/com/android/tools/idea/wizard/template/TemplateWizardStateTest.java
index 94b00bafc9c..e1b90ae9d74 100644
--- a/android/testSrc/com/android/tools/idea/wizard/TemplateWizardStateTest.java
+++ b/android/testSrc/com/android/tools/idea/wizard/template/TemplateWizardStateTest.java
@@ -13,11 +13,12 @@
* 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.template;
import com.android.tools.idea.templates.AndroidGradleTestCase;
import com.android.tools.idea.templates.Template;
import com.android.tools.idea.templates.TemplateManager;
+import com.android.tools.idea.wizard.template.TemplateWizardState;
import com.google.common.collect.Lists;
import com.intellij.openapi.util.io.FileUtil;
@@ -25,8 +26,8 @@ import java.io.File;
import java.util.List;
import static com.android.tools.idea.templates.TemplateMetadata.*;
-import static com.android.tools.idea.wizard.NewModuleWizardState.ATTR_PROJECT_LOCATION;
-import static com.android.tools.idea.wizard.FormFactorUtils.ATTR_MODULE_NAME;
+import static com.android.tools.idea.npw.NewModuleWizardState.ATTR_PROJECT_LOCATION;
+import static com.android.tools.idea.npw.FormFactorUtils.ATTR_MODULE_NAME;
import static org.mockito.Mockito.*;
/**
diff --git a/android/testSrc/org/jetbrains/android/inspections/lint/IntellijApiDetectorTest.java b/android/testSrc/org/jetbrains/android/inspections/lint/IntellijApiDetectorTest.java
index e4939d5373b..e29f55daae9 100644
--- a/android/testSrc/org/jetbrains/android/inspections/lint/IntellijApiDetectorTest.java
+++ b/android/testSrc/org/jetbrains/android/inspections/lint/IntellijApiDetectorTest.java
@@ -15,9 +15,8 @@
*/
package org.jetbrains.android.inspections.lint;
-import com.android.tools.idea.wizard.ConfigureAndroidModuleStep;
+import com.android.tools.idea.npw.ConfigureAndroidModuleStep;
import com.intellij.codeInsight.intention.IntentionAction;
-import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.pom.java.LanguageLevel;
import org.jetbrains.android.AndroidTestCase;
@@ -25,7 +24,6 @@ import org.jetbrains.android.sdk.AndroidSdkData;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import org.junit.Ignore;
import static org.jetbrains.android.inspections.lint.AndroidLintInspectionToolProvider.AndroidLintNewApiInspection;
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;