/** * Register itself at the given event source. * * @param eventSource The emitter of the mouse events. * @param lassoMode {@code true} to enable lasso mode, {@code false} to disable it. */ public void register(NavigatableComponent eventSource, boolean lassoMode) { this.lassoMode = lassoMode; eventSource.addMouseListener(this); eventSource.addMouseMotionListener(this); selectionEndedListener.addPropertyChangeListener(this); eventSource.addPropertyChangeListener( "scale", new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if (mousePosStart != null) { paintRect(); mousePos = mousePosStart = null; } } }); }