allow dragging to select bulk area while still allowing to click to select the two corners
This commit is contained in:
parent
f9c4f5e685
commit
9e46ad50d0
@ -35,6 +35,7 @@ public class MapPanel extends JPanel {
|
||||
Point lastDrag = null;
|
||||
Point startPos;
|
||||
Point lastPos;
|
||||
Point dragStart = null;
|
||||
boolean bulkSelectionBegin;
|
||||
Image map = new ImageIcon(MapPanel.class.getResource("/assets/images/map.png")).getImage();
|
||||
Image[] medal = new Image[] {
|
||||
@ -90,7 +91,14 @@ public class MapPanel extends JPanel {
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
if (bulkSelectionBegin && startPos == null) {
|
||||
startPos = screenToMap(e.getPoint());
|
||||
bulkSelectionBegin = false;
|
||||
repaint();
|
||||
return;
|
||||
}
|
||||
lastDrag = e.getPoint();
|
||||
dragStart = lastDrag;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -108,6 +116,10 @@ public class MapPanel extends JPanel {
|
||||
|
||||
@Override
|
||||
public void mouseDragged(MouseEvent e) {
|
||||
if (startPos != null) {
|
||||
lastPos = screenToMap(e.getPoint());
|
||||
repaint();
|
||||
}
|
||||
if(lastDrag == null) return;
|
||||
offset.translate((int)(e.getX() - lastDrag.getX()), (int)(e.getY() - lastDrag.getY()));
|
||||
lastDrag = e.getPoint();
|
||||
@ -115,13 +127,15 @@ public class MapPanel extends JPanel {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if (bulkSelectionBegin && startPos == null) {
|
||||
startPos = screenToMap(e.getPoint());
|
||||
bulkSelectionBegin = false;
|
||||
repaint();
|
||||
public void mouseReleased(MouseEvent e) {
|
||||
if (lastDrag != null && !e.getPoint().equals(dragStart)) {
|
||||
lastDrag = null;
|
||||
dragStart = null;
|
||||
return;
|
||||
} else if(startPos != null) {
|
||||
}
|
||||
|
||||
dragStart = null;
|
||||
if(startPos != null && !startPos.equals(screenToMap(e.getPoint()))) {
|
||||
if(e.getButton() == 1) {
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
int result = JOptionPane.showOptionDialog(frame, "What do you want to do?", "Bulk Marking", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[] {"Complete", "Uncomplete", "Cancel"}, "Complete");
|
||||
@ -139,9 +153,11 @@ public class MapPanel extends JPanel {
|
||||
startPos = null;
|
||||
repaint();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
Point hover = screenToMap(e.getPoint());
|
||||
Marker marker = findMarker(hover, zoom);
|
||||
if(marker == null) return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user