From fc0ef821c6adadf7405cf6976403092a7f9cfec7 Mon Sep 17 00:00:00 2001 From: Brian McNamara Date: Thu, 31 Aug 2023 11:37:30 -0700 Subject: [PATCH] Add project view path to the options and move to bottom --- .../wizard2/BazelWizardOptionProvider.java | 12 +++++----- .../wizard2/UseKnownProjectViewOption.java | 24 +++++++++++++++---- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/base/src/com/google/idea/blaze/base/wizard2/BazelWizardOptionProvider.java b/base/src/com/google/idea/blaze/base/wizard2/BazelWizardOptionProvider.java index 034f8ba402e..d4607a4beb7 100644 --- a/base/src/com/google/idea/blaze/base/wizard2/BazelWizardOptionProvider.java +++ b/base/src/com/google/idea/blaze/base/wizard2/BazelWizardOptionProvider.java @@ -36,6 +36,11 @@ public ImmutableList getSelectProjectViewOptions( BlazeNewProjectBuilder builder) { ImmutableList.Builder options = new ImmutableList.Builder<>(); + options.add(new CreateFromScratchProjectViewOption()); + options.add(new ImportFromWorkspaceProjectViewOption(builder)); + options.add(new GenerateFromBuildFileSelectProjectViewOption(builder)); + options.add(new CopyExternalProjectViewOption(builder)); + String projectViewFromEnv = System.getenv(AutoImportProjectOpenProcessor.PROJECT_VIEW_FROM_ENV); WorkspaceRoot workspaceRoot = builder.getWorkspaceData() != null ? builder.getWorkspaceData().workspaceRoot() : null; @@ -43,7 +48,7 @@ public ImmutableList getSelectProjectViewOptions( if (projectViewFromEnv != null) { File projectViewFromEnvFile = new File(projectViewFromEnv); if (projectViewFromEnvFile.exists()) { - options.add(UseKnownProjectViewOption.fromEnvironmentVariable(projectViewFromEnvFile)); + options.add(UseKnownProjectViewOption.fromEnvironmentVariable(workspaceRoot, projectViewFromEnvFile)); } } if (workspaceRoot.absolutePathFor(AutoImportProjectOpenProcessor.MANAGED_PROJECT_RELATIVE_PATH).toFile().exists()) { @@ -51,11 +56,6 @@ public ImmutableList getSelectProjectViewOptions( } } - options.add(new CreateFromScratchProjectViewOption()); - options.add(new ImportFromWorkspaceProjectViewOption(builder)); - options.add(new GenerateFromBuildFileSelectProjectViewOption(builder)); - options.add(new CopyExternalProjectViewOption(builder)); - return options.build(); } } diff --git a/base/src/com/google/idea/blaze/base/wizard2/UseKnownProjectViewOption.java b/base/src/com/google/idea/blaze/base/wizard2/UseKnownProjectViewOption.java index 12b16762cb0..f6c76775f00 100644 --- a/base/src/com/google/idea/blaze/base/wizard2/UseKnownProjectViewOption.java +++ b/base/src/com/google/idea/blaze/base/wizard2/UseKnownProjectViewOption.java @@ -1,8 +1,11 @@ package com.google.idea.blaze.base.wizard2; +import com.google.idea.blaze.base.model.primitives.WorkspacePath; import com.google.idea.blaze.base.model.primitives.WorkspaceRoot; import com.google.idea.blaze.base.project.AutoImportProjectOpenProcessor; +import com.google.idea.blaze.base.ui.UiUtil; import com.intellij.openapi.options.ConfigurationException; +import com.intellij.ui.components.JBLabel; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -16,11 +19,16 @@ public class UseKnownProjectViewOption implements BlazeSelectProjectViewOption { private final String optionName; private final String description; private final File projectView; + private final JComponent component; - private UseKnownProjectViewOption(String optionName, String description, File projectView) { + private UseKnownProjectViewOption(String optionName, String description, File projectView, WorkspaceRoot workspaceRoot) { this.optionName = optionName; this.description = description; this.projectView = projectView; + WorkspacePath workspacePath = workspaceRoot.workspacePathForSafe(projectView); + this.component = UiUtil.createHorizontalBox( + HORIZONTAL_LAYOUT_GAP, new JBLabel("Project view:"), + new JBLabel(workspacePath != null ? workspacePath.relativePath() : projectView.getAbsolutePath())); } @Override @@ -57,14 +65,20 @@ public void commit() throws BlazeProjectCommitException { @Nullable @Override public JComponent getUiComponent() { - return null; + return component; } public static UseKnownProjectViewOption fromManagedProject(WorkspaceRoot root) { - return new UseKnownProjectViewOption("use-managed-view", "Clone project's default view", root.absolutePathFor(AutoImportProjectOpenProcessor.MANAGED_PROJECT_RELATIVE_PATH).toFile()); + return new UseKnownProjectViewOption("use-managed-view", + "Clone project's default view", + root.absolutePathFor(AutoImportProjectOpenProcessor.MANAGED_PROJECT_RELATIVE_PATH).toFile(), + root); } - public static UseKnownProjectViewOption fromEnvironmentVariable(File file) { - return new UseKnownProjectViewOption("use-view-from-env", "Clone project view provided from environment", file); + public static UseKnownProjectViewOption fromEnvironmentVariable(WorkspaceRoot root, File file) { + return new UseKnownProjectViewOption("use-view-from-env", + "Clone project view provided from environment", + file, + root); } }