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 |
---|---|
class |
MainLayerManager.ActiveLayerChangeEvent
This event is fired whenever the active or the edit layer changes.
|
static interface |
MainLayerManager.ActiveLayerChangeListener
This listener listens to changes of the active or the edit layer.
|
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 OsmDataLayer |
editLayer
The edit layer is the current active data layer.
|
Constructor and Description |
---|
MainLayerManager() |
Modifier and Type | Method and Description |
---|---|
void |
addActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener,
boolean initialFire)
Adds a active/edit layer change listener
|
private void |
fireActiveLayerChange(MainLayerManager.ActiveLayerChangeEvent event) |
Layer |
getActiveLayer()
Replies the currently active layer
|
DataSet |
getEditDataSet()
Gets the data set of the active edit layer.
|
OsmDataLayer |
getEditLayer()
Replies the current edit layer, if any
|
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.
|
protected void |
realAddLayer(Layer layer) |
protected void |
realRemoveLayer(Layer layer) |
protected void |
realSetActiveLayer(Layer layer) |
void |
removeActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
Removes an active/edit layer change listener.
|
void |
setActiveLayer(Layer layer)
Set the active layer.
|
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
|
addLayer, addLayerChangeListener, addLayerChangeListener, checkContainsLayer, containsLayer, getLayers, getLayersOfType, moveLayer, realMoveLayer, removeLayer, removeLayerChangeListener, removeLayerChangeListener
private Layer activeLayer
private OsmDataLayer editLayer
private final java.util.List<MainLayerManager.ActiveLayerChangeListener> activeLayerChangeListeners
public MainLayerManager()
public void addActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener, boolean initialFire)
listener
- the listener.initialFire
- fire a fake active-layer-changed-event right after adding
the listener. The previous layers will be null. The listener is notified in the current thread.public void removeActiveLayerChangeListener(MainLayerManager.ActiveLayerChangeListener listener)
listener
- the listener.public 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)
realAddLayer
in class LayerManager
protected void realRemoveLayer(Layer layer)
realRemoveLayer
in class LayerManager
private Layer suggestNextActiveLayer(Layer except)
OsmDataLayer
the first one
becomes activeexcept
- A layer to ignore.public Layer getActiveLayer()
public OsmDataLayer getEditLayer()
public DataSet getEditDataSet()
null
if there is no edit layer.public java.util.List<Layer> getVisibleLayersInZOrder()
The active data layer is pulled above all adjacent data layers.