public class HistoryBrowserModel extends java.util.Observable implements MapView.LayerChangeListener, DataSetListener
History
of a specific OsmPrimitive
History
called the PointInTimeType.REFERENCE_POINT_IN_TIME
History
called the PointInTimeType.CURRENT_POINT_IN_TIME
HistoryBrowser
always compares the PointInTimeType.REFERENCE_POINT_IN_TIME
with the
PointInTimeType.CURRENT_POINT_IN_TIME
.
This model provides various TableModel
s for JTable
s 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 Way
getRelationMemberTableModel(PointInTimeType)
replies a TableModel
for the list of relation
members of the two selected versions (if the current history provides information about a Relation
HistoryBrowser
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 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 final HistoryBrowserModel.VersionTableModel versionTableModel
private final HistoryBrowserModel.TagTableModel currentTagTableModel
private final HistoryBrowserModel.TagTableModel referenceTagTableModel
private final DiffTableModel currentRelationMemberTableModel
private final DiffTableModel referenceRelationMemberTableModel
private final DiffTableModel referenceNodeListTableModel
private final DiffTableModel currentNodeListTableModel
public HistoryBrowserModel()
public HistoryBrowserModel(History history)
history
- the history. Must not be null.java.lang.IllegalArgumentException
- if history is nullpublic History getHistory()
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)
pointInTimeType
- the type of the point in time (must not be null)java.lang.IllegalArgumentException
- if pointInTimeType is nullpublic DiffTableModel getNodeListTableModel(PointInTimeType pointInTimeType)
public DiffTableModel getRelationMemberTableModel(PointInTimeType pointInTimeType)
public void setReferencePointInTime(HistoryOsmPrimitive reference)
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
- if reference is nulljava.lang.IllegalStateException
- 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)
,
PointInTimeType
public void setCurrentPointInTime(HistoryOsmPrimitive current)
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
- if reference is null
java.lang.IllegalStateException
- 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)
,
PointInTimeType
public HistoryOsmPrimitive getCurrentPointInTime()
PointInTimeType.CURRENT_POINT_IN_TIME
PointInTimeType.CURRENT_POINT_IN_TIME
(may be null)public HistoryOsmPrimitive getReferencePointInTime()
PointInTimeType.REFERENCE_POINT_IN_TIME
PointInTimeType.REFERENCE_POINT_IN_TIME
(may be null)public HistoryOsmPrimitive getPointInTime(PointInTimeType type)
type
- the type of the point in time (must not be null)java.lang.IllegalArgumentException
- 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)
DataSetListener
nodeMoved
in interface DataSetListener
event
- The event for the node that was moved.public void primitivesAdded(PrimitivesAddedEvent event)
DataSetListener
primitivesAdded
in interface DataSetListener
event
- An event for an collection of newly-visible primitivespublic void primitivesRemoved(PrimitivesRemovedEvent event)
DataSetListener
primitivesRemoved
in interface DataSetListener
event
- An event for an collection of newly-invisible primitivespublic void relationMembersChanged(RelationMembersChangedEvent event)
DataSetListener
relationMembersChanged
in interface DataSetListener
event
- The event for the relation that was modified.public void tagsChanged(TagsChangedEvent event)
DataSetListener
tagsChanged
in interface DataSetListener
event
- the event for the primitive, whose tags were affected.public void wayNodesChanged(WayNodesChangedEvent event)
DataSetListener
wayNodesChanged
in interface DataSetListener
event
- The event for the way that was modified.public void dataChanged(DataChangedEvent event)
DataSetListener
DataSetListener.dataChanged(DataChangedEvent event)
is called.dataChanged
in interface DataSetListener
event
- data change eventpublic void otherDatasetChange(AbstractDatasetChangedEvent event)
DataSetListener
otherDatasetChange
in interface DataSetListener
event
- the event for data modificationpublic void activeLayerChange(Layer oldLayer, Layer newLayer)
MapView.LayerChangeListener
activeLayerChange
in interface MapView.LayerChangeListener
oldLayer
- The previous active layernewLayer
- The new activer layerpublic void layerAdded(Layer newLayer)
MapView.LayerChangeListener
layerAdded
in interface MapView.LayerChangeListener
newLayer
- The new added layerpublic void layerRemoved(Layer oldLayer)
MapView.LayerChangeListener
layerRemoved
in interface MapView.LayerChangeListener
oldLayer
- The old removed layer