|
@@ -10,6 +10,7 @@ import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
|
import java.util.Set;
|
|
|
+import java.util.logging.Logger;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.swing.JFrame;
|
|
@@ -37,6 +38,9 @@ import holeg.utility.events.Event;
|
|
|
* @author Gruppe14
|
|
|
*/
|
|
|
public class Control {
|
|
|
+ private static final Logger log = Logger.getLogger(Control.class.getName());
|
|
|
+
|
|
|
+
|
|
|
private final CategoryController categoryController;
|
|
|
private final CanvasController canvasController;
|
|
|
private final SaveController saveController;
|
|
@@ -55,6 +59,8 @@ public class Control {
|
|
|
|
|
|
public Event OnCategoryChanged = new Event();
|
|
|
public Event OnSelectionChanged = new Event();
|
|
|
+ public Event OnCanvasUpdate = new Event();
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* Constructor.
|
|
@@ -282,7 +288,7 @@ public class Control {
|
|
|
public void delCanvasObject(AbstractCanvasObject obj, boolean save) {
|
|
|
canvasController.deleteObjectOnCanvas(obj);
|
|
|
if (obj instanceof GroupNode groupnode) {
|
|
|
- canvasController.bfsNodeCleaner(groupnode);
|
|
|
+ canvasController.deleteAllObjectsInGroupNode(groupnode);
|
|
|
}
|
|
|
calculateStateAndVisualForCurrentTimeStep();
|
|
|
if (save) {
|
|
@@ -389,9 +395,8 @@ public class Control {
|
|
|
*/
|
|
|
public void calculateStateAndVisualForTimeStep(int x) {
|
|
|
simulationManager.calculateStateForTimeStep(x, true);
|
|
|
+ OnCanvasUpdate.broadcast();
|
|
|
// TODO(Tom2021-12-2): Convert to Events
|
|
|
- updateOutliner();
|
|
|
- updateFlexWindow();
|
|
|
this.updateCanvas();
|
|
|
}
|
|
|
|
|
@@ -408,7 +413,7 @@ public class Control {
|
|
|
*
|
|
|
* @throws IOException Exception
|
|
|
*/
|
|
|
- public void autoSave() throws IOException {
|
|
|
+ private void autoSave() throws IOException {
|
|
|
autoSaveController.increaseAutoSaveNr();
|
|
|
saveController.writeAutosave(autosaveDir + rand + GuiSettings.autoSaveNr);
|
|
|
if (autoSaveController.allowed()) {
|
|
@@ -420,7 +425,7 @@ public class Control {
|
|
|
try {
|
|
|
autoSave();
|
|
|
} catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
+ log.warning(e.getStackTrace().toString());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -519,30 +524,30 @@ public class Control {
|
|
|
// ========================== MANAGING TRACKED OBJECTS END ================
|
|
|
|
|
|
/**
|
|
|
- * Controlling Nodes of Nodes
|
|
|
+ * Controlling GroupNodes
|
|
|
*/
|
|
|
|
|
|
- public void addUpperNode(String nodeName, GroupNode upperNode, List<AbstractCanvasObject> toGroup) {
|
|
|
- nodeController.doUpperNode(nodeName, upperNode, toGroup);
|
|
|
+ public void addGroupNode(String nodeName, GroupNode groupNode, List<AbstractCanvasObject> toGroup) {
|
|
|
+ nodeController.addGroupNode(nodeName, groupNode, toGroup);
|
|
|
tryAutoSave();
|
|
|
}
|
|
|
|
|
|
- public void ungroupGroupNode(GroupNode node, GroupNode upperNode) {
|
|
|
- nodeController.undoUpperNode(node, upperNode);
|
|
|
+ public void undoGroupNode(GroupNode node, GroupNode groupNode) {
|
|
|
+ nodeController.undoGroupNode(node, groupNode);
|
|
|
tryAutoSave();
|
|
|
}
|
|
|
|
|
|
- public void addObjUpperNode(AbstractCanvasObject object, GroupNode upperNode) {
|
|
|
- nodeController.addObjectInUpperNode(object, upperNode, true);
|
|
|
+ public void addObjectInGroupNode(AbstractCanvasObject object, GroupNode groupNode) {
|
|
|
+ nodeController.addObjectInGroupNode(object, groupNode, true);
|
|
|
tryAutoSave();
|
|
|
}
|
|
|
|
|
|
- public void delObjUpperNode(AbstractCanvasObject object, GroupNode upperNode) {
|
|
|
- nodeController.deleteObjectInUpperNode(object, upperNode);
|
|
|
- if (object instanceof GroupNode groupnode)
|
|
|
- canvasController.bfsNodeCleaner(groupnode);
|
|
|
+ public void deleteObjectInGroupNode(AbstractCanvasObject object, GroupNode groupNode) {
|
|
|
+ nodeController.deleteObjectInGroupNode(object, groupNode);
|
|
|
+ if (object instanceof GroupNode groupnode) {
|
|
|
+ canvasController.deleteAllObjectsInGroupNode(groupnode);
|
|
|
+ }
|
|
|
tryAutoSave();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -552,7 +557,7 @@ public class Control {
|
|
|
* @param by
|
|
|
* @param upperNode
|
|
|
*/
|
|
|
- public void replaceObjUpperNode(AbstractCanvasObject toBeReplaced, AbstractCanvasObject by, GroupNode upperNode) {
|
|
|
+ public void replaceObjectInGroupNode(AbstractCanvasObject toBeReplaced, AbstractCanvasObject by, GroupNode upperNode) {
|
|
|
nodeController.replaceObjectInUpperNode(toBeReplaced, by, upperNode);
|
|
|
tryAutoSave();
|
|
|
}
|
|
@@ -592,13 +597,6 @@ public class Control {
|
|
|
clipboardController.getObjectsInDepth();
|
|
|
}
|
|
|
|
|
|
- public void updateOutliner() {
|
|
|
- this.canvasController.updateOutliner(simulationManager);
|
|
|
- }
|
|
|
-
|
|
|
- public void updateFlexWindow() {
|
|
|
- canvasController.updateFlexWindow();
|
|
|
- }
|
|
|
|
|
|
public void updateCanvas() {
|
|
|
canvasController.updateCanvas();
|