public class SelectionManager extends java.lang.Object implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.beans.PropertyChangeListener
Modifier and Type | Class and Description |
---|---|
static interface |
SelectionManager.SelectionEnded
This is the interface that an user of SelectionManager has to implement
to get informed when a selection closes.
|
Modifier and Type | Field and Description |
---|---|
private boolean |
aspectRatio
Whether the selection rectangle must obtain the aspect ratio of the
drawComponent.
|
private java.awt.Polygon |
lasso |
private boolean |
lassoMode |
private java.awt.Point |
mousePos
Position of the map when the selection rectangle was last drawn.
|
private java.awt.Point |
mousePosStart
Position of the map when the mouse button was pressed.
|
private NavigatableComponent |
nc
The Component, the selection rectangle is drawn onto.
|
private SelectionManager.SelectionEnded |
selectionEndedListener
The listener that receives the events after left mouse button is released.
|
Constructor and Description |
---|
SelectionManager(SelectionManager.SelectionEnded selectionEndedListener,
boolean aspectRatio,
NavigatableComponent navComp)
Create a new SelectionManager.
|
Modifier and Type | Method and Description |
---|---|
java.util.Collection<OsmPrimitive> |
getSelectedObjects(boolean alt)
Return a list of all objects in the selection, respecting the different
modifier.
|
private java.awt.Rectangle |
getSelectionRectangle()
Calculate and return the current selection rectangle
|
void |
mouseClicked(java.awt.event.MouseEvent e) |
void |
mouseDragged(java.awt.event.MouseEvent e)
If the correct button is hold, draw the rectangle.
|
void |
mouseEntered(java.awt.event.MouseEvent e) |
void |
mouseExited(java.awt.event.MouseEvent e) |
void |
mouseMoved(java.awt.event.MouseEvent e) |
void |
mousePressed(java.awt.event.MouseEvent e)
If the correct button, from the "drawing rectangle" mode
|
void |
mouseReleased(java.awt.event.MouseEvent e)
Check the state of the keys and buttons and set the selection accordingly.
|
private void |
paintLasso() |
private void |
paintRect()
Draws a selection rectangle on screen.
|
void |
propertyChange(java.beans.PropertyChangeEvent evt)
If the action goes inactive, remove the selection rectangle from screen
|
private java.awt.Polygon |
rectToPolygon(java.awt.Rectangle r) |
void |
register(NavigatableComponent eventSource,
boolean lassoMode)
Register itself at the given event source.
|
void |
setLassoMode(boolean lassoMode)
Enables or disables the lasso mode.
|
void |
unregister(java.awt.Component eventSource)
Unregister itself from the given event source.
|
private final SelectionManager.SelectionEnded selectionEndedListener
private java.awt.Point mousePosStart
null
, a rectangle is drawn on screen.private java.awt.Point mousePos
private final NavigatableComponent nc
private boolean aspectRatio
private boolean lassoMode
private java.awt.Polygon lasso
public SelectionManager(SelectionManager.SelectionEnded selectionEndedListener, boolean aspectRatio, NavigatableComponent navComp)
selectionEndedListener
- The action listener that receives the event when
the left button is released.aspectRatio
- If true, the selection window must obtain the aspect
ratio of the drawComponent.navComp
- The component, the rectangle is drawn onto.public void register(NavigatableComponent eventSource, boolean lassoMode)
eventSource
- The emitter of the mouse events.lassoMode
- true
to enable lasso mode, false
to disable it.public void unregister(java.awt.Component eventSource)
eventSource
- The emitter of the mouse events.public void mousePressed(java.awt.event.MouseEvent e)
mousePressed
in interface java.awt.event.MouseListener
public void mouseDragged(java.awt.event.MouseEvent e)
mouseDragged
in interface java.awt.event.MouseMotionListener
public void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased
in interface java.awt.event.MouseListener
private void paintRect()
private void paintLasso()
private java.awt.Rectangle getSelectionRectangle()
public void propertyChange(java.beans.PropertyChangeEvent evt)
propertyChange
in interface java.beans.PropertyChangeListener
public java.util.Collection<OsmPrimitive> getSelectedObjects(boolean alt)
alt
- Whether the alt key was pressed, which means select all
objects that are touched, instead those which are completely covered.private java.awt.Polygon rectToPolygon(java.awt.Rectangle r)
public void setLassoMode(boolean lassoMode)
lassoMode
- true
to enable lasso mode, false
to disable it.public void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked
in interface java.awt.event.MouseListener
public void mouseEntered(java.awt.event.MouseEvent e)
mouseEntered
in interface java.awt.event.MouseListener
public void mouseExited(java.awt.event.MouseEvent e)
mouseExited
in interface java.awt.event.MouseListener
public void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved
in interface java.awt.event.MouseMotionListener