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 lastDrag = null;
|
||||||
Point startPos;
|
Point startPos;
|
||||||
Point lastPos;
|
Point lastPos;
|
||||||
|
Point dragStart = null;
|
||||||
boolean bulkSelectionBegin;
|
boolean bulkSelectionBegin;
|
||||||
Image map = new ImageIcon(MapPanel.class.getResource("/assets/images/map.png")).getImage();
|
Image map = new ImageIcon(MapPanel.class.getResource("/assets/images/map.png")).getImage();
|
||||||
Image[] medal = new Image[] {
|
Image[] medal = new Image[] {
|
||||||
@ -90,7 +91,14 @@ public class MapPanel extends JPanel {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent e) {
|
public void mousePressed(MouseEvent e) {
|
||||||
|
if (bulkSelectionBegin && startPos == null) {
|
||||||
|
startPos = screenToMap(e.getPoint());
|
||||||
|
bulkSelectionBegin = false;
|
||||||
|
repaint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
lastDrag = e.getPoint();
|
lastDrag = e.getPoint();
|
||||||
|
dragStart = lastDrag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -108,6 +116,10 @@ public class MapPanel extends JPanel {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseDragged(MouseEvent e) {
|
public void mouseDragged(MouseEvent e) {
|
||||||
|
if (startPos != null) {
|
||||||
|
lastPos = screenToMap(e.getPoint());
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
if(lastDrag == null) return;
|
if(lastDrag == null) return;
|
||||||
offset.translate((int)(e.getX() - lastDrag.getX()), (int)(e.getY() - lastDrag.getY()));
|
offset.translate((int)(e.getX() - lastDrag.getX()), (int)(e.getY() - lastDrag.getY()));
|
||||||
lastDrag = e.getPoint();
|
lastDrag = e.getPoint();
|
||||||
@ -115,13 +127,15 @@ public class MapPanel extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseReleased(MouseEvent e) {
|
||||||
if (bulkSelectionBegin && startPos == null) {
|
if (lastDrag != null && !e.getPoint().equals(dragStart)) {
|
||||||
startPos = screenToMap(e.getPoint());
|
lastDrag = null;
|
||||||
bulkSelectionBegin = false;
|
dragStart = null;
|
||||||
repaint();
|
|
||||||
return;
|
return;
|
||||||
} else if(startPos != null) {
|
}
|
||||||
|
|
||||||
|
dragStart = null;
|
||||||
|
if(startPos != null && !startPos.equals(screenToMap(e.getPoint()))) {
|
||||||
if(e.getButton() == 1) {
|
if(e.getButton() == 1) {
|
||||||
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
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");
|
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;
|
startPos = null;
|
||||||
repaint();
|
repaint();
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseClicked(MouseEvent e) {
|
||||||
Point hover = screenToMap(e.getPoint());
|
Point hover = screenToMap(e.getPoint());
|
||||||
Marker marker = findMarker(hover, zoom);
|
Marker marker = findMarker(hover, zoom);
|
||||||
if(marker == null) return;
|
if(marker == null) return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user