diff --git a/lib/DockFX b/lib/DockFX index 80c5e58344850b9ec92c84cb6fb9b56d6a1066f3..bbbc57653d6a0bc7463539de30fec075443c0843 160000 --- a/lib/DockFX +++ b/lib/DockFX @@ -1 +1 @@ -Subproject commit 80c5e58344850b9ec92c84cb6fb9b56d6a1066f3 +Subproject commit bbbc57653d6a0bc7463539de30fec075443c0843 diff --git a/pom.xml b/pom.xml index 7039715daf212f0632408b5afdd2e35145020e15..4cbd863f5f5ca9009fbe3024f4ac471263af8fba 100644 --- a/pom.xml +++ b/pom.xml @@ -92,7 +92,6 @@ - lib/AnchorFX/src/main/java lib/DockFX/src/main/java @@ -107,7 +106,6 @@ - lib/AnchorFX/src/main/resources lib/DockFX/src/main/resources diff --git a/src/main/java/edu/kit/formal/gui/controller/DebuggerMainWindowController.java b/src/main/java/edu/kit/formal/gui/controller/DebuggerMainWindowController.java index de3a0f977099191ec943dc37d130d6dd70937cec..3f7844758119890dba265bd6f63e6f923b0aa633 100644 --- a/src/main/java/edu/kit/formal/gui/controller/DebuggerMainWindowController.java +++ b/src/main/java/edu/kit/formal/gui/controller/DebuggerMainWindowController.java @@ -15,8 +15,6 @@ import edu.kit.formal.interpreter.graphs.ProofTreeController; import edu.kit.formal.proofscriptparser.ast.ProofScript; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ObservableBooleanValue; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; import javafx.concurrent.Service; import javafx.concurrent.Task; import javafx.event.ActionEvent; @@ -96,8 +94,17 @@ public class DebuggerMainWindowController implements Initializable { * GoalView * **********************************************************************************************************/ - @FXML - private InspectionViewTabPane inspectionViewTabPane; + private final InspectionViewsController inspectionViewsController = new InspectionViewsController(); + + /** + * + */ + private JavaArea javaArea = new JavaArea(); + private DockNode javaAreaDock = new DockNode(javaArea, "Java Source", + new MaterialDesignIconView(MaterialDesignIcon.CODEPEN) + ); + + private ExecutorService executorService = Executors.newFixedThreadPool(2); private KeYProofFacade facade = new KeYProofFacade(); private ContractLoaderService contractLoaderService = new ContractLoaderService(); @@ -122,6 +129,10 @@ public class DebuggerMainWindowController implements Initializable { //TODO private ObservableBooleanValue executeNotPossible = pc.executeNotPossibleProperty().or(facade.readyToExecuteProperty().not()); + private WelcomePane welcomePane = new WelcomePane(this); + private DockNode welcomePaneDock = new DockNode(welcomePane, "Welcome", new MaterialDesignIconView(MaterialDesignIcon.ACCOUNT)); + private DockNode activeInspectorDock = inspectionViewsController.getActiveInterpreterTabDock(); + public static void showExceptionDialog(String title, String headerText, String contentText, Throwable ex) { Alert alert = new Alert(Alert.AlertType.ERROR); @@ -153,12 +164,6 @@ public class DebuggerMainWindowController implements Initializable { alert.showAndWait(); } - private ObservableList openScripts = FXCollections.observableArrayList(); - private WelcomePane welcomePane = new WelcomePane(); - private DockNode welcomePaneDock = new DockNode(welcomePane,"Welcome", new MaterialDesignIconView(MaterialDesignIcon.ACCOUNT)); - - - /** * @param location * @param resources @@ -172,20 +177,10 @@ public class DebuggerMainWindowController implements Initializable { welcomePaneDock.dock(dockStation, DockPos.LEFT); /* - DockNode scripts = AnchorageSystem.createDock("Scripts", scriptController); - DockNode a = AnchorageSystem.createDock("Abc", new ScriptArea()); - DockNode b = AnchorageSystem.createDock("Def", new ScriptArea()); - - scripts.dock(dockStation, DockNode.DockPosition.CENTER); - a.dock(dockStation, DockNode.DockPosition.LEFT); - b.dock(dockStation, DockNode.DockPosition.LEFT); - */ - - -/* toolbar.getChildrenUnmodifiable().forEach( + toolbar.getChildrenUnmodifiable().forEach( n -> n.setOnMouseEntered(statusBar.getTooltipHandler())); - buttonStartInterpreter.setOnMouseEntered(statusBar.getTooltipHandler()); + */ model.scriptFileProperty().addListener((observable, oldValue, newValue) -> { statusBar.publishMessage("File: " + (newValue != null ? newValue.getAbsolutePath() : "n/a")); @@ -194,24 +189,15 @@ public class DebuggerMainWindowController implements Initializable { /** * create a new inspectionviewtab that is the main tab and not closable */ - // inspectionViewTabPane.createNewInspectionViewTab(model, true); - + inspectionViewsController.connectActiveView(model); - //TODO this does not work any more - /*scriptController.getActiveScriptAreaTab().getScriptArea().getMarkedRegions().addListener((SetChangeListener) change -> { - blocker.getBreakpoints().clear(); - blocker.getBreakpoints().addAll(change.getSet()); - });*/ - - /*pc.currentGoalsProperty().addListener((o, old, fresh) -> { + /*pc.goalsProperty().addListener((o, old, fresh) -> { model.currentGoalNodesProperty().setAll(fresh); }); model.currentSelectedGoalNodeProperty().bind(pc.currentSelectedGoalProperty());*/ - //model.currentGoalNodesProperty().bind(pc.currentGoalsProperty()); - + //model.currentGoalNodesProperty().bind(pc.goalsProperty()); //CustomTabPaneSkin skin = new CustomTabPaneSkin(scriptController); - } //region Actions: Execution @@ -330,7 +316,7 @@ public class DebuggerMainWindowController implements Initializable { } } - private void openScript(String code, ScriptArea area) { + public void openScript(String code, ScriptArea area) { model.setScriptFile(null); if (!area.textProperty().getValue().isEmpty()) { area.deleteText(0, area.textProperty().getValue().length()); @@ -342,8 +328,12 @@ public class DebuggerMainWindowController implements Initializable { @FXML protected void loadKeYFile() { File keyFile = openFileChooserOpenDialog("Select KeY File", "KeY Files", "key", "script"); - this.model.setKeYFile(keyFile); + openKeyFile(keyFile); + } + + public void openKeyFile(File keyFile) { if (keyFile != null) { + this.model.setKeYFile(keyFile); Task task = facade.loadKeyFileTask(keyFile); task.setOnSucceeded(event -> { statusBar.publishMessage("Loaded key sourceName: %s", keyFile); @@ -373,6 +363,10 @@ public class DebuggerMainWindowController implements Initializable { @FXML protected void loadJavaFile() { File javaFile = openFileChooserOpenDialog("Select Java File", "Java Files", "java"); + openJavaFile(javaFile); + } + + public void openJavaFile(File javaFile) { if (javaFile != null) { model.setJavaFile(javaFile); contractLoaderService.start(); @@ -389,7 +383,7 @@ public class DebuggerMainWindowController implements Initializable { */ private File openFileChooserSaveDialog(String title, String description, String... fileEndings) { FileChooser fileChooser = getFileChooser(title, description, fileEndings); - // File sourceName = fileChooser.showSaveDialog(inspectionViewTabPane.getInspectionViewTab().getGoalView().getScene().getWindow()); + // File sourceName = fileChooser.showSaveDialog(inspectionViewsController.getInspectionViewTab().getGoalView().getScene().getWindow()); File file = fileChooser.showOpenDialog(statusBar.getScene().getWindow()); if (file != null) initialDirectory = file.getParentFile(); return file; @@ -397,7 +391,7 @@ public class DebuggerMainWindowController implements Initializable { private File openFileChooserOpenDialog(String title, String description, String... fileEndings) { FileChooser fileChooser = getFileChooser(title, description, fileEndings); - //File sourceName = fileChooser.showOpenDialog(inspectionViewTabPane.getInspectionViewTab().getGoalView().getScene().getWindow()); + //File sourceName = fileChooser.showOpenDialog(inspectionViewsController.getInspectionViewTab().getGoalView().getScene().getWindow()); File file = fileChooser.showOpenDialog(statusBar.getScene().getWindow()); if (file != null) initialDirectory = file.getParentFile(); return file; @@ -458,13 +452,44 @@ public class DebuggerMainWindowController implements Initializable { //linenumberMainscript from model? //scriptController.getActiveScriptAreaTab().getScriptArea().removeHighlightStmt(lineNumberMainScript); - //inspectionViewTabPane.getInspectionViewTab.clear(); + //inspectionViewsController.getInspectionViewTab.clear(); } public void newScript(ActionEvent actionEvent) { scriptController.newScript(); } + public void showCodeDock(ActionEvent actionEvent) { + if (!javaAreaDock.isDocked()) { + javaAreaDock.dock(dockStation, DockPos.RIGHT); + } + } + + public void showWelcomeDock(ActionEvent actionEvent) { + if (!welcomePaneDock.isDocked()) { + welcomePaneDock.dock(dockStation, DockPos.CENTER); + } + } + + public void showActiveInspector(ActionEvent actionEvent) { + if (!activeInspectorDock.isDocked() && + !activeInspectorDock.isFloating()) { + activeInspectorDock.dock(dockStation, DockPos.CENTER); + } + } + + public DockNode getJavaAreaDock() { + return javaAreaDock; + } + + public DockNode getWelcomePaneDock() { + return welcomePaneDock; + } + + public DockNode getActiveInspectorDock() { + return activeInspectorDock; + } + public class ContractLoaderService extends Service> { @Override protected Task> createTask() { diff --git a/src/main/java/edu/kit/formal/gui/controls/InspectionViewTab.java b/src/main/java/edu/kit/formal/gui/controls/InspectionViewTab.java index 8d105db90943e3abb854658e6914a76991fd5260..12a40184ac874b74329b25ea36b06e193a53f05d 100644 --- a/src/main/java/edu/kit/formal/gui/controls/InspectionViewTab.java +++ b/src/main/java/edu/kit/formal/gui/controls/InspectionViewTab.java @@ -1,17 +1,12 @@ package edu.kit.formal.gui.controls; -import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIcon; -import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView; -import de.uka.ilkd.key.logic.op.IProgramMethod; -import de.uka.ilkd.key.pp.ProgramPrinter; import edu.kit.formal.gui.model.InspectionModel; import edu.kit.formal.gui.model.RootModel; import edu.kit.formal.interpreter.data.GoalNode; import edu.kit.formal.interpreter.data.KeyData; import javafx.beans.Observable; -import javafx.beans.property.BooleanProperty; import javafx.beans.property.ObjectProperty; -import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.fxml.FXML; import javafx.scene.Node; @@ -21,9 +16,6 @@ import javafx.scene.control.SplitPane; import javafx.scene.input.MouseEvent; import javafx.scene.layout.BorderPane; -import java.io.IOException; -import java.io.StringWriter; - /** * Right part of the splitpane that displays the different parts of a state * @@ -31,32 +23,43 @@ import java.io.StringWriter; */ public class InspectionViewTab extends BorderPane { public GoalOptionsMenu goalOptionsMenu = new GoalOptionsMenu(); - @FXML - private SectionPane sectionPaneJavaCode; + @FXML private SplitPane lowerSplitPane; + @FXML private SequentView sequentView; - @FXML - private JavaArea javaSourceCode; - @FXML - private ListView goalView; - private ObjectProperty mode = new SimpleObjectProperty<>(); + @FXML + private ListView> goalView; - private BooleanProperty showCode = new SimpleBooleanProperty(true); + private ObjectProperty model = new SimpleObjectProperty<>( + new InspectionModel() + ); public InspectionViewTab() { super(); Utils.createWithFXML(this); - getGoalView().getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { - if (newValue != null && newValue.getData() != null) { - getSequentView().setNode(newValue.getData().getNode()); - } - }); + model.get().selectedGoalNodeToShowProperty().bind( + goalView.getSelectionModel().selectedItemProperty() + ); + + model.get().selectedGoalNodeToShowProperty().addListener( + (observable, oldValue, newValue) -> { + goalView.getSelectionModel().select(newValue); + if (newValue != null && newValue.getData() != null) { + getSequentView().setNode(newValue.getData().getNode()); + // TODO weigl: get marked lines of the program, and set it + model.get().highlightedJavaLinesProperty().get() + .clear(); + } + }); + + model.get().goalsProperty().bindBidirectional(goalView.itemsProperty()); getGoalView().setCellFactory(GoalNodeListCell::new); + /*TODO redefine CSS bases on selected mode mode.addListener(o -> { getStyleClass().removeAll( Mode.DEAD.name(), @@ -64,34 +67,14 @@ public class InspectionViewTab extends BorderPane { Mode.POSTMORTEM.name() ); getStyleClass().add(mode.get().name()); - - if (mode.get() == Mode.LIVING) { - MaterialDesignIconView icon = new MaterialDesignIconView(MaterialDesignIcon.RUN); - setClosable(false); - setGraphic(icon); - } else { - setGraphic(null); - setClosable(true); - } - }); - - - showCode.addListener(o -> { - if (showCode.get()) - lowerSplitPane.getItems().add(sectionPaneJavaCode); - else - lowerSplitPane.getItems().remove(sectionPaneJavaCode); }); - showCode.set(false); + */ } public SequentView getSequentView() { return sequentView; } - public JavaArea getJavaSourceCode() { - return javaSourceCode; - } public ListView> getGoalView() { return goalView; @@ -106,16 +89,8 @@ public class InspectionViewTab extends BorderPane { goalOptionsMenu.show(n, actionEvent.getScreenX(), actionEvent.getScreenY()); } - public void initialize(InspectionModel model) { - System.out.println("model"); - } - public void refresh(RootModel model) { - IProgramMethod method = (IProgramMethod) model.getChosenContract().getTarget(); - getJavaSourceCode().clear(); - getJavaSourceCode().getLineToClass().clear(); - //javaSourceCode.clear(); - //javaSourceCode.getLineToClass().clear(); + /* IProgramMethod method = (IProgramMethod) model.getChosenContract().getTarget(); StringWriter writer = new StringWriter(); ProgramPrinter pp = new ProgramPrinter(writer); try { @@ -125,39 +100,10 @@ public class InspectionViewTab extends BorderPane { } catch (IOException e) { e.printStackTrace(); } - getJavaSourceCode().insertText(0, writer.toString()); - // javaSourceCode.insertText(0, writer.toString()); + */ } - public Mode getMode() { - return mode.get(); - } - - public void setMode(Mode mode) { - this.mode.set(mode); - } - - public ObjectProperty modeProperty() { - return mode; - } - - public boolean isShowCode() { - return showCode.get(); - } - - public void setShowCode(boolean showCode) { - this.showCode.set(showCode); - } - - public BooleanProperty showCodeProperty() { - return showCode; - } - - enum Mode { - LIVING, DEAD, POSTMORTEM, - } - /** * Cells for GoalView */ @@ -181,4 +127,12 @@ public class InspectionViewTab extends BorderPane { setText(text); } } + + public InspectionModel getModel() { + return model.get(); + } + + public ReadOnlyObjectProperty modelProperty() { + return model; + } } diff --git a/src/main/java/edu/kit/formal/gui/controls/InspectionViewTabPane.java b/src/main/java/edu/kit/formal/gui/controls/InspectionViewsController.java similarity index 53% rename from src/main/java/edu/kit/formal/gui/controls/InspectionViewTabPane.java rename to src/main/java/edu/kit/formal/gui/controls/InspectionViewsController.java index 85fe9eb475d7c5d3e1be444d6e9d784ca70905cb..693d965b4daff9cef35f20beb84eeb995d98ea95 100644 --- a/src/main/java/edu/kit/formal/gui/controls/InspectionViewTabPane.java +++ b/src/main/java/edu/kit/formal/gui/controls/InspectionViewsController.java @@ -1,12 +1,15 @@ package edu.kit.formal.gui.controls; import edu.kit.formal.gui.model.RootModel; +import javafx.beans.property.SimpleMapProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableMap; import org.dockfx.DockNode; /** * TabPane on the right side of the GUI containing the inspection view as tabs */ -public class InspectionViewTabPane { +public class InspectionViewsController { /** * active tab in which the interpreter resp. Debugger state is shown. @@ -16,40 +19,19 @@ public class InspectionViewTabPane { private final InspectionViewTab activeInterpreterTab = new InspectionViewTab(); private final DockNode activeInterpreterTabDock = new DockNode(activeInterpreterTab, "Active"); + private final ObservableMap inspectionViews = new SimpleMapProperty<>(FXCollections.observableHashMap()); + public InspectionViewTab getActiveInspectionViewTab() { return this.activeInterpreterTab; } - - public void createNewInspectionViewTab(RootModel model, boolean activeTab) { - InspectionViewTab tab = new InspectionViewTab(); - if (activeTab) { - System.out.println(this.getActiveInspectionViewTab() == null); - this.setActiveInterpreterTab(tab); - tab.setText("Active Tab"); - tab.setClosable(false); - this.setActiveInterpreterTab(tab); - } - - model.chosenContractProperty().addListener(o -> { - tab.refresh(model); - }); - bindGoalNodesWithCurrentTab(model); - - this.getTabs().add(tab); + public DockNode getActiveInterpreterTabDock() { + return activeInterpreterTabDock; } - - //TODO schauen wie Goallist ins model kommt - public void bindGoalNodesWithCurrentTab(RootModel model) { - + public void connectActiveView(RootModel model) { getActiveInspectionViewTab().getGoalView().itemsProperty().bind(model.currentGoalNodesProperty()); model.currentSelectedGoalNodeProperty().addListener((p, old, fresh) -> { getActiveInspectionViewTab().getGoalView().getSelectionModel().select(fresh); - - /* TODO get lines of active statements marked lines - javaSourceCode.getMarkedRegions().clear(); - javaSourceCode.getMarkedRegions().addAll( - );*/ }); } diff --git a/src/main/java/edu/kit/formal/gui/controls/ScriptController.java b/src/main/java/edu/kit/formal/gui/controls/ScriptController.java index 8b7bdcd1938960d9d40e6ff30d3bca3cc9a00a5e..603ce3f51d6313436daec6b8f30a31ae041b2db0 100644 --- a/src/main/java/edu/kit/formal/gui/controls/ScriptController.java +++ b/src/main/java/edu/kit/formal/gui/controls/ScriptController.java @@ -67,8 +67,6 @@ public class ScriptController { area.setFilePath(filePath); DockNode dockNode = createDockNode(area); openScripts.put(area, dockNode); - dockNode.dock(parent, DockPos.LEFT); - return area; } else { logger.info("File already exists. Will not load it again"); diff --git a/src/main/java/edu/kit/formal/gui/controls/WelcomePane.java b/src/main/java/edu/kit/formal/gui/controls/WelcomePane.java index 50e50a4e18a70e1398394b2e4f3a834889703aef..46d0d0d06efdbecbcf3f59c9663991d45cf96af5 100644 --- a/src/main/java/edu/kit/formal/gui/controls/WelcomePane.java +++ b/src/main/java/edu/kit/formal/gui/controls/WelcomePane.java @@ -1,14 +1,31 @@ package edu.kit.formal.gui.controls; +import edu.kit.formal.gui.controller.DebuggerMainWindowController; import javafx.scene.layout.AnchorPane; +import java.awt.event.ActionEvent; +import java.io.File; + /** * Created by weigl on 7/7/17. */ public class WelcomePane extends AnchorPane { + private final DebuggerMainWindowController proofScriptDebugger; - public WelcomePane() { + public WelcomePane(DebuggerMainWindowController debugger) { + this.proofScriptDebugger = debugger; Utils.createWithFXML(this); } + public void loadContraPosition(javafx.event.ActionEvent event) { + proofScriptDebugger.getWelcomePaneDock().close(); + proofScriptDebugger.showActiveInspector(null); + proofScriptDebugger.openScript( + new File("src/test/resources/edu/kit/formal/interpreter/contraposition/test.kps") + ); + + proofScriptDebugger.openKeyFile( + new File("src/test/resources/edu/kit/formal/interpreter/contraposition/contraposition.key")); + + } } diff --git a/src/main/java/edu/kit/formal/gui/model/InspectionModel.java b/src/main/java/edu/kit/formal/gui/model/InspectionModel.java index 2ddca9464202669400c4954c56e72a541b807b64..becf50274dfbb2193c3f5e8272739649d0eca631 100644 --- a/src/main/java/edu/kit/formal/gui/model/InspectionModel.java +++ b/src/main/java/edu/kit/formal/gui/model/InspectionModel.java @@ -1,124 +1,130 @@ package edu.kit.formal.gui.model; import edu.kit.formal.interpreter.data.GoalNode; +import edu.kit.formal.interpreter.data.KeyData; import edu.kit.formal.proofscriptparser.ast.ASTNode; -import javafx.beans.property.SimpleListProperty; -import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.property.*; +import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.collections.ObservableMap; +import javafx.collections.ObservableSet; import javafx.scene.paint.Color; -import java.util.Map; -import java.util.Set; - /** * Model for the inspection view * * @author S.Grebing + * @author Alexander Weigl */ public class InspectionModel { + enum Mode { + LIVING, DEAD, POSTMORTEM, + } - private ASTNode node; - - private SimpleListProperty currentGoals; - - private SimpleObjectProperty selectedGoalNodeToShow; - - private Map colorofEachGoalNodeinListView; - - private boolean showJavaView; - - private String javaString; - - private Set highlightedJavaLines; - - private boolean closable; - - private boolean isInterpreterTab; + private final ObjectProperty node = new SimpleObjectProperty<>(); + private final ListProperty> goals = new SimpleListProperty<>(); + private final ObjectProperty> selectedGoalNodeToShow = new SimpleObjectProperty<>(); + private final MapProperty colorofEachGoalNodeinListView = new SimpleMapProperty<>(FXCollections.observableHashMap()); + //private final StringProperty javaString = new SimpleStringProperty(); + private final SetProperty highlightedJavaLines = new SimpleSetProperty<>(FXCollections.observableSet()); + private final BooleanProperty closable = new SimpleBooleanProperty(); + private final BooleanProperty isInterpreterTab = new SimpleBooleanProperty(); + private ObjectProperty mode = new SimpleObjectProperty<>(); - public InspectionModel() { + public ASTNode getNode() { + return node.get(); } - /*************************************************************************************************************** - * Getter and Setter - * - ***************************************************************************************************************/ - public ASTNode getNode() { + public ObjectProperty nodeProperty() { return node; } public void setNode(ASTNode node) { - this.node = node; + this.node.set(node); } - public ObservableList getCurrentGoals() { - return currentGoals.get(); + public ObservableList> getGoals() { + return goals.get(); } - public void setCurrentGoals(ObservableList currentGoals) { - this.currentGoals.set(currentGoals); + public ListProperty> goalsProperty() { + return goals; } - public SimpleListProperty currentGoalsProperty() { - return currentGoals; + public void setGoals(ObservableList> goals) { + this.goals.set(goals); } public GoalNode getSelectedGoalNodeToShow() { return selectedGoalNodeToShow.get(); } + public ObjectProperty> selectedGoalNodeToShowProperty() { + return selectedGoalNodeToShow; + } + public void setSelectedGoalNodeToShow(GoalNode selectedGoalNodeToShow) { this.selectedGoalNodeToShow.set(selectedGoalNodeToShow); } - public SimpleObjectProperty selectedGoalNodeToShowProperty() { - return selectedGoalNodeToShow; + public ObservableMap getColorofEachGoalNodeinListView() { + return colorofEachGoalNodeinListView.get(); } - public Map getColorofEachGoalNodeinListView() { + public MapProperty colorofEachGoalNodeinListViewProperty() { return colorofEachGoalNodeinListView; } - public void setColorofEachGoalNodeinListView(Map colorofEachGoalNodeinListView) { - this.colorofEachGoalNodeinListView = colorofEachGoalNodeinListView; - } - - public boolean isShowJavaView() { - return showJavaView; + public void setColorofEachGoalNodeinListView(ObservableMap colorofEachGoalNodeinListView) { + this.colorofEachGoalNodeinListView.set(colorofEachGoalNodeinListView); } - public void setShowJavaView(boolean showJavaView) { - this.showJavaView = showJavaView; - } + /* + public String getJavaString() { + return javaString.get(); + } - public String getJavaString() { - return javaString; - } + public StringProperty javaStringProperty() { + return javaString; + } - public void setJavaString(String javaString) { - this.javaString = javaString; + public void setJavaString(String javaString) { + this.javaString.set(javaString); + } + */ + public ObservableSet getHighlightedJavaLines() { + return highlightedJavaLines.get(); } - public Set getHighlightedJavaLines() { + public SetProperty highlightedJavaLinesProperty() { return highlightedJavaLines; } - public void setHighlightedJavaLines(Set highlightedJavaLines) { - this.highlightedJavaLines = highlightedJavaLines; + public void setHighlightedJavaLines(ObservableSet highlightedJavaLines) { + this.highlightedJavaLines.set(highlightedJavaLines); } public boolean isClosable() { + return closable.get(); + } + + public BooleanProperty closableProperty() { return closable; } public void setClosable(boolean closable) { - this.closable = closable; + this.closable.set(closable); + } + + public boolean isIsInterpreterTab() { + return isInterpreterTab.get(); } - public boolean isInterpreterTab() { + public BooleanProperty isInterpreterTabProperty() { return isInterpreterTab; } - public void setInterpreterTab(boolean interpreterTab) { - isInterpreterTab = interpreterTab; + public void setIsInterpreterTab(boolean isInterpreterTab) { + this.isInterpreterTab.set(isInterpreterTab); } } diff --git a/src/main/resources/DebuggerMain.fxml b/src/main/resources/DebuggerMain.fxml index cb1fab2f9fe0e9da9955910230b26c5f5e789ded..c3e9de8e573d874887abb0a880ac4e440095c717 100644 --- a/src/main/resources/DebuggerMain.fxml +++ b/src/main/resources/DebuggerMain.fxml @@ -27,7 +27,7 @@ tabClosingPolicy="SELECTED_TAB" VBox.vgrow="ALWAYS"/> - + --> @@ -56,6 +56,13 @@ + + + + + + + diff --git a/src/main/resources/edu/kit/formal/gui/controls/BreakpointDialog.fxml b/src/main/resources/edu/kit/formal/gui/controls/BreakpointDialog.fxml index 9614555bebd0c956f41621287435a06f348d1b6c..985f0437544b695cff4f2b3114e7ac2204448e93 100644 --- a/src/main/resources/edu/kit/formal/gui/controls/BreakpointDialog.fxml +++ b/src/main/resources/edu/kit/formal/gui/controls/BreakpointDialog.fxml @@ -10,7 +10,8 @@ - +
diff --git a/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTab.fxml b/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTab.fxml index 5d4ced56bc55c5a845fc3ce9a71dea5494c5d4d9..97337292dce1c45ed9c9ceeffabd3b562b8164be 100644 --- a/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTab.fxml +++ b/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTab.fxml @@ -24,30 +24,18 @@
- - - - - - - - - -
- -
-
- -
- -
-
-
-
+ + + + +
+ +
+
diff --git a/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTabPane.fxml b/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTabPane.fxml index 00eebcba161944b204084f84c211528620566668..eb1073f33f20d3930fdb05780c70a6f9bf688d19 100644 --- a/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTabPane.fxml +++ b/src/main/resources/edu/kit/formal/gui/controls/InspectionViewTabPane.fxml @@ -1,7 +1,7 @@ - + + type="InspectionViewsController" xmlns="http://javafx.com/javafx/8.0.112"> \ No newline at end of file diff --git a/src/main/resources/edu/kit/formal/gui/controls/WelcomePane.fxml b/src/main/resources/edu/kit/formal/gui/controls/WelcomePane.fxml index cd6d946d17ad893df02620333a24e1af580025e2..1251c47ab5b6a6d23dc343916ef8b1ad8b5c0b0d 100644 --- a/src/main/resources/edu/kit/formal/gui/controls/WelcomePane.fxml +++ b/src/main/resources/edu/kit/formal/gui/controls/WelcomePane.fxml @@ -5,56 +5,73 @@ - + -