simplification and cleanup

This commit is contained in:
Armin Schrenk
2021-05-18 13:40:56 +02:00
parent 66a8dc9811
commit 20f88e203a
2 changed files with 5 additions and 22 deletions

View File

@@ -12,9 +12,6 @@ import javafx.beans.binding.Binding;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.concurrent.Worker;
@@ -22,7 +19,6 @@ import javafx.fxml.FXML;
import javafx.scene.control.ListView;
import java.io.IOException;
import java.util.Collection;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.concurrent.ExecutorService;
@@ -30,37 +26,33 @@ import java.util.concurrent.ExecutorService;
public class CheckListController implements FxController {
private static final Logger LOG = LoggerFactory.getLogger(CheckListController.class);
private static final Set<Worker.State> endStates = Set.of(Worker.State.FAILED, Worker.State.CANCELLED, Worker.State.SUCCEEDED);
private static final Set<Worker.State> END_STATES = Set.of(Worker.State.FAILED, Worker.State.CANCELLED, Worker.State.SUCCEEDED);
private final ObservableList<HealthCheckTask> tasks;
private final ReportWriter reportWriter;
private final ExecutorService executorService;
private final ObjectProperty<HealthCheckTask> selectedTask;
private final ResourceBundle resourceBundle;
private final SimpleObjectProperty<Worker<?>> runningTask;
private final Binding<Boolean> running;
private final Binding<Boolean> finished;
private final BooleanBinding anyCheckSelected;
private final BooleanBinding readyToRun;
private final StringProperty runButtonDescription;
/* FXML */
public ListView<HealthCheckTask> checksListView;
@Inject
public CheckListController(Lazy<Collection<HealthCheckTask>> tasks, ReportWriter reportWriteTask, ObjectProperty<HealthCheckTask> selectedTask, ExecutorService executorService, ResourceBundle resourceBundle) {
public CheckListController(Lazy<Collection<HealthCheckTask>> tasks, ReportWriter reportWriteTask, ObjectProperty<HealthCheckTask> selectedTask, ExecutorService executorService) {
this.tasks = FXCollections.observableArrayList(tasks.get());
this.reportWriter = reportWriteTask;
this.executorService = executorService;
this.selectedTask = selectedTask;
this.resourceBundle = resourceBundle;
this.runningTask = new SimpleObjectProperty<>();
this.running = EasyBind.wrapNullable(runningTask).mapObservable(Worker::runningProperty).orElse(false);
this.finished = EasyBind.wrapNullable(runningTask).mapObservable(Worker::stateProperty).map(endStates::contains).orElse(false);
this.finished = EasyBind.wrapNullable(runningTask).mapObservable(Worker::stateProperty).map(END_STATES::contains).orElse(false);
this.readyToRun = runningTask.isNull();
this.anyCheckSelected = selectedTask.isNotNull();
this.runButtonDescription = new SimpleStringProperty(resourceBundle.getString("health.check.runAllButton"));
}
@FXML
@@ -68,15 +60,6 @@ public class CheckListController implements FxController {
checksListView.setItems(tasks);
checksListView.setCellFactory(ignored -> new CheckListCell());
selectedTask.bind(checksListView.getSelectionModel().selectedItemProperty());
selectedTask.addListener(this::updateRunButtonDescription);
}
private void updateRunButtonDescription(ObservableValue<? extends HealthCheckTask> observable, HealthCheckTask oldTask, HealthCheckTask newTask) {
if (newTask == null) {
runButtonDescription.set(resourceBundle.getString("health.check.runSingleButton"));
} else if (oldTask == null && newTask != null) {
runButtonDescription.set(resourceBundle.getString("health.check.runAllButton"));
}
}
@FXML

View File

@@ -33,8 +33,8 @@
<buttons>
<!-- Buttons have a prefWidth to prevent uneven interface -->
<Button prefWidth="20" text="%generic.button.cancel" ButtonBar.buttonData="CANCEL_CLOSE" onAction="#cancelCheck" visible="${controller.running}" managed="${controller.running}" />
<Button prefWidth="20" text="TODO: run all" ButtonBar.buttonData="NEXT_FORWARD" onAction="#runAllChecks" visible="${controller.readyToRun &amp;&amp; !controller.anyCheckSelected}" managed="${controller.readyToRun &amp;&amp; !controller.anyCheckSelected}" />
<Button prefWidth="20" text="TODO: run selected" ButtonBar.buttonData="NEXT_FORWARD" onAction="#runSelectedChecks" visible="${controller.readyToRun &amp;&amp; controller.anyCheckSelected}" managed="${controller.readyToRun &amp;&amp; controller.anyCheckSelected}" />
<Button prefWidth="20" text="%health.check.runAllButton" ButtonBar.buttonData="NEXT_FORWARD" onAction="#runAllChecks" visible="${controller.readyToRun &amp;&amp; !controller.anyCheckSelected}" managed="${controller.readyToRun &amp;&amp; !controller.anyCheckSelected}" />
<Button prefWidth="20" text="%health.check.runSingleButton" ButtonBar.buttonData="NEXT_FORWARD" onAction="#runSelectedChecks" visible="${controller.readyToRun &amp;&amp; controller.anyCheckSelected}" managed="${controller.readyToRun &amp;&amp; controller.anyCheckSelected}" />
<Button text="TODO Export Results" ButtonBar.buttonData="NEXT_FORWARD" disable="${!controller.finished}" visible="${!controller.readyToRun}" managed="${!controller.readyToRun}" onAction="#exportResults"/>
</buttons>
</ButtonBar>