From 0af5dbd688ab848277d70b41f552f5374c8a5438 Mon Sep 17 00:00:00 2001 From: Lulu Luong Date: Wed, 26 Sep 2018 15:07:51 +0200 Subject: [PATCH] variable assigment button moved to SequentOptionsMenu Bug: model.getSelectedGoalNodeToShow().getAssignment() in SequentOptionsMenu is always empty --- .../controller/InteractiveModeController.java | 1 + .../psdbg/gui/controls/GoalOptionsMenu.java | 24 +++-------------- .../gui/controls/SequentOptionsMenu.java | 26 +++++++++++++++++++ .../controls/VariableAssignmentWindow.java | 25 +++++++++++------- .../psdbg/examples/contraposition/script.kps | 6 +++++ .../gui/controls/SequentOptionsMenu.fxml | 1 + 6 files changed, 53 insertions(+), 30 deletions(-) diff --git a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controller/InteractiveModeController.java b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controller/InteractiveModeController.java index 06f7dd3f..db38de82 100644 --- a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controller/InteractiveModeController.java +++ b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controller/InteractiveModeController.java @@ -148,6 +148,7 @@ public class InteractiveModeController { public void stop() { Events.unregister(this); + //TODO: casesstatement visiten String c = getCasesAsString(); scriptController.getDockNode(scriptArea).undock(); diff --git a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/GoalOptionsMenu.java b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/GoalOptionsMenu.java index 18271a01..92305fbb 100644 --- a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/GoalOptionsMenu.java +++ b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/GoalOptionsMenu.java @@ -2,6 +2,7 @@ package edu.kit.iti.formal.psdbg.gui.controls; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; +import edu.kit.iti.formal.psdbg.gui.model.InspectionModel; import edu.kit.iti.formal.psdbg.interpreter.data.KeyData; import edu.kit.iti.formal.psdbg.interpreter.data.VariableAssignment; import javafx.beans.property.ObjectProperty; @@ -12,6 +13,7 @@ import javafx.fxml.FXML; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.stage.Stage; +import lombok.Setter; import java.util.function.Function; @@ -22,13 +24,12 @@ public class GoalOptionsMenu extends ContextMenu { @FXML private RadioMenuItem rmiShowSequent, rmiCFL, rmiCFS, rmiBranchLabels, rmiNodeNames, rmiRuleNames; - @FXML - private MenuItem showVarAssignment; private ObjectProperty selectedViewOption = new SimpleObjectProperty<>(); private BiMap optionMap = HashBiMap.create(6); + public GoalOptionsMenu() { Utils.createWithFXML(this); @@ -50,23 +51,7 @@ public class GoalOptionsMenu extends ContextMenu { selectedViewOption.setValue(ViewOption.SEQUENT); - showVarAssignment.setOnAction(new EventHandler() { - @Override - public void handle(ActionEvent event) { - System.out.println("Show Variable Assignment pressed"); - - //TODO: get var assign info - VariableAssignment varAssign = null; - Stage stage = new Stage(); - stage.setTitle("Variable Assignment"); - VariableAssignmentWindow vaw = new VariableAssignmentWindow(varAssign); - Scene scene = new Scene(vaw); - stage.setScene(scene); - - stage.show(); - } - }); } @@ -78,9 +63,6 @@ public class GoalOptionsMenu extends ContextMenu { return selectedViewOption; } - public void setSelectedViewOption(ViewOption selectedViewOption) { - this.selectedViewOption.set(selectedViewOption); - } public enum ViewOption { BRANCHING(KeyData::getBranchingLabel), diff --git a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.java b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.java index 3fbd47ae..899561df 100644 --- a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.java +++ b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.java @@ -2,6 +2,7 @@ package edu.kit.iti.formal.psdbg.gui.controls; import edu.kit.iti.formal.psdbg.gui.model.InspectionModel; import edu.kit.iti.formal.psdbg.interpreter.data.KeyData; +import edu.kit.iti.formal.psdbg.interpreter.data.VariableAssignment; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXML; @@ -16,6 +17,9 @@ public class SequentOptionsMenu extends ContextMenu { private final InspectionModel model; @FXML private MenuItem openSequentMatcher; + @FXML + private MenuItem showVarAssignment; + public SequentOptionsMenu(InspectionModel model) { @@ -58,6 +62,28 @@ public class SequentOptionsMenu extends ContextMenu { } }); + + showVarAssignment.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent event) { + + if(model == null || model.getSelectedGoalNodeToShow() == null) { + Utils.showInfoDialog("Select a goal", "Select a goal", "Please select a goal first."); + return; + } + VariableAssignment var_assignm = model.getSelectedGoalNodeToShow().getAssignments(); + + Stage stage = new Stage(); + stage.setTitle("Variable Assignment"); + VariableAssignmentWindow vaw = new VariableAssignmentWindow(var_assignm); + + Scene scene = new Scene(vaw); + stage.setScene(scene); + + stage.show(); + } + }); + } diff --git a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/VariableAssignmentWindow.java b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/VariableAssignmentWindow.java index 2ae4c8e5..f8e9466c 100644 --- a/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/VariableAssignmentWindow.java +++ b/ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/VariableAssignmentWindow.java @@ -1,18 +1,23 @@ package edu.kit.iti.formal.psdbg.gui.controls; +import alice.tuprolog.Var; import edu.kit.iti.formal.psdbg.gui.controls.Utils; +import edu.kit.iti.formal.psdbg.gui.model.InspectionModel; import edu.kit.iti.formal.psdbg.interpreter.data.VariableAssignment; import javafx.fxml.FXML; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.layout.BorderPane; - +import lombok.Setter; public class VariableAssignmentWindow extends BorderPane { @FXML TableView tableView; + @Setter + private InspectionModel model; + public VariableAssignmentWindow(VariableAssignment assignment) { Utils.createWithFXML(this); @@ -23,14 +28,16 @@ public class VariableAssignmentWindow extends BorderPane { TableColumn valCol = new TableColumn("Value"); tableView.getColumns().addAll(varCol, typeCol, valCol); - if(assignment != null) { - //iterate over types map - assignment.getTypes().forEach((k,v) -> { - varCol.getColumns().add(k); - typeCol.getColumns().add(v); - valCol.getColumns().add(assignment.getValue(k)); - }); - } + + if (assignment != null) { + //iterate over types map + assignment.getTypes().forEach((k, v) -> { + varCol.getColumns().add(k); + typeCol.getColumns().add(v); + valCol.getColumns().add(assignment.getValue(k)); + }); + } + } } diff --git a/ui/src/main/resources/edu/kit/iti/formal/psdbg/examples/contraposition/script.kps b/ui/src/main/resources/edu/kit/iti/formal/psdbg/examples/contraposition/script.kps index 475b4549..cd940956 100644 --- a/ui/src/main/resources/edu/kit/iti/formal/psdbg/examples/contraposition/script.kps +++ b/ui/src/main/resources/edu/kit/iti/formal/psdbg/examples/contraposition/script.kps @@ -52,4 +52,10 @@ cases{ impRight; } auto; +} + +script varDecl(){ + var1 : INT := 1; + var2 : INT := 2; + var3 : INT := 3; } \ No newline at end of file diff --git a/ui/src/main/resources/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.fxml b/ui/src/main/resources/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.fxml index 130c5ad2..84c75428 100644 --- a/ui/src/main/resources/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.fxml +++ b/ui/src/main/resources/edu/kit/iti/formal/psdbg/gui/controls/SequentOptionsMenu.fxml @@ -6,5 +6,6 @@ prefHeight="400.0" prefWidth="600.0" type="javafx.scene.control.ContextMenu"> + \ No newline at end of file -- GitLab