Skip to content

Commit 2c109fd

Browse files
committed
Fix validation issue for function deployment panel
1 parent 7e11181 commit 2c109fd

File tree

1 file changed

+15
-1
lines changed
  • PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-appservice/src/main/java/com/microsoft/azure/toolkit/intellij/legacy/function/runner/deploy

1 file changed

+15
-1
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-appservice/src/main/java/com/microsoft/azure/toolkit/intellij/legacy/function/runner/deploy/FunctionDeploymentSettingEditor.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,20 @@
1111
import com.microsoft.azure.toolkit.intellij.legacy.common.AzureSettingsEditor;
1212
import com.microsoft.azure.toolkit.intellij.legacy.function.runner.deploy.ui.FunctionDeploymentPanel;
1313
import com.microsoft.azure.toolkit.lib.common.form.AzureValidationInfo;
14+
import com.microsoft.azure.toolkit.lib.common.utils.TailingDebouncer;
1415
import org.jetbrains.annotations.NotNull;
1516
import reactor.core.scheduler.Schedulers;
1617

1718
import java.util.Objects;
19+
import java.util.Optional;
1820

1921
public class FunctionDeploymentSettingEditor extends AzureSettingsEditor<FunctionDeployConfiguration> {
2022

2123
private final FunctionDeploymentPanel mainPanel;
2224
private final FunctionDeployConfiguration functionDeployConfiguration;
2325

26+
private final TailingDebouncer debouncer = new TailingDebouncer(this::updateValidationInfo, 1000);
27+
2428
public FunctionDeploymentSettingEditor(Project project, @NotNull FunctionDeployConfiguration functionDeployConfiguration) {
2529
super(project);
2630
this.mainPanel = new FunctionDeploymentPanel(project, functionDeployConfiguration);
@@ -34,12 +38,22 @@ protected void applyEditorTo(@NotNull FunctionDeployConfiguration conf) throws C
3438
.filter(i -> !i.isValid())
3539
.findAny().orElse(null);
3640
if (Objects.nonNull(error)) {
37-
mainPanel.validateAllInputsAsync().subscribeOn(Schedulers.boundedElastic()).subscribe(ignore -> this.fireEditorStateChanged());
41+
this.debouncer.debounce();
3842
final String message = error.getType() == AzureValidationInfo.Type.PENDING ? "Validating..." : error.getMessage();
3943
throw new ConfigurationException(message);
4044
}
4145
}
4246

47+
private void updateValidationInfo() {
48+
this.mainPanel.validateAllInputsAsync()
49+
.subscribeOn(Schedulers.boundedElastic())
50+
.subscribe(info -> {
51+
if (info.isValid()) {
52+
this.fireEditorStateChanged();
53+
}
54+
});
55+
}
56+
4357
@Override
4458
@NotNull
4559
protected AzureSettingPanel<FunctionDeployConfiguration> getPanel() {

0 commit comments

Comments
 (0)