mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-11-19 18:40:17 +00:00
Fixes COOJA Network Visualiser glitch when clicking on a mote
This commit is contained in:
parent
53f4d27af4
commit
af1932de61
@ -155,6 +155,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
|
|||||||
private Position zoomingPosition = null; /* Zooming center position */
|
private Position zoomingPosition = null; /* Zooming center position */
|
||||||
private Point zoomingPixel = null; /* Zooming center pixel */
|
private Point zoomingPixel = null; /* Zooming center pixel */
|
||||||
private boolean moving = false;
|
private boolean moving = false;
|
||||||
|
private Point mouseDownPixel = null; /* Records position of mouse down to differentiate a click from a move */
|
||||||
private Mote movedMote = null;
|
private Mote movedMote = null;
|
||||||
public Mote clickedMote = null;
|
public Mote clickedMote = null;
|
||||||
private long moveStartTime = -1;
|
private long moveStartTime = -1;
|
||||||
@ -813,6 +814,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
|
|||||||
|
|
||||||
if (motes != null && motes.length > 0) {
|
if (motes != null && motes.length > 0) {
|
||||||
/* One of the clicked motes should be moved */
|
/* One of the clicked motes should be moved */
|
||||||
|
mouseDownPixel = new Point(x, y);
|
||||||
clickedMote = motes[0];
|
clickedMote = motes[0];
|
||||||
beginMoveRequest(motes[0], false, false);
|
beginMoveRequest(motes[0], false, false);
|
||||||
}
|
}
|
||||||
@ -902,43 +904,45 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
|
|||||||
|
|
||||||
/* Moving */
|
/* Moving */
|
||||||
if (moving) {
|
if (moving) {
|
||||||
Position newPos = transformPixelToPosition(x, y);
|
if(x != mouseDownPixel.x || y != mouseDownPixel.y) {
|
||||||
|
Position newPos = transformPixelToPosition(x, y);
|
||||||
|
|
||||||
if (!stop) {
|
if (!stop) {
|
||||||
canvas.setCursor(moveCursor);
|
canvas.setCursor(moveCursor);
|
||||||
movedMote.getInterfaces().getPosition().setCoordinates(
|
|
||||||
newPos.getXCoordinate(),
|
|
||||||
newPos.getYCoordinate(),
|
|
||||||
movedMote.getInterfaces().getPosition().getZCoordinate()
|
|
||||||
);
|
|
||||||
repaint();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
/* Restore cursor */
|
|
||||||
canvas.setCursor(Cursor.getDefaultCursor());
|
|
||||||
|
|
||||||
|
|
||||||
/* Move mote */
|
|
||||||
if (moveStartTime < 0 || System.currentTimeMillis() - moveStartTime > 300) {
|
|
||||||
if (moveConfirm) {
|
|
||||||
String options[] = {"Yes", "Cancel"};
|
|
||||||
int returnValue = JOptionPane.showOptionDialog(Visualizer.this,
|
|
||||||
"Move mote to" +
|
|
||||||
"\nX=" + newPos.getXCoordinate() +
|
|
||||||
"\nY=" + newPos.getYCoordinate() +
|
|
||||||
"\nZ=" + movedMote.getInterfaces().getPosition().getZCoordinate(),
|
|
||||||
"Move mote?",
|
|
||||||
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
|
|
||||||
null, options, options[0]);
|
|
||||||
moving = returnValue == JOptionPane.YES_OPTION;
|
|
||||||
}
|
|
||||||
if (moving) {
|
|
||||||
movedMote.getInterfaces().getPosition().setCoordinates(
|
movedMote.getInterfaces().getPosition().setCoordinates(
|
||||||
newPos.getXCoordinate(),
|
newPos.getXCoordinate(),
|
||||||
newPos.getYCoordinate(),
|
newPos.getYCoordinate(),
|
||||||
movedMote.getInterfaces().getPosition().getZCoordinate()
|
movedMote.getInterfaces().getPosition().getZCoordinate()
|
||||||
);
|
);
|
||||||
repaint();
|
repaint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/* Restore cursor */
|
||||||
|
canvas.setCursor(Cursor.getDefaultCursor());
|
||||||
|
|
||||||
|
|
||||||
|
/* Move mote */
|
||||||
|
if (moveStartTime < 0 || System.currentTimeMillis() - moveStartTime > 300) {
|
||||||
|
if (moveConfirm) {
|
||||||
|
String options[] = {"Yes", "Cancel"};
|
||||||
|
int returnValue = JOptionPane.showOptionDialog(Visualizer.this,
|
||||||
|
"Move mote to" +
|
||||||
|
"\nX=" + newPos.getXCoordinate() +
|
||||||
|
"\nY=" + newPos.getYCoordinate() +
|
||||||
|
"\nZ=" + movedMote.getInterfaces().getPosition().getZCoordinate(),
|
||||||
|
"Move mote?",
|
||||||
|
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
|
||||||
|
null, options, options[0]);
|
||||||
|
moving = returnValue == JOptionPane.YES_OPTION;
|
||||||
|
}
|
||||||
|
if (moving) {
|
||||||
|
movedMote.getInterfaces().getPosition().setCoordinates(
|
||||||
|
newPos.getXCoordinate(),
|
||||||
|
newPos.getYCoordinate(),
|
||||||
|
movedMote.getInterfaces().getPosition().getZCoordinate()
|
||||||
|
);
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user