Skip to content

Commit 933664f

Browse files
decide whether to render Azure node based on state $module.azure(null, hide, show)
1 parent ec5ebf3 commit 933664f

File tree

2 files changed

+22
-12
lines changed
  • PluginsAndFeatures/azure-toolkit-for-intellij

2 files changed

+22
-12
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-facet/src/main/java/com/microsoft/azure/toolkit/intellij/facet/projectexplorer/AzureFacetTreeStructureProvider.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import lombok.RequiredArgsConstructor;
2929
import lombok.extern.slf4j.Slf4j;
3030
import org.apache.commons.collections4.CollectionUtils;
31+
import org.apache.commons.lang3.BooleanUtils;
3132

3233
import javax.annotation.Nonnull;
3334
import javax.annotation.Nullable;
@@ -60,12 +61,12 @@ public Collection<AbstractTreeNode<?>> modify(@Nonnull AbstractTreeNode<?> paren
6061
return children;
6162
}
6263
try {
63-
final AzureModule azureModule = Optional.ofNullable(toModule(parent))
64-
.map(AzureModule::from)
65-
.orElse(null);
66-
final boolean neverHasAzureFacet = Objects.nonNull(azureModule) && azureModule.neverHasAzureFacet();
67-
final boolean hasAzureFacet = Objects.nonNull(azureModule) && azureModule.hasAzureFacet();
68-
if (hasAzureFacet || (neverHasAzureFacet && (azureModule.isInitialized() || azureModule.hasAzureDependencies()))) {
64+
final AzureModule azureModule = Optional.ofNullable(toModule(parent)).map(AzureModule::from).orElse(null);
65+
final Boolean state = Optional.ofNullable(azureModule).map(AzureModule::getAzureFacetState).orElse(null);
66+
final boolean forceShow = BooleanUtils.isTrue(state);
67+
final boolean forceHide = BooleanUtils.isFalse(state);
68+
final boolean defaultShow = state == null && Objects.nonNull(azureModule) && (azureModule.hasAzureFacet() || azureModule.isInitialized() || azureModule.hasAzureDependencies());
69+
if (!forceHide && (forceShow || defaultShow)) {
6970
addListener(parent.getProject());
7071
final AbstractProjectViewPane viewPane = ProjectView.getInstance(parent.getProject()).getCurrentProjectViewPane();
7172
final AbstractTreeNode<?> dotAzureDir = children.stream()

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-resource-connector-lib/src/main/java/com/microsoft/azure/toolkit/intellij/connector/dotazure/AzureModule.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.intellij.execution.configurations.ModuleBasedConfiguration;
44
import com.intellij.execution.configurations.RunConfiguration;
5+
import com.intellij.ide.util.PropertiesComponent;
56
import com.intellij.openapi.module.Module;
67
import com.intellij.openapi.module.ModuleManager;
78
import com.intellij.openapi.module.ModuleUtil;
@@ -27,12 +28,7 @@
2728
import javax.annotation.Nonnull;
2829
import javax.annotation.Nullable;
2930
import java.io.IOException;
30-
import java.util.ArrayList;
31-
import java.util.Arrays;
32-
import java.util.List;
33-
import java.util.Map;
34-
import java.util.Objects;
35-
import java.util.Optional;
31+
import java.util.*;
3632
import java.util.concurrent.ConcurrentHashMap;
3733
import java.util.regex.Matcher;
3834
import java.util.regex.Pattern;
@@ -228,6 +224,19 @@ public boolean neverHasAzureFacet() {
228224
return !AzureFacet.wasEverAddedTo(this.module);
229225
}
230226

227+
@Nullable
228+
public Boolean getAzureFacetState() {
229+
final PropertiesComponent properties = PropertiesComponent.getInstance(module.getProject());
230+
final String value = properties.getValue(module.getName() + ".azure");
231+
if (StringUtils.equalsIgnoreCase(value, "show")) {
232+
return true;
233+
} else if (StringUtils.equalsIgnoreCase(value, "hide")) {
234+
return false;
235+
} else {
236+
return null;
237+
}
238+
}
239+
231240
public boolean hasAzureDependencies() {
232241
final List<String> libs = new ArrayList<>();
233242
OrderEnumerator.orderEntries(this.module).librariesOnly().forEachLibrary(l -> libs.add(l.getName()));

0 commit comments

Comments
 (0)