public final class MultipolygonCache extends Object implements DataSetListener, MapView.LayerChangeListener, ProjectionChangeListener, SelectionChangedListener
| Modifier and Type | Field and Description |
|---|---|
private Map<NavigatableComponent,Map<DataSet,Map<Relation,Multipolygon>>> |
cache |
private static MultipolygonCache |
instance |
private Collection<Multipolygon.PolyData> |
selectedPolyData |
| Modifier | Constructor and Description |
|---|---|
private |
MultipolygonCache() |
| Modifier and Type | Method and Description |
|---|---|
void |
activeLayerChange(Layer oldLayer,
Layer newLayer)
Notifies this listener that the active layer has changed.
|
void |
clear() |
void |
clear(DataSet ds) |
void |
clear(NavigatableComponent nc) |
void |
dataChanged(DataChangedEvent event)
Called after big changes in dataset.
|
private void |
dispatchEvent(AbstractDatasetChangedEvent event,
Relation r,
Collection<Map<Relation,Multipolygon>> maps) |
Multipolygon |
get(NavigatableComponent nc,
Relation r) |
Multipolygon |
get(NavigatableComponent nc,
Relation r,
boolean forceRefresh) |
static MultipolygonCache |
getInstance() |
private Collection<Map<Relation,Multipolygon>> |
getMapsFor(DataSet ds) |
private static boolean |
isMultipolygon(OsmPrimitive p) |
void |
layerAdded(Layer newLayer)
Notifies this listener that a layer has been added.
|
void |
layerRemoved(Layer oldLayer)
Notifies this listener that a layer has been removed.
|
void |
nodeMoved(NodeMovedEvent event)
A node's coordinates were modified.
|
void |
otherDatasetChange(AbstractDatasetChangedEvent event)
Minor dataset change, currently only changeset id changed is supported, but can
be extended in future.
|
void |
primitivesAdded(PrimitivesAddedEvent event)
A bunch of primitives were added into the DataSet, or existing
deleted/invisible primitives were resurrected.
|
void |
primitivesRemoved(PrimitivesRemovedEvent event)
A bunch of primitives were removed from the DataSet, or preexisting
primitives were marked as deleted.
|
private void |
processEvent(AbstractDatasetChangedEvent event,
Relation r,
Collection<Map<Relation,Multipolygon>> maps) |
void |
projectionChanged(Projection oldValue,
Projection newValue) |
void |
relationMembersChanged(RelationMembersChangedEvent event)
A relation's members have changed.
|
private void |
removeMultipolygonFrom(Relation r,
Collection<Map<Relation,Multipolygon>> maps) |
void |
selectionChanged(Collection<? extends OsmPrimitive> newSelection)
Informs the listener that the selection in the dataset has changed.
|
void |
tagsChanged(TagsChangedEvent event)
There was some change in the tag set of a primitive.
|
private void |
updateMultipolygonsReferringTo(AbstractDatasetChangedEvent event) |
private void |
updateMultipolygonsReferringTo(AbstractDatasetChangedEvent event,
Collection<? extends OsmPrimitive> primitives,
DataSet ds) |
private Collection<Map<Relation,Multipolygon>> |
updateMultipolygonsReferringTo(AbstractDatasetChangedEvent event,
Collection<? extends OsmPrimitive> primitives,
DataSet ds,
Collection<Map<Relation,Multipolygon>> initialMaps) |
void |
wayNodesChanged(WayNodesChangedEvent event)
A way's node list was changed.
|
private static final MultipolygonCache instance
private final Map<NavigatableComponent,Map<DataSet,Map<Relation,Multipolygon>>> cache
private final Collection<Multipolygon.PolyData> selectedPolyData
private MultipolygonCache()
public static final MultipolygonCache getInstance()
public final Multipolygon get(NavigatableComponent nc, Relation r)
public final Multipolygon get(NavigatableComponent nc, Relation r, boolean forceRefresh)
public final void clear(NavigatableComponent nc)
public final void clear()
private final Collection<Map<Relation,Multipolygon>> getMapsFor(DataSet ds)
private static final boolean isMultipolygon(OsmPrimitive p)
private final void updateMultipolygonsReferringTo(AbstractDatasetChangedEvent event)
private final void updateMultipolygonsReferringTo(AbstractDatasetChangedEvent event, Collection<? extends OsmPrimitive> primitives, DataSet ds)
private final Collection<Map<Relation,Multipolygon>> updateMultipolygonsReferringTo(AbstractDatasetChangedEvent event, Collection<? extends OsmPrimitive> primitives, DataSet ds, Collection<Map<Relation,Multipolygon>> initialMaps)
private final void processEvent(AbstractDatasetChangedEvent event, Relation r, Collection<Map<Relation,Multipolygon>> maps)
private final void dispatchEvent(AbstractDatasetChangedEvent event, Relation r, Collection<Map<Relation,Multipolygon>> maps)
private final void removeMultipolygonFrom(Relation r, Collection<Map<Relation,Multipolygon>> maps)
public void primitivesAdded(PrimitivesAddedEvent event)
DataSetListenerprimitivesAdded in interface DataSetListenerevent - An event for an collection of newly-visible primitivespublic void primitivesRemoved(PrimitivesRemovedEvent event)
DataSetListenerprimitivesRemoved in interface DataSetListenerevent - An event for an collection of newly-invisible primitivespublic void tagsChanged(TagsChangedEvent event)
DataSetListenertagsChanged in interface DataSetListenerevent - the event for the primitive, whose tags were affected.public void nodeMoved(NodeMovedEvent event)
DataSetListenernodeMoved in interface DataSetListenerevent - The event for the node that was moved.public void wayNodesChanged(WayNodesChangedEvent event)
DataSetListenerwayNodesChanged in interface DataSetListenerevent - The event for the way that was modified.public void relationMembersChanged(RelationMembersChangedEvent event)
DataSetListenerrelationMembersChanged in interface DataSetListenerevent - The event for the relation that was modified.public void otherDatasetChange(AbstractDatasetChangedEvent event)
DataSetListenerotherDatasetChange in interface DataSetListenerevent - the event for data modificationpublic void dataChanged(DataChangedEvent event)
DataSetListenerDataSetListener.dataChanged(DataChangedEvent event) is called.dataChanged in interface DataSetListenerpublic void activeLayerChange(Layer oldLayer, Layer newLayer)
MapView.LayerChangeListeneractiveLayerChange in interface MapView.LayerChangeListeneroldLayer - The previous active layernewLayer - The new activer layerpublic void layerAdded(Layer newLayer)
MapView.LayerChangeListenerlayerAdded in interface MapView.LayerChangeListenernewLayer - The new added layerpublic void layerRemoved(Layer oldLayer)
MapView.LayerChangeListenerlayerRemoved in interface MapView.LayerChangeListeneroldLayer - The old removed layerpublic void projectionChanged(Projection oldValue, Projection newValue)
projectionChanged in interface ProjectionChangeListenerpublic void selectionChanged(Collection<? extends OsmPrimitive> newSelection)
SelectionChangedListenerselectionChanged in interface SelectionChangedListenernewSelection - The new selection.