summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/gui/graph/controller
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/gui/graph/controller')
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/DeletionController.java16
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/EdgeConstructionController.java3
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/MultiSelectionDragController.java51
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/StartVertexController.java12
-rw-r--r--src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java3
5 files changed, 49 insertions, 36 deletions
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/DeletionController.java b/src/main/java/com/c2kernel/gui/graph/controller/DeletionController.java
index 4a8fb47..d83a588 100644
--- a/src/main/java/com/c2kernel/gui/graph/controller/DeletionController.java
+++ b/src/main/java/com/c2kernel/gui/graph/controller/DeletionController.java
@@ -9,10 +9,11 @@ import java.util.Observer;
import javax.swing.JButton;
-import com.c2kernel.graph.event.SelectionChangedEvent;
import com.c2kernel.graph.model.DirectedEdge;
import com.c2kernel.graph.model.GraphModelManager;
import com.c2kernel.graph.model.Vertex;
+import com.c2kernel.gui.graph.event.SelectionChangedEvent;
+import com.c2kernel.gui.graph.view.GraphPanel;
// The deletion controller is responsible for deleting the present
@@ -29,6 +30,7 @@ import com.c2kernel.graph.model.Vertex;
public class DeletionController extends KeyAdapter implements Observer, ActionListener
{
private GraphModelManager mGraphModelManager = null;
+ private GraphPanel mGraphPanel = null;
private JButton mDeleteButton = null;
@@ -37,6 +39,11 @@ public class DeletionController extends KeyAdapter implements Observer, ActionLi
mGraphModelManager = graphModelManager;
mGraphModelManager.addObserver(this);
}
+
+ public void setGraphPanel(GraphPanel graphPanel)
+ {
+ mGraphPanel = graphPanel;
+ }
public void setDeleteButton(JButton deleteButton)
@@ -63,8 +70,7 @@ public class DeletionController extends KeyAdapter implements Observer, ActionLi
selectedEdge = event.mSelection.mEdge;
selectedVertices = event.mSelection.mVertices;
-
- mDeleteButton.setEnabled((selectedEdge != null) || (selectedVertices != null));
+ mDeleteButton.setEnabled(selectedEdge != null || selectedVertices != null);
}
}
@@ -75,7 +81,7 @@ public class DeletionController extends KeyAdapter implements Observer, ActionLi
{
if(e.getKeyCode() == KeyEvent.VK_DELETE && mGraphModelManager.isEditable())
{
- mGraphModelManager.getModel().deleteSelection();
+ mGraphPanel.deleteSelection();
}
}
@@ -86,7 +92,7 @@ public class DeletionController extends KeyAdapter implements Observer, ActionLi
{
if(mGraphModelManager != null && mGraphModelManager.isEditable())
{
- mGraphModelManager.getModel().deleteSelection();
+ mGraphPanel.deleteSelection();
}
}
}
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/EdgeConstructionController.java b/src/main/java/com/c2kernel/gui/graph/controller/EdgeConstructionController.java
index f76d314..b200991 100644
--- a/src/main/java/com/c2kernel/gui/graph/controller/EdgeConstructionController.java
+++ b/src/main/java/com/c2kernel/gui/graph/controller/EdgeConstructionController.java
@@ -66,7 +66,8 @@ public class EdgeConstructionController extends MouseAdapter implements EditorMo
{
if(mGraphModelManager != null)
{
- mGraphModelManager.getModel().setNewEdgeEndPoint((Point)data);
+ Point mouse = (Point)data;
+ mGraphModelManager.getModel().setNewEdgeEndPoint(new GraphPoint(mouse.x, mouse.y));
}
}
};
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/MultiSelectionDragController.java b/src/main/java/com/c2kernel/gui/graph/controller/MultiSelectionDragController.java
index 2d77996..498f3d9 100644
--- a/src/main/java/com/c2kernel/gui/graph/controller/MultiSelectionDragController.java
+++ b/src/main/java/com/c2kernel/gui/graph/controller/MultiSelectionDragController.java
@@ -8,20 +8,20 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import com.c2kernel.graph.model.DirectedEdge;
-import com.c2kernel.graph.model.ElasticBand;
import com.c2kernel.graph.model.GraphModelManager;
import com.c2kernel.graph.model.GraphPoint;
import com.c2kernel.graph.model.GraphableVertex;
-import com.c2kernel.graph.model.Selection;
import com.c2kernel.graph.model.Vertex;
import com.c2kernel.gui.graph.view.EditorModeListener;
+import com.c2kernel.gui.graph.view.GraphPanel;
public class MultiSelectionDragController
extends MouseAdapter
implements EditorModeListener, KeyListener
{
- private class ResizeInf
+
+ private class ResizeInf
{
public int mMousePressedX = 0;
public int mMousePressedY = 0;
@@ -49,6 +49,7 @@ implements EditorModeListener, KeyListener
}
protected GraphModelManager mGraphModelManager = null;
+ private GraphPanel mGraphPanel = null;
/**********/
@@ -97,7 +98,7 @@ implements EditorModeListener, KeyListener
mResizeInf.mMousePressedX = mousePoint.x;
mResizeInf.mMousePressedY = mousePoint.y;
- mResizeInf.mSelectedVertex = mGraphModelManager.getModel().getSelection().mVertices[0];
+ mResizeInf.mSelectedVertex = mGraphPanel.getSelection().mVertices[0];
mResizeInf.mOldOutline = mResizeInf.mSelectedVertex.getOutlinePoints();
centre = mResizeInf.mSelectedVertex.getCentrePoint();
mResizeInf.mCentreX = centre.x;
@@ -192,7 +193,7 @@ implements EditorModeListener, KeyListener
{
Selection selection = new Selection((DirectedEdge)data, null, 0, 0, 0, 0);
- mGraphModelManager.getModel().setSelection(selection);
+ mGraphPanel.setSelection(selection);
}
};
@@ -211,7 +212,7 @@ implements EditorModeListener, KeyListener
centrePoint.x,
centrePoint.y);
- mGraphModelManager.getModel().setSelection(selection);
+ mGraphPanel.setSelection(selection);
mDispForSelection = new DispForSelection();
mDispForSelection.mXDisp = vertexAndDisp.mXDisp;
mDispForSelection.mYDisp = vertexAndDisp.mYDisp;
@@ -236,13 +237,13 @@ implements EditorModeListener, KeyListener
{
Vertex vertex = (Vertex)data;
- if(mGraphModelManager.getModel().inSelection(vertex))
+ if(mGraphPanel.inSelection(vertex))
{
- mGraphModelManager.getModel().removeFromSelection(vertex);
+ mGraphPanel.removeFromSelection(vertex);
}
else
{
- mGraphModelManager.getModel().addToSelection(vertex);
+ mGraphPanel.addToSelection(vertex);
}
}
};
@@ -253,7 +254,7 @@ implements EditorModeListener, KeyListener
@Override
public void doIt(Object data)
{
- mGraphModelManager.getModel().selectAll();
+ mGraphPanel.selectAll();
}
};
@@ -263,9 +264,10 @@ implements EditorModeListener, KeyListener
@Override
public void doIt(Object data)
{
- Point fixedCorner = (Point)data;
+ Point mouse = (Point)data;
+ GraphPoint fixedCorner = new GraphPoint(mouse.x, mouse.y);
- mGraphModelManager.getModel().setElasticBand(new ElasticBand(fixedCorner, fixedCorner));
+ mGraphPanel.setElasticBand(new ElasticBand(fixedCorner, fixedCorner));
}
};
@@ -279,7 +281,7 @@ implements EditorModeListener, KeyListener
int topLeftX = mousePoint.x - mDispForSelection.mXDisp;
int topLeftY = mousePoint.y - mDispForSelection.mYDisp;
if (mGraphModelManager.isEditable()) {
- mGraphModelManager.getModel().moveAbsoluteSelection(topLeftX, topLeftY);
+ mGraphPanel.moveAbsoluteSelection(topLeftX, topLeftY);
}
}
};
@@ -290,7 +292,8 @@ implements EditorModeListener, KeyListener
@Override
public void doIt(Object data)
{
- mGraphModelManager.getModel().resizeElasticBand((Point)data);
+ Point mouse = (Point)data;
+ mGraphPanel.resizeElasticBand(new GraphPoint(mouse.x, mouse.y));
}
};
@@ -300,7 +303,7 @@ implements EditorModeListener, KeyListener
@Override
public void doIt(Object data)
{
- mGraphModelManager.getModel().selectContentsOfElasticBand();
+ mGraphPanel.selectContentsOfElasticBand();
}
};
@@ -344,8 +347,7 @@ implements EditorModeListener, KeyListener
private Integer mState = kWaiting;
-
- /**************************/
+ /**************************/
/* Event processing logic */
/**************************/
@@ -377,11 +379,12 @@ implements EditorModeListener, KeyListener
/* Public interface */
/********************/
- public void setGraphModelManager(GraphModelManager graphModelManager)
- {
- mGraphModelManager = graphModelManager;
- }
+ public MultiSelectionDragController(GraphModelManager graphModelManager,
+ GraphPanel graphPanel) {
+ mGraphModelManager = graphModelManager;
+ mGraphPanel = graphPanel;
+ }
@Override
public void editorModeChanged(String idOfNewMode)
@@ -448,9 +451,9 @@ implements EditorModeListener, KeyListener
}
else if(vertex != null)
{
- if(mGraphModelManager.getModel().inSelection(vertex))
+ if(mGraphPanel.inSelection(vertex))
{
- selection = mGraphModelManager.getModel().getSelection();
+ selection = mGraphPanel.getSelection();
dispForSelection = new DispForSelection();
dispForSelection.mXDisp = mousePoint.x - selection.mTopLeftX;
dispForSelection.mYDisp = mousePoint.y - selection.mTopLeftY;
@@ -486,7 +489,7 @@ implements EditorModeListener, KeyListener
private boolean onResizePad(GraphPoint mouseGPoint)
{
- Selection selection = mGraphModelManager.getModel().getSelection();
+ Selection selection = mGraphPanel.getSelection();
GraphPoint vertexCentre = null;
int bottomRightX = 0;
int bottomRightY = 0;
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/StartVertexController.java b/src/main/java/com/c2kernel/gui/graph/controller/StartVertexController.java
index e973132..41a53b3 100644
--- a/src/main/java/com/c2kernel/gui/graph/controller/StartVertexController.java
+++ b/src/main/java/com/c2kernel/gui/graph/controller/StartVertexController.java
@@ -7,9 +7,9 @@ import java.util.Observer;
import javax.swing.JButton;
-import com.c2kernel.graph.event.SelectionChangedEvent;
import com.c2kernel.graph.model.GraphModelManager;
import com.c2kernel.graph.model.Vertex;
+import com.c2kernel.gui.graph.event.SelectionChangedEvent;
// The start vertex controller is responsible for selecting
@@ -28,6 +28,7 @@ public class StartVertexController implements Observer, ActionListener
{
private GraphModelManager mGraphModelManager = null;
private JButton mStartButton = null;
+ private Vertex selectedVertex = null;
public void setGraphModelManager(GraphModelManager graphModelManager)
@@ -56,13 +57,14 @@ public class StartVertexController implements Observer, ActionListener
event = (SelectionChangedEvent)arg;
selectedVertices = event.mSelection.mVertices;
- if(selectedVertices == null)
+ if(selectedVertices == null || selectedVertices.length != 1)
{
mStartButton.setEnabled(false);
}
else if (mGraphModelManager.isEditable())
{
- mStartButton.setEnabled(selectedVertices.length == 1);
+ mStartButton.setEnabled(true);
+ selectedVertex = selectedVertices[0];
}
}
}
@@ -71,9 +73,9 @@ public class StartVertexController implements Observer, ActionListener
@Override
public void actionPerformed(ActionEvent ae)
{
- if(mGraphModelManager != null)
+ if(selectedVertex != null)
{
- mGraphModelManager.getModel().setSelectedVertexToBeStart();
+ mGraphModelManager.getModel().setStartVertexId(selectedVertex.getID());
}
}
}
diff --git a/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java b/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java
index 5d5dd5f..849675e 100644
--- a/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java
+++ b/src/main/java/com/c2kernel/gui/graph/controller/VertexConstructionController.java
@@ -4,6 +4,7 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import com.c2kernel.graph.model.GraphModelManager;
+import com.c2kernel.graph.model.GraphPoint;
import com.c2kernel.gui.MainFrame;
import com.c2kernel.gui.graph.view.EditorModeListener;
import com.c2kernel.gui.graph.view.EditorToolBar;
@@ -42,7 +43,7 @@ public class VertexConstructionController extends MouseAdapter implements Editor
if(mCreatingVertices && (mGraphModelManager != null) && (mEditorToolBar != null) && mGraphModelManager.isEditable())
{
try {
- mGraphModelManager.getModel().createVertex(me.getPoint(), mEditorToolBar.getSelectedVertexType());
+ mGraphModelManager.getModel().createVertex(new GraphPoint(me.getPoint().x, me.getPoint().y), mEditorToolBar.getSelectedVertexType());
} catch (Exception e) {
MainFrame.exceptionDialog(e);
}