|
@@ -30,11 +30,16 @@ import classes.CpsObject;
|
|
import classes.HolonElement;
|
|
import classes.HolonElement;
|
|
import classes.HolonObject;
|
|
import classes.HolonObject;
|
|
import classes.HolonSwitch;
|
|
import classes.HolonSwitch;
|
|
|
|
+import classes.HolonTransformer;
|
|
import ui.controller.Control;
|
|
import ui.controller.Control;
|
|
import ui.model.Model;
|
|
import ui.model.Model;
|
|
import ui.model.idCounter;
|
|
import ui.model.idCounter;
|
|
|
|
|
|
class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ private static final long serialVersionUID = 1L;
|
|
private Image img = null; // Contains the image to draw on MyCanvas
|
|
private Image img = null; // Contains the image to draw on MyCanvas
|
|
private int x = 0;
|
|
private int x = 0;
|
|
private int y = 0;
|
|
private int y = 0;
|
|
@@ -93,16 +98,18 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
|
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
|
g2.setRenderingHints(rh);
|
|
g2.setRenderingHints(rh);
|
|
|
|
|
|
- // Selection
|
|
|
|
- if (selectRect != null && controller.searchByID(model.getSelectedObjectID()) != null
|
|
|
|
- && controller.searchByID(model.getSelectedObjectID()).getClass() != CpsNode.class) {
|
|
|
|
- g2.setColor(Color.BLUE);
|
|
|
|
- g2.fillRect((int) selectRect.getX(), (int) selectRect.getY(), (int) selectRect.getWidth(),
|
|
|
|
- (int) selectRect.getHeight());
|
|
|
|
- }
|
|
|
|
|
|
+ // Supplied Highlighting
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * // Selection if (selectRect != null &&
|
|
|
|
+ * controller.searchByID(model.getSelectedObjectID()) != null &&
|
|
|
|
+ * controller.searchByID(model.getSelectedObjectID()).getClass() !=
|
|
|
|
+ * CpsNode.class) { g2.setColor(Color.BLUE); g2.fillRect((int)
|
|
|
|
+ * selectRect.getX(), (int) selectRect.getY(), (int)
|
|
|
|
+ * selectRect.getWidth(), (int) selectRect.getHeight()); }
|
|
|
|
+ */
|
|
// drawEdges
|
|
// drawEdges
|
|
- //g2.setColor(Color.BLACK);
|
|
|
|
|
|
+ // g2.setColor(Color.BLACK);
|
|
if (drawEdge) {
|
|
if (drawEdge) {
|
|
g2.setStroke(new BasicStroke(2));
|
|
g2.setStroke(new BasicStroke(2));
|
|
g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
|
|
g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
|
|
@@ -112,14 +119,14 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
for (CpsEdge con : model.getEdgesOnCanvas()) {
|
|
for (CpsEdge con : model.getEdgesOnCanvas()) {
|
|
if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
|
|
if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
|
|
&& con != edgeHighlight) {
|
|
&& con != edgeHighlight) {
|
|
- if(con.getFlow()<=con.getCapacity()){
|
|
|
|
- g2.setColor(Color.BLACK);
|
|
|
|
- g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
|
|
|
|
- }else{
|
|
|
|
|
|
+ if (con.getFlow() <= con.getCapacity()) {
|
|
|
|
+ g2.setColor(Color.BLACK);
|
|
|
|
+ g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
|
|
|
|
+ } else {
|
|
g2.setColor(Color.RED);
|
|
g2.setColor(Color.RED);
|
|
g2.setStroke(new BasicStroke(2));
|
|
g2.setStroke(new BasicStroke(2));
|
|
}
|
|
}
|
|
- g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
|
|
|
|
|
|
+ g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
|
|
con.getA().getPosition().y + controller.getScaleDiv2(),
|
|
con.getA().getPosition().y + controller.getScaleDiv2(),
|
|
con.getB().getPosition().x + controller.getScaleDiv2(),
|
|
con.getB().getPosition().x + controller.getScaleDiv2(),
|
|
con.getB().getPosition().y + controller.getScaleDiv2());
|
|
con.getB().getPosition().y + controller.getScaleDiv2());
|
|
@@ -133,9 +140,9 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
if (model.getSelectedObjectID() > 0) {
|
|
if (model.getSelectedObjectID() > 0) {
|
|
g2.setColor(Color.BLUE);
|
|
g2.setColor(Color.BLUE);
|
|
for (CpsEdge con : model.getEdgesOnCanvas()) {
|
|
for (CpsEdge con : model.getEdgesOnCanvas()) {
|
|
- if(con.getFlow()<=con.getCapacity()){
|
|
|
|
- g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
|
|
|
|
- }else{
|
|
|
|
|
|
+ if (con.getFlow() <= con.getCapacity()) {
|
|
|
|
+ g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
|
|
|
|
+ } else {
|
|
g2.setStroke(new BasicStroke(2));
|
|
g2.setStroke(new BasicStroke(2));
|
|
}
|
|
}
|
|
if (con.getA().getID() == model.getSelectedObjectID()
|
|
if (con.getA().getID() == model.getSelectedObjectID()
|
|
@@ -166,9 +173,19 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
// Objects
|
|
// Objects
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
if (cps.getID() == model.getSelectedObjectID() && controller.searchByID(model.getSelectedObjectID()) != null
|
|
if (cps.getID() == model.getSelectedObjectID() && controller.searchByID(model.getSelectedObjectID()) != null
|
|
- && controller.searchByID(model.getSelectedObjectID()).getClass() == CpsNode.class) {
|
|
|
|
|
|
+ && controller.searchByID(model.getSelectedObjectID()) instanceof CpsNode) {
|
|
img = new ImageIcon(this.getClass().getResource("/Images/node_selected.png")).getImage();
|
|
img = new ImageIcon(this.getClass().getResource("/Images/node_selected.png")).getImage();
|
|
} else {
|
|
} else {
|
|
|
|
+ if (cps == tempCps) {
|
|
|
|
+ g2.setColor(Color.BLUE);
|
|
|
|
+ g2.fillRect((int) selectRect.getX(), (int) selectRect.getY(), (int) selectRect.getWidth(),
|
|
|
|
+ (int) selectRect.getHeight());
|
|
|
|
+ } else if (cps instanceof HolonObject) {
|
|
|
|
+ g2.setColor(Color.GRAY);
|
|
|
|
+ g2.fillRect(cps.getPosition().x - (controller.getScale() / 20),
|
|
|
|
+ cps.getPosition().y - (controller.getScale() / 20), (int) selectRect.getWidth(),
|
|
|
|
+ (int) selectRect.getHeight());
|
|
|
|
+ }
|
|
File checkPath = new File(cps.getImage());
|
|
File checkPath = new File(cps.getImage());
|
|
if (checkPath.exists()) {
|
|
if (checkPath.exists()) {
|
|
img = new ImageIcon(cps.getImage()).getImage();
|
|
img = new ImageIcon(cps.getImage()).getImage();
|
|
@@ -186,21 +203,17 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
public void mouseClicked(MouseEvent e) {
|
|
public void mouseClicked(MouseEvent e) {
|
|
// If double clicked on a Switch change the Image to on/off
|
|
// If double clicked on a Switch change the Image to on/off
|
|
if (doubleClick() && tempCps != null && tempCps.getClass() == HolonSwitch.class) {
|
|
if (doubleClick() && tempCps != null && tempCps.getClass() == HolonSwitch.class) {
|
|
- ((HolonSwitch)tempCps).switchState();
|
|
|
|
|
|
+ ((HolonSwitch) tempCps).switchState();
|
|
}
|
|
}
|
|
repaint();
|
|
repaint();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void mouseEntered(MouseEvent e) {
|
|
public void mouseEntered(MouseEvent e) {
|
|
- // TODO Auto-generated method stub
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void mouseExited(MouseEvent e) {
|
|
public void mouseExited(MouseEvent e) {
|
|
- // TODO Auto-generated method stub
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -329,8 +342,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
if (tempCps != null) {
|
|
if (tempCps != null) {
|
|
selectRect.setBounds(tempCps.getPosition().x - (controller.getScale() / 20),
|
|
selectRect.setBounds(tempCps.getPosition().x - (controller.getScale() / 20),
|
|
tempCps.getPosition().y - (controller.getScale() / 20),
|
|
tempCps.getPosition().y - (controller.getScale() / 20),
|
|
- controller.getScale() + controller.getScale() / 10,
|
|
|
|
- controller.getScale() + controller.getScale() / 10);
|
|
|
|
|
|
+ controller.getScale() + ((controller.getScale() / 20) * 2),
|
|
|
|
+ controller.getScale() + ((controller.getScale() / 20) * 2));
|
|
|
|
|
|
controller.setSelectedObjectID(tempCps.getID());
|
|
controller.setSelectedObjectID(tempCps.getID());
|
|
} else {
|
|
} else {
|
|
@@ -483,7 +496,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
}
|
|
}
|
|
|
|
|
|
// distance from a point to a line and between both Objects
|
|
// distance from a point to a line and between both Objects
|
|
- if (l.ptLineDistSq(x - model.getScaleDiv2(), y - model.getScaleDiv2()) < 14 && x > lx && x < hx && y > ly
|
|
|
|
|
|
+ if (l.ptLineDistSq(x - model.getScaleDiv2(), y - model.getScaleDiv2()) < 20 && x > lx && x < hx && y > ly
|
|
&& y < hy) {
|
|
&& y < hy) {
|
|
return p;
|
|
return p;
|
|
}
|
|
}
|