// Handle mouse actions public void mousePressed(MouseEvent mouseEvent) { if (this.isArmed() && this.isUseRubberBand() && mouseEvent.getButton() == MouseEvent.BUTTON1) { if ((mouseEvent.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) != 0) { if (!mouseEvent.isControlDown()) { this.setActive(true); measureTool.addControlPoint(); if (measureTool.getControlPoints().size() == 1) { measureTool.addControlPoint(); // Simulate a second click } // Set the rubber band target to the last control point or the relevant control for // regular shapes. if (measureTool.isRegularShape()) { String initControl = measureTool.getShapeInitialControl(measureTool.getWwd().getCurrentPosition()); rubberBandTarget = measureTool.getControlPoint(initControl); } else { rubberBandTarget = (MeasureTool.ControlPoint) measureTool.getControlPoints().get(measureTool.getControlPoints().size() - 1); } measureTool.firePropertyChange(MeasureTool.EVENT_RUBBERBAND_START, null, null); } } mouseEvent.consume(); } else if (!this.isArmed() && mouseEvent.getButton() == MouseEvent.BUTTON1 && mouseEvent.isAltDown()) { if (!this.measureTool.isRegularShape()) { this.setMoving(true); this.movingTarget = this.lastPickedObject; } mouseEvent.consume(); } }
@Override public void mousePressed(MouseEvent me) { x = me.getX(); y = me.getY(); altDown = me.isAltDown() || me.isAltGraphDown(); undo = (me.getButton() == MouseEvent.BUTTON3) || altDown; ctrlDown = me.isControlDown() || me.isMetaDown(); shiftDown = me.isShiftDown(); first = true; if (!oneShot) { if (timer == null) { timer = new Timer( delay, e -> { Point worldCoords = view.viewToWorld((int) x, (int) y); tick(worldCoords.x, worldCoords.y, undo, first, 1.0f); view.updateStatusBar(worldCoords.x, worldCoords.y); first = false; }); timer.setInitialDelay(0); timer.start(); // start = System.currentTimeMillis(); } } else { Point worldCoords = view.viewToWorld((int) x, (int) y); tick(worldCoords.x, worldCoords.y, undo, true, 1.0f); view.updateStatusBar(worldCoords.x, worldCoords.y); Dimension dimension = getDimension(); if (dimension != null) { dimension.armSavePoint(); } logOperation(undo ? statisticsKeyUndo : statisticsKey); } }
public void mouseClicked(MouseEvent e) { details = String.format("You clicked %d", e.getClickCount()); // isMetaDown() = what kind mouse is used now? one button or two // button or more? if (e.isMetaDown()) details += "with right mouse button"; else if (e.isAltDown()) details += "with center mouse button"; else details += "with left mouse"; statusBar.setText(details); }
void setRoiModState(MouseEvent e, Roi roi, int handle) { if (roi == null || (handle >= 0 && roi.modState == Roi.NO_MODS)) return; if (roi.state == Roi.CONSTRUCTING) return; int tool = Toolbar.getToolId(); if (tool > Toolbar.FREEROI && tool != Toolbar.WAND && tool != Toolbar.POINT) { roi.modState = Roi.NO_MODS; return; } if (e.isShiftDown()) roi.modState = Roi.ADD_TO_ROI; else if (e.isAltDown()) roi.modState = Roi.SUBTRACT_FROM_ROI; else roi.modState = Roi.NO_MODS; // IJ.log("setRoiModState: "+roi.modState+" "+ roi.state); }
// Handle mouse motion public void mouseDragged(MouseEvent mouseEvent) { if (measureTool == null) return; if (this.isActive() && this.isArmed() && (mouseEvent.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) != 0) { // Don't update the control point here because the wwd current cursor position will not // have been updated to reflect the current mouse position. Wait to update in the // position listener, but consume the event so the view doesn't respond to it. mouseEvent.consume(); } else if (!this.isArmed() && this.isMoving() && (mouseEvent.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) != 0 && mouseEvent.isAltDown()) { // Consume the ALT+Drag mouse event to ensure the View does not respond to it. Don't update // the control // point here because the wwd current cursor position will not have been updated to reflect // the current // mouse position. Wait to update in the position listener, but consume the event so the view // doesn't // respond to it. mouseEvent.consume(); } }
private void onMouseDown(MouseEvent e) { if (_tile != getTile(e)) return; // Remember mouse down location. int x = _xdown = e.getX(); int y = _ydown = e.getY(); // What segment and point, if any, was clicked? int[] i = {0, 0}, p = {0, 0}; int icode = getSegmentAndPoint(x, y, i, p); int is = i[0], ip = i[1]; int xp = p[0], yp = p[1]; // trace("onMouseDown: is="+is+" ip="+ip); // If currently in the process of creating a new segment, ... if (_creating) { // If mouse is on previous (selected) point in the created segment, // then end segment creation. if (icode == 1 && isSelected(is, ip)) { _creating = false; } // Else append a new point to the created segment. else { is = _isSelected; ip = appendPoint(x, y); selectPoint(is, ip); addMotionListener(); } } // Else if not currently in the process of creating a new segment, ... else { // If mouse on existing point, ... if (icode == 1) { // If alt key down, delete the point. if (e.isAltDown()) { selectPoint(is, ip); removeSelectedPoint(); } // Else, select the point else { selectPoint(is, ip); addMotionListener(); } } // Else if mouse on existing segment, ... else if (icode == 2) { // If shift key down, add a new point to existing segment. if (e.isShiftDown()) { insertPoint(is, ip, x, y); selectPoint(is, ip); addMotionListener(); } } // Else if mouse down away from all segments, ... else { // If shift key down, create a new segment. if (e.isShiftDown()) { is = appendSegment(x, y); ip = 0; selectPoint(is, ip); addMotionListener(); _creating = true; } // Else deselect all points. else { deselect(); } } } updateAll(); }
@Override public void mouseMoved(MouseEvent me) { altDown = me.isAltDown() || me.isAltGraphDown(); ctrlDown = me.isControlDown() || me.isMetaDown(); shiftDown = me.isShiftDown(); }
public void mousePressed(MouseEvent e) { // if (ij==null) return; showCursorStatus = true; int toolID = Toolbar.getToolId(); ImageWindow win = imp.getWindow(); if (win != null && win.running2 && toolID != Toolbar.MAGNIFIER) { if (win instanceof StackWindow) ((StackWindow) win).setAnimate(false); else win.running2 = false; return; } int x = e.getX(); int y = e.getY(); flags = e.getModifiers(); // IJ.log("Mouse pressed: " + e.isPopupTrigger() + " " + ij.modifiers(flags)); // if (toolID!=Toolbar.MAGNIFIER && e.isPopupTrigger()) { if (toolID != Toolbar.MAGNIFIER && (e.isPopupTrigger() || (!IJ.isMacintosh() && (flags & Event.META_MASK) != 0))) { handlePopupMenu(e); return; } int ox = offScreenX(x); int oy = offScreenY(y); xMouse = ox; yMouse = oy; if (IJ.spaceBarDown()) { // temporarily switch to "hand" tool of space bar down setupScroll(ox, oy); return; } if (showAllROIs) { Roi roi = imp.getRoi(); if (!(roi != null && (roi.contains(ox, oy) || roi.isHandle(x, y) >= 0)) && roiManagerSelect(x, y)) return; } if (customRoi && overlay != null) return; switch (toolID) { case Toolbar.MAGNIFIER: if (IJ.shiftKeyDown()) zoomToSelection(ox, oy); else if ((flags & (Event.ALT_MASK | Event.META_MASK | Event.CTRL_MASK)) != 0) { // IJ.run("Out"); zoomOut(x, y); if (getMagnification() < 1.0) imp.repaintWindow(); } else { // IJ.run("In"); zoomIn(x, y); if (getMagnification() <= 1.0) imp.repaintWindow(); } break; case Toolbar.HAND: setupScroll(ox, oy); break; case Toolbar.DROPPER: setDrawingColor(ox, oy, IJ.altKeyDown()); break; case Toolbar.WAND: Roi roi = imp.getRoi(); if (roi != null && roi.contains(ox, oy)) { Rectangle r = roi.getBounds(); if (r.width == imageWidth && r.height == imageHeight) imp.killRoi(); else if (!e.isAltDown()) { handleRoiMouseDown(e); return; } } if (roi != null) { int handle = roi.isHandle(x, y); if (handle >= 0) { roi.mouseDownInHandle(handle, x, y); return; } } setRoiModState(e, roi, -1); String mode = WandToolOptions.getMode(); double tolerance = WandToolOptions.getTolerance(); int npoints = IJ.doWand(ox, oy, tolerance, mode); if (Recorder.record && npoints > 0) { if (tolerance == 0.0 && mode.equals("Legacy")) Recorder.record("doWand", ox, oy); else Recorder.recordString( "doWand(" + ox + ", " + oy + ", " + tolerance + ", \"" + mode + "\");\n"); } break; case Toolbar.OVAL: if (Toolbar.getBrushSize() > 0) new RoiBrush(); else handleRoiMouseDown(e); break; case Toolbar.SPARE1: case Toolbar.SPARE2: case Toolbar.SPARE3: case Toolbar.SPARE4: case Toolbar.SPARE5: case Toolbar.SPARE6: case Toolbar.SPARE7: case Toolbar.SPARE8: case Toolbar.SPARE9: Toolbar.getInstance().runMacroTool(toolID); break; default: // selection tool handleRoiMouseDown(e); } }