From 58f07691db3ed812ec117cb9fac1d373042918a9 Mon Sep 17 00:00:00 2001 From: Steve Messick Date: Mon, 28 Jan 2019 11:09:14 -0800 Subject: [PATCH] Add sample apps to AS NPW --- .../project/FlutterProjectCreator.java | 1 + .../flutter/project/FlutterProjectModel.java | 12 +++++ .../flutter/project/FlutterSettingsStep.form | 48 ++++++++++++++++--- .../flutter/project/FlutterSettingsStep.java | 14 ++++++ .../flutter/module/settings/ProjectType.java | 5 +- 5 files changed, 73 insertions(+), 7 deletions(-) diff --git a/flutter-studio/src/io/flutter/project/FlutterProjectCreator.java b/flutter-studio/src/io/flutter/project/FlutterProjectCreator.java index 8e5f76746b..6529a409cc 100644 --- a/flutter-studio/src/io/flutter/project/FlutterProjectCreator.java +++ b/flutter-studio/src/io/flutter/project/FlutterProjectCreator.java @@ -210,6 +210,7 @@ private FlutterCreateAdditionalSettings makeAdditionalSettings() { .setKotlin(isNotModule() && myModel.useKotlin().get() ? true : null) .setSwift(isNotModule() && myModel.useSwift().get() ? true : null) .setOffline(myModel.isOfflineSelected().get()) + .setSampleContent(myModel.getSample()) .build(); } diff --git a/flutter-studio/src/io/flutter/project/FlutterProjectModel.java b/flutter-studio/src/io/flutter/project/FlutterProjectModel.java index dfaf0b29eb..fe24cad595 100644 --- a/flutter-studio/src/io/flutter/project/FlutterProjectModel.java +++ b/flutter-studio/src/io/flutter/project/FlutterProjectModel.java @@ -14,7 +14,9 @@ import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.project.Project; import io.flutter.module.FlutterProjectType; +import io.flutter.samples.FlutterSample; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Note that a single instance of this class is shared among all the steps in the wizard. @@ -41,6 +43,7 @@ public class FlutterProjectModel extends WizardModel { @NotNull final private BoolValueProperty mySwift = new BoolValueProperty(); @NotNull final private OptionalProperty myProject = new OptionalValueProperty<>(); @NotNull final private BoolValueProperty myIsOfflineSelected = new BoolValueProperty(); + private FlutterSample mySelectedSample; public FlutterProjectModel(@NotNull FlutterProjectType type) { myProjectType.set(new OptionalValueProperty<>(type)); @@ -62,6 +65,15 @@ public FlutterProjectModel(@NotNull FlutterProjectType type) { mySwift.addListener(sender -> setInitialSwiftSupport(mySwift.get())); } + public void setSample(@Nullable FlutterSample sample) { + mySelectedSample = sample; + } + + @Nullable + public FlutterSample getSample() { + return mySelectedSample; + } + @NotNull public OptionalValueProperty projectType() { return myProjectType; diff --git a/flutter-studio/src/io/flutter/project/FlutterSettingsStep.form b/flutter-studio/src/io/flutter/project/FlutterSettingsStep.form index d2222487e0..82284a0765 100644 --- a/flutter-studio/src/io/flutter/project/FlutterSettingsStep.form +++ b/flutter-studio/src/io/flutter/project/FlutterSettingsStep.form @@ -1,9 +1,9 @@
- + - + @@ -20,12 +20,12 @@ - + - + @@ -72,7 +72,7 @@ - + @@ -81,7 +81,7 @@ - + @@ -112,6 +112,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flutter-studio/src/io/flutter/project/FlutterSettingsStep.java b/flutter-studio/src/io/flutter/project/FlutterSettingsStep.java index 35faa2ee92..19b0ed371a 100644 --- a/flutter-studio/src/io/flutter/project/FlutterSettingsStep.java +++ b/flutter-studio/src/io/flutter/project/FlutterSettingsStep.java @@ -22,6 +22,8 @@ import com.android.tools.idea.ui.wizard.WizardUtils; import com.android.tools.idea.wizard.model.SkippableWizardStep; import io.flutter.FlutterBundle; +import io.flutter.module.FlutterProjectType; +import io.flutter.module.settings.ProjectType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -43,6 +45,8 @@ public class FlutterSettingsStep extends SkippableWizardStep { final boolean appType = getType() == FlutterProjectType.APP; if (!appType) { - // Make sure sample generattion is de-selected in non-app contexts. + // Make sure sample generation is de-selected in non-app contexts. generateSampleContentCheckBox.setSelected(false); } generateSampleContentCheckBox.setEnabled(appType); @@ -154,6 +154,9 @@ public FlutterSample getSample() { return generateSampleContentCheckBox.isVisible() && generateSampleContentCheckBox.isSelected() ? (FlutterSample)snippetSelectorCombo.getSelectedItem() : null; } + public ComboBox getProjectTypeCombo() { + return projectTypeCombo; + } public void addListener(ItemListener listener) { projectTypeCombo.addItemListener(listener);