diff --git a/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUI.java b/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUI.java index 7dc5704923..a844603d0b 100644 --- a/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUI.java +++ b/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUI.java @@ -111,16 +111,20 @@ private void initSparkContext(Message parentMessage) { private void configureSparkContext(Message parentMessage, KernelFunctionality kernel) { try { + this.sparkUIForm.setAllToDisabled(); TryResult configure = sparkEngine.configure(kernel, this, parentMessage); if (configure.isError()) { this.sparkUIForm.sendError(StacktraceHtmlPrinter.printRedBold(ERROR_CREATING_SPARK_SESSION)); + this.sparkUIForm.setAllToEnabled(); } else { singleSparkSession.active(); sparkUIForm.saveDefaults(); + sparkUIForm.getConnectButton().setDomClasses(asList("hidden")); sparkUiDefaults.saveProfileName(sparkUIForm.getProfileName()); applicationStart(); } } catch (Exception e) { + this.sparkUIForm.setAllToEnabled(); this.sparkUIForm.sendError(StacktraceHtmlPrinter.printRedBold(e.getMessage())); } } @@ -132,7 +136,6 @@ private SparkSession getSparkSession() { private void applicationStart() { this.statusPanel = new SparkUIStatus(message -> getSparkSession().sparkContext().stop()); this.sparkUIForm.setDomClasses(new ArrayList<>(asList("bx-disabled"))); - this.sparkUIForm.setAllToDisabled(); add(0, this.statusPanel); sendUpdate(SPARK_APP_ID, sparkEngine.getSparkAppId()); sendUpdate("sparkUiWebUrl", sparkEngine.getSparkUiWebUrl()); diff --git a/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUIForm.java b/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUIForm.java index c22bdbc513..2f7764824c 100644 --- a/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUIForm.java +++ b/kernel/sparkex/src/main/java/com/twosigma/beakerx/widget/SparkUIForm.java @@ -316,11 +316,20 @@ public String getProfileName() { public void setAllToDisabled() { this.profileManagement.getChildren().stream().map(x -> (ValueWidget) x).forEach(x -> x.setDisabled(true)); this.advancedOption.setDisabledToAll(); + this.connectButton.setDisabled(true); + this.masterURL.setDisabled(true); + this.executorMemory.setDisabled(true); + this.executorCores.setDisabled(true); } public void setAllToEnabled() { this.profileManagement.getChildren().stream().map(x -> (ValueWidget) x).forEach(x -> x.setDisabled(false)); this.advancedOption.setEnabledToAll(); + this.connectButton.setDisabled(false); + this.connectButton.setDomClasses(new ArrayList<>()); + this.masterURL.setDisabled(false); + this.executorMemory.setDisabled(false); + this.executorCores.setDisabled(false); } }