public class MainLayerManager extends LayerManager
The active layer is the layer the user is currently working on.
The edit layer is an data layer that we currently work with.
Modifier and Type | Class and Description |
---|---|
static class |
MainLayerManager.ActiveLayerChangeEvent
This event is fired whenever the active or the data layer changes.
|
static interface |
MainLayerManager.ActiveLayerChangeListener
This listener listens to changes of the active or the edit layer.
|
static class |
MainLayerManager.LayerAvailabilityEvent
This event is fired for
MainLayerManager.LayerAvailabilityListener |
static interface |
MainLayerManager.LayerAvailabilityListener
A listener that gets informed before any layer is displayed and after all layers are removed.
|
LayerManager.LayerAddEvent, LayerManager.LayerChangeListener, LayerManager.LayerManagerEvent, LayerManager.LayerOrderChangeEvent, LayerManager.LayerRemoveEvent
Modifier and Type | Field and Description |
---|---|
private Layer |
activeLayer
The layer from the layers list that is currently active.
|
private java.util.List<MainLayerManager.ActiveLayerChangeListener> |
activeLayerChangeListeners |
private AbstractOsmDataLayer |
dataLayer
The current active data layer.
|
private java.util.List<MainLayerManager.LayerAvailabilityListener> |
layerAvailabilityListeners |
private OsmDataLayer |
osmDataLayer
The current active OSM data layer.
|
Constructor and Description |
---|
MainLayerManager() |
Modifier and Type | Method and Description |
---|---|
void |
addActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
Adds a active/edit layer change listener
|
void |
addAndFireActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
Adds a active/edit layer change listener.
|
void |
addLayerAvailabilityListener(MainLayerManager.LayerAvailabilityListener listener)
Add a new
MainLayerManager.LayerAvailabilityListener . |
private void |
fireActiveLayerChange(MainLayerManager.ActiveLayerChangeEvent event) |
OsmData<?,?,?,?> |
getActiveData()
Gets the data set of the active data layer.
|
OsmDataLayer |
getActiveDataLayer()
Replies the active data layer.
|
DataSet |
getActiveDataSet()
Gets the data set of the active
OsmDataLayer . |
Layer |
getActiveLayer()
Replies the currently active layer
|
DataSet |
getEditDataSet()
Gets the data set of the active edit layer, if not readOnly.
|
OsmDataLayer |
getEditLayer()
Replies the current edit layer, if present and not readOnly
|
NoteLayer |
getNoteLayer()
Returns the unique note layer, if present.
|
java.util.List<Layer> |
getVisibleLayersInZOrder()
Creates a list of the visible layers in Z-Order, the layer with the lowest Z-Order
first, layer with the highest Z-Order last.
|
void |
invalidateEditLayer()
Invalidates current edit layer, if any.
|
void |
prepareLayerForUpload(OsmDataLayer layer)
Prepares an OsmDataLayer for upload.
|
void |
processLayerAfterUpload(OsmDataLayer layer)
Post upload processing of the OsmDataLayer.
|
protected void |
realAddLayer(Layer layer,
boolean initialZoom)
Add a layer (implementation).
|
protected java.util.Collection<Layer> |
realRemoveSingleLayer(Layer layer)
Remove a single layer from the mapview (implementation).
|
protected void |
realResetState()
Reset all layer manager state (implementation).
|
protected void |
realSetActiveLayer(Layer layer) |
void |
removeActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
Removes an active/edit layer change listener.
|
void |
removeLayerAvailabilityListener(MainLayerManager.LayerAvailabilityListener listener)
Remove an
MainLayerManager.LayerAvailabilityListener . |
void |
setActiveLayer(Layer layer)
Set the active layer, unless the layer is being uploaded.
|
private void |
setActiveLayer(Layer layer,
boolean forceEditLayerUpdate) |
private Layer |
suggestNextActiveLayer(Layer except)
Determines the next active data layer according to the following
rules:
if there is at least one
OsmDataLayer the first one
becomes active
otherwise, the top most layer of any type becomes active
|
addAndFireLayerChangeListener, addLayer, addLayer, addLayerChangeListener, checkContainsLayer, containsLayer, getLayers, getLayersOfType, moveLayer, realMoveLayer, realRemoveLayer, removeAndFireLayerChangeListener, removeLayer, removeLayerChangeListener, resetState
private Layer activeLayer
private AbstractOsmDataLayer dataLayer
private OsmDataLayer osmDataLayer
private final java.util.List<MainLayerManager.ActiveLayerChangeListener> activeLayerChangeListeners
private final java.util.List<MainLayerManager.LayerAvailabilityListener> layerAvailabilityListeners
public MainLayerManager()
public void addActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
listener
- the listener.public void addAndFireActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
listener
- the listener.public void removeActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
listener
- the listener.public void addLayerAvailabilityListener(MainLayerManager.LayerAvailabilityListener listener)
MainLayerManager.LayerAvailabilityListener
.listener
- The listenerpublic void removeLayerAvailabilityListener(MainLayerManager.LayerAvailabilityListener listener)
MainLayerManager.LayerAvailabilityListener
.listener
- The listenerpublic void setActiveLayer(Layer layer)
layer
- The active layer.protected void realSetActiveLayer(Layer layer)
private void setActiveLayer(Layer layer, boolean forceEditLayerUpdate)
private void fireActiveLayerChange(MainLayerManager.ActiveLayerChangeEvent event)
protected void realAddLayer(Layer layer, boolean initialZoom)
LayerManager
realAddLayer
in class LayerManager
layer
- The layer to addinitialZoom
- whether if the mapview must be zoomed at layer projection boundsprotected java.util.Collection<Layer> realRemoveSingleLayer(Layer layer)
LayerManager
realRemoveSingleLayer
in class LayerManager
layer
- The layer to removeprivate Layer suggestNextActiveLayer(Layer except)
OsmDataLayer
the first one
becomes activeexcept
- A layer to ignore.public Layer getActiveLayer()
public OsmDataLayer getEditLayer()
getActiveDataLayer()
public OsmDataLayer getActiveDataLayer()
getEditLayer()
public DataSet getEditDataSet()
null
if there is no edit layer.getActiveDataSet()
public OsmData<?,?,?,?> getActiveData()
null
if there is no active data layer.public DataSet getActiveDataSet()
OsmDataLayer
. The dataset can be read-only.null
if there is no active data layer.getEditDataSet()
public NoteLayer getNoteLayer()
public java.util.List<Layer> getVisibleLayersInZOrder()
The active data layer is pulled above all adjacent data layers.
public void invalidateEditLayer()
protected void realResetState()
LayerManager
realResetState
in class LayerManager
public void prepareLayerForUpload(OsmDataLayer layer)
layer
- The OsmDataLayer to be uploadedpublic void processLayerAfterUpload(OsmDataLayer layer)
layer
- The OsmDataLayer uploaded