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
|
java.util.List<GpxData> |
getAllGpxData()
Returns all
GpxData we can get from current layers. |
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, resetStateprivate 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)
LayerManagerrealAddLayer in class LayerManagerlayer - The layer to addinitialZoom - whether if the mapview must be zoomed at layer projection boundsprotected java.util.Collection<Layer> realRemoveSingleLayer(Layer layer)
LayerManagerrealRemoveSingleLayer in class LayerManagerlayer - 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()
LayerManagerrealResetState in class LayerManagerpublic void prepareLayerForUpload(OsmDataLayer layer)
layer - The OsmDataLayer to be uploadedpublic void processLayerAfterUpload(OsmDataLayer layer)
layer - The OsmDataLayer uploadedpublic java.util.List<GpxData> getAllGpxData()
GpxData we can get from current layers.GpxData we can get from current layers