|
@@ -1,16 +1,22 @@
|
|
|
package de.tu_darmstadt.informatik.tk.scopviz.ui;
|
|
|
|
|
|
+import de.tu_darmstadt.informatik.tk.scopviz.main.CreateModus;
|
|
|
+import de.tu_darmstadt.informatik.tk.scopviz.main.Main;
|
|
|
import de.tu_darmstadt.informatik.tk.scopviz.main.MainApp;
|
|
|
import javafx.beans.property.ReadOnlyObjectWrapper;
|
|
|
import javafx.beans.value.ObservableValue;
|
|
|
import javafx.collections.FXCollections;
|
|
|
import javafx.collections.ObservableList;
|
|
|
+import javafx.event.EventHandler;
|
|
|
+import javafx.scene.Node;
|
|
|
import javafx.scene.control.CheckBox;
|
|
|
import javafx.scene.control.TableCell;
|
|
|
import javafx.scene.control.TableColumn;
|
|
|
+import javafx.scene.control.TableRow;
|
|
|
import javafx.scene.control.TableView;
|
|
|
import javafx.scene.image.Image;
|
|
|
import javafx.scene.image.ImageView;
|
|
|
+import javafx.scene.input.MouseEvent;
|
|
|
import javafx.util.Callback;
|
|
|
import javafx.util.Pair;
|
|
|
|
|
@@ -43,6 +49,75 @@ public class ToolboxManager {
|
|
|
|
|
|
toolbox.getItems().setAll(data);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Handler for TableRows
|
|
|
+ */
|
|
|
+ public static EventHandler<MouseEvent> rowClickedHandler = new EventHandler<MouseEvent>(){
|
|
|
+
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Override
|
|
|
+ public void handle(MouseEvent event) {
|
|
|
+
|
|
|
+ // Get TbaleRow
|
|
|
+ Node node = ((Node) event.getTarget()).getParent();
|
|
|
+ TableRow<Pair<Object, String>> row;
|
|
|
+
|
|
|
+ if (node instanceof TableRow) {
|
|
|
+ row = (TableRow<Pair<Object, String>>) node;
|
|
|
+ } else {
|
|
|
+ // clicking on text part
|
|
|
+ row = (TableRow<Pair<Object, String>>) node.getParent();
|
|
|
+ }
|
|
|
+
|
|
|
+ Main main = Main.getInstance();
|
|
|
+
|
|
|
+ // Set CreateModus based on pressed TableRow
|
|
|
+ if (! row.isEmpty()) {
|
|
|
+
|
|
|
+ String rowString = row.getItem().getValue();
|
|
|
+
|
|
|
+ if(rowString.equals("Standard")){
|
|
|
+ if(main.getCreateModus().equals(CreateModus.CREATE_STANDARD_NODE))
|
|
|
+ main.setCreateModus(CreateModus.CREATE_NONE);
|
|
|
+ else
|
|
|
+ main.setCreateModus(CreateModus.CREATE_STANDARD_NODE);
|
|
|
+
|
|
|
+ }else if(rowString.equals("Source")){
|
|
|
+ if(main.getCreateModus().equals(CreateModus.CREATE_SOURCE_NODE))
|
|
|
+ main.setCreateModus(CreateModus.CREATE_NONE);
|
|
|
+ else
|
|
|
+ main.setCreateModus(CreateModus.CREATE_SOURCE_NODE);
|
|
|
+
|
|
|
+ }else if(rowString.equals("Sink")){
|
|
|
+ if(main.getCreateModus().equals(CreateModus.CREATE_SINK_NODE))
|
|
|
+ main.setCreateModus(CreateModus.CREATE_NONE);
|
|
|
+ else
|
|
|
+ main.setCreateModus(CreateModus.CREATE_SINK_NODE);
|
|
|
+
|
|
|
+ }else if(rowString.equals("EnProc")){
|
|
|
+ if(main.getCreateModus().equals(CreateModus.CREATE_PROC_NODE))
|
|
|
+ main.setCreateModus(CreateModus.CREATE_NONE);
|
|
|
+ else
|
|
|
+ main.setCreateModus(CreateModus.CREATE_PROC_NODE);
|
|
|
+
|
|
|
+ }else if(rowString.equals("Directed")){
|
|
|
+ if(main.getCreateModus().equals(CreateModus.CREATE_DIRECTED_EDGE))
|
|
|
+ main.setCreateModus(CreateModus.CREATE_NONE);
|
|
|
+ else
|
|
|
+ main.setCreateModus(CreateModus.CREATE_DIRECTED_EDGE);
|
|
|
+
|
|
|
+ }else if(rowString.equals("Undirected")){
|
|
|
+ if(main.getCreateModus().equals(CreateModus.CREATE_UNDIRECTED_EDGE))
|
|
|
+ main.setCreateModus(CreateModus.CREATE_NONE);
|
|
|
+ else
|
|
|
+ main.setCreateModus(CreateModus.CREATE_UNDIRECTED_EDGE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ };
|
|
|
|
|
|
private static Pair<Object, String> pair(Object picture, String name) {
|
|
|
return new Pair<>(picture, name);
|