@Override public void mousePressed(java.awt.event.MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e)) { ZonePoint zp = new ScreenPoint(e.getX(), e.getY()).convertToZone(renderer); int x = zp.x - renderer.getZone().getGrid().getOffsetX(); int y = zp.y - renderer.getZone().getGrid().getOffsetY(); dragOffsetX = x % renderer.getZone().getGrid().getSize(); dragOffsetY = y % renderer.getZone().getGrid().getSize(); } else { super.mousePressed(e); } }
//// // MOUSE @Override public void mousePressed(MouseEvent e) { Label label = renderer.getLabelAt(e.getX(), e.getY()); if (label != selectedLabel) { selectedNewLabel = true; renderer.repaint(); } else { selectedNewLabel = false; } if (label != null) { ScreenPoint sp = ScreenPoint.fromZonePoint(renderer, label.getX(), label.getY()); dragOffsetX = (int) (e.getX() - sp.x); dragOffsetY = (int) (e.getY() - sp.y); } super.mousePressed(e); }
@Override protected void installKeystrokes(Map<KeyStroke, Action> actionMap) { super.installKeystrokes(actionMap); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), new AbstractAction() { public void actionPerformed(ActionEvent e) { if (selectedLabel != null) { renderer.getZone().removeLabel(selectedLabel.getId()); MapTool.serverCommand() .removeLabel(renderer.getZone().getId(), selectedLabel.getId()); selectedLabel = null; repaint(); } } }); }
/* * (non-Javadoc) * * @see maptool.client.Tool#detachFrom(maptool.client.ZoneRenderer) */ @Override protected void detachFrom(ZoneRenderer renderer) { AppState.setShowGrid(oldShowGrid); MapTool.getFrame().hideControlPanel(); renderer.repaint(); // Commit the grid size change Zone zone = renderer.getZone(); MapTool.serverCommand() .setZoneGridSize( zone.getId(), zone.getGrid().getOffsetX(), zone.getGrid().getOffsetY(), zone.getGrid().getSize(), zone.getGridColor()); super.detachFrom(renderer); }
/* * (non-Javadoc) * * @see maptool.client.Tool#attachTo(maptool.client.ZoneRenderer) */ @Override protected void attachTo(ZoneRenderer renderer) { oldShowGrid = AppState.isShowGrid(); AppState.setShowGrid(true); Grid grid = renderer.getZone().getGrid(); boolean showSecond = grid.getCapabilities().isSecondDimensionAdjustmentSupported() ? true : false; gridSecondDimension.setVisible(showSecond); gridSecondDimensionLabel.setVisible(showSecond); MapTool.getFrame().showControlPanel(controlPanel); renderer.repaint(); super.attachTo(renderer); copyGridToControlPanel(); }
@Override public void mouseDragged(MouseEvent e) { super.mouseDragged(e); if (!isDragging) { // Setup Label label = renderer.getLabelAt(e.getX(), e.getY()); if (selectedLabel == null || selectedLabel != label) { selectedLabel = label; } if (selectedLabel == null || SwingUtilities.isRightMouseButton(e)) { return; } } isDragging = true; ZonePoint zp = new ScreenPoint(e.getX() - dragOffsetX, e.getY() - dragOffsetY).convertToZone(renderer); selectedLabel.setX(zp.x); selectedLabel.setY(zp.y); renderer.repaint(); }
@Override public void mouseReleased(MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e)) { if (!isDragging) { Label label = renderer.getLabelAt(e.getX(), e.getY()); if (label == null) { if (selectedLabel == null) { ZonePoint zp = new ScreenPoint(e.getX(), e.getY()).convertToZone(renderer); label = new Label("", zp.x, zp.y); selectedLabel = label; } else { selectedLabel = null; renderer.repaint(); return; } } else { if (selectedNewLabel) { selectedLabel = label; renderer.repaint(); return; } } EditLabelDialog dialog = new EditLabelDialog(label); dialog.setVisible(true); if (!dialog.isAccepted()) { return; } renderer.getZone().putLabel(label); } if (selectedLabel != null) { MapTool.serverCommand().putLabel(renderer.getZone().getId(), selectedLabel); renderer.repaint(); } } isDragging = false; super.mouseReleased(e); }
//// // MOUSE MOTION LISTENER @Override public void mouseDragged(java.awt.event.MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e)) { ZonePoint zp = new ScreenPoint(e.getX(), e.getY()).convertToZone(renderer); int x = zp.x - dragOffsetX; int y = zp.y - dragOffsetY; int gridSize = renderer.getZone().getGrid().getSize(); x %= gridSize; y %= gridSize; if (x > 0) x -= gridSize; if (y > 0) y -= gridSize; renderer.getZone().getGrid().setOffset(x, y); // renderer.repaint(); copyGridToControlPanel(); } else { super.mouseDragged(e); } }
@Override protected void installKeystrokes(Map<KeyStroke, Action> actionMap) { super.installKeystrokes(actionMap); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_UP, KeyEvent.SHIFT_DOWN_MASK), new GridSizeAction(Size.Decrease)); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.SHIFT_DOWN_MASK), new GridSizeAction(Size.Decrease)); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, KeyEvent.SHIFT_DOWN_MASK), new GridSizeAction(Size.Increase)); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.SHIFT_DOWN_MASK), new GridSizeAction(Size.Increase)); actionMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), new GridOffsetAction(Direction.Up)); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), new GridOffsetAction(Direction.Left)); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), new GridOffsetAction(Direction.Down)); actionMap.put( KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0), new GridOffsetAction(Direction.Right)); }
@Override protected void detachFrom(ZoneRenderer renderer) { renderer.setCursor(Cursor.getDefaultCursor()); super.detachFrom(renderer); }
@Override protected void attachTo(ZoneRenderer renderer) { renderer.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR)); super.attachTo(renderer); selectedLabel = null; }