public class HistoryBrowserModel extends java.util.Observable implements MapView.LayerChangeListener, DataSetListener
History of a specific OsmPrimitiveHistory called the PointInTimeType.REFERENCE_POINT_IN_TIMEHistory called the PointInTimeType.CURRENT_POINT_IN_TIMEHistoryBrowser always compares the PointInTimeType.REFERENCE_POINT_IN_TIME with the
PointInTimeType.CURRENT_POINT_IN_TIME.
This model provides various TableModels for JTables used in HistoryBrowser, for
instance:
getTagTableModel(PointInTimeType) replies a TableModel for the tags of either of
the two selected versionsgetNodeListTableModel(PointInTimeType) replies a TableModel for the list of nodes of
the two selected versions (if the current history provides information about a WaygetRelationMemberTableModel(PointInTimeType) replies a TableModel for the list of relation
members of the two selected versions (if the current history provides information about a RelationHistoryBrowser| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
HistoryBrowserModel.HistoryPrimitiveBuilder
Creates a
HistoryOsmPrimitive from a OsmPrimitive |
class |
HistoryBrowserModel.TagTableModel
The table model for the tags of the version at
PointInTimeType.REFERENCE_POINT_IN_TIME
or PointInTimeType.CURRENT_POINT_IN_TIME |
class |
HistoryBrowserModel.VersionTableModel
The table model for the list of versions in the current history
|
| Modifier and Type | Field and Description |
|---|---|
private HistoryOsmPrimitive |
current |
private DiffTableModel |
currentNodeListTableModel |
private DiffTableModel |
currentRelationMemberTableModel |
private HistoryBrowserModel.TagTableModel |
currentTagTableModel |
private History |
history
the history of an OsmPrimitive
|
private HistoryOsmPrimitive |
latest
latest isn't a reference of history.
|
private HistoryOsmPrimitive |
reference |
private DiffTableModel |
referenceNodeListTableModel |
private DiffTableModel |
referenceRelationMemberTableModel |
private HistoryBrowserModel.TagTableModel |
referenceTagTableModel |
private HistoryBrowserModel.VersionTableModel |
versionTableModel |
| Constructor and Description |
|---|
HistoryBrowserModel()
constructor
|
HistoryBrowserModel(History history)
Creates a new history browser model for a given history.
|
| Modifier and Type | Method and Description |
|---|---|
void |
activeLayerChange(Layer oldLayer,
Layer newLayer)
Notifies this listener that the active layer has changed.
|
protected boolean |
canShowAsLatest(OsmPrimitive primitive) |
void |
dataChanged(DataChangedEvent event)
Called after big changes in dataset.
|
protected void |
fireModelChange() |
HistoryOsmPrimitive |
getCurrentPointInTime()
Replies the history OSM primitive for the
PointInTimeType.CURRENT_POINT_IN_TIME |
History |
getHistory()
replies the history managed by this model
|
DiffTableModel |
getNodeListTableModel(PointInTimeType pointInTimeType) |
HistoryOsmPrimitive |
getPointInTime(PointInTimeType type)
replies the history OSM primitive for a given point in time
|
HistoryOsmPrimitive |
getReferencePointInTime()
Replies the history OSM primitive for the
PointInTimeType.REFERENCE_POINT_IN_TIME |
DiffTableModel |
getRelationMemberTableModel(PointInTimeType pointInTimeType) |
HistoryBrowserModel.TagTableModel |
getTagTableModel(PointInTimeType pointInTimeType)
replies the tag table model for the respective point in time
|
HistoryBrowserModel.VersionTableModel |
getVersionTableModel()
Replies the table model to be used in a
JTable which
shows the list of versions in this history. |
protected boolean |
hasNewNodes(Way way) |
protected void |
initMemberListTableModels() |
protected void |
initNodeListTableModels()
Should be called everytime either reference of current changes to update the diff.
|
protected void |
initTagTableModels() |
boolean |
isLatest(HistoryOsmPrimitive primitive)
Returns true if
primitive is the latest primitive
representing the version currently edited in the current data
layer. |
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.
|
void |
relationMembersChanged(RelationMembersChangedEvent event)
A relation's members have changed.
|
void |
setCurrentPointInTime(HistoryOsmPrimitive current)
Sets the
HistoryOsmPrimitive which plays the role of the current point
in time (see PointInTimeType). |
void |
setHistory(History history)
sets the history to be managed by this model
|
protected void |
setLatest(HistoryOsmPrimitive latest) |
void |
setReferencePointInTime(HistoryOsmPrimitive reference)
Sets the
HistoryOsmPrimitive which plays the role of a reference point
in time (see PointInTimeType). |
void |
tagsChanged(TagsChangedEvent event)
There was some change in the tag set of a primitive.
|
void |
unlinkAsListener()
Removes this model as listener for data change and layer change
events.
|
void |
wayNodesChanged(WayNodesChangedEvent event)
A way's node list was changed.
|
private HistoryOsmPrimitive reference
private HistoryOsmPrimitive current
private HistoryOsmPrimitive latest
OsmPrimitive in the current edit layer.private HistoryBrowserModel.VersionTableModel versionTableModel
private HistoryBrowserModel.TagTableModel currentTagTableModel
private HistoryBrowserModel.TagTableModel referenceTagTableModel
private DiffTableModel currentRelationMemberTableModel
private DiffTableModel referenceRelationMemberTableModel
private DiffTableModel referenceNodeListTableModel
private DiffTableModel currentNodeListTableModel
public HistoryBrowserModel()
public HistoryBrowserModel(History history)
history - the history. Must not be null.java.lang.IllegalArgumentException - thrown if history is nullpublic History getHistory()
protected boolean hasNewNodes(Way way)
protected boolean canShowAsLatest(OsmPrimitive primitive)
public void setHistory(History history)
history - the historyprotected void fireModelChange()
public HistoryBrowserModel.VersionTableModel getVersionTableModel()
JTable which
shows the list of versions in this history.protected void initTagTableModels()
protected void initNodeListTableModels()
protected void initMemberListTableModels()
public HistoryBrowserModel.TagTableModel getTagTableModel(PointInTimeType pointInTimeType) throws java.lang.IllegalArgumentException
pointInTimeType - the type of the point in time (must not be null)java.lang.IllegalArgumentException - thrown, if pointInTimeType is nullpublic DiffTableModel getNodeListTableModel(PointInTimeType pointInTimeType) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic DiffTableModel getRelationMemberTableModel(PointInTimeType pointInTimeType) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic void setReferencePointInTime(HistoryOsmPrimitive reference) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
HistoryOsmPrimitive which plays the role of a reference point
in time (see PointInTimeType).reference - the reference history primitive. Must not be null.java.lang.IllegalArgumentException - thrown if reference is nulljava.lang.IllegalStateException - thrown if this model isn't a assigned a history yetjava.lang.IllegalArgumentException - if reference isn't an history primitive for the history managed by this modesetHistory(History),
PointInTimeTypepublic void setCurrentPointInTime(HistoryOsmPrimitive current) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException
HistoryOsmPrimitive which plays the role of the current point
in time (see PointInTimeType).current - the reference history primitive. Must not be null.java.lang.IllegalArgumentException - thrown if reference is nulljava.lang.IllegalStateException - thrown if this model isn't a assigned a history yetjava.lang.IllegalArgumentException - if reference isn't an history primitive for the history managed by this modesetHistory(History),
PointInTimeTypepublic HistoryOsmPrimitive getCurrentPointInTime()
PointInTimeType.CURRENT_POINT_IN_TIMEPointInTimeType.CURRENT_POINT_IN_TIME (may be null)public HistoryOsmPrimitive getReferencePointInTime()
PointInTimeType.REFERENCE_POINT_IN_TIMEPointInTimeType.REFERENCE_POINT_IN_TIME (may be null)public HistoryOsmPrimitive getPointInTime(PointInTimeType type) throws java.lang.IllegalArgumentException
type - the type of the point in time (must not be null)java.lang.IllegalArgumentException - thrown, if type is nullpublic boolean isLatest(HistoryOsmPrimitive primitive)
primitive is the latest primitive
representing the version currently edited in the current data
layer.primitive - the primitive to checkprimitive is the latest primitiveprotected void setLatest(HistoryOsmPrimitive latest)
public void unlinkAsListener()
public void nodeMoved(NodeMovedEvent event)
DataSetListenernodeMoved in interface DataSetListenerevent - The event for the node that was moved.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 relationMembersChanged(RelationMembersChangedEvent event)
DataSetListenerrelationMembersChanged in interface DataSetListenerevent - The event for the relation that was modified.public void tagsChanged(TagsChangedEvent event)
DataSetListenertagsChanged in interface DataSetListenerevent - the event for the primitive, whose tags were affected.public void wayNodesChanged(WayNodesChangedEvent event)
DataSetListenerwayNodesChanged in interface DataSetListenerevent - The event for the way that was modified.public void dataChanged(DataChangedEvent event)
DataSetListenerDataSetListener.dataChanged(DataChangedEvent event) is called.dataChanged in interface DataSetListenerpublic void otherDatasetChange(AbstractDatasetChangedEvent event)
DataSetListenerotherDatasetChange in interface DataSetListenerevent - the event for data modificationpublic 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 layer