public class MemberTableModel extends javax.swing.table.AbstractTableModel implements javax.swing.event.TableModelListener, DataSelectionListener, DataSetListener, OsmPrimitivesTableModel, SortableTableModel<RelationMember>
MemberTable. It holds the member data.DataSelectionListener.AbstractSelectionEvent, DataSelectionListener.SelectionAddEvent, DataSelectionListener.SelectionChangeEvent, DataSelectionListener.SelectionRemoveEvent, DataSelectionListener.SelectionReplaceEvent, DataSelectionListener.SelectionToggleEvent| Modifier and Type | Field and Description |
|---|---|
private java.util.List<WayConnectionType> |
connectionType |
private OsmDataLayer |
layer |
private java.util.concurrent.CopyOnWriteArrayList<IMemberModelListener> |
listeners |
private javax.swing.DefaultListSelectionModel |
listSelectionModel |
private java.util.List<RelationMember> |
members
data of the table model: The list of members and the cached WayConnectionType of each member.
|
private TaggingPresetHandler |
presetHandler |
private Relation |
relation |
private RelationSorter |
relationSorter |
private WayConnectionTypeCalculator |
wayConnectionTypeCalculator |
| Constructor and Description |
|---|
MemberTableModel(Relation relation,
OsmDataLayer layer,
TaggingPresetHandler presetHandler)
constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
addMemberModelListener(IMemberModelListener listener)
Add a new member model listener.
|
void |
addMembersAfterIdx(java.util.List<? extends OsmPrimitive> primitives,
int idx) |
void |
addMembersAtBeginning(java.util.List<? extends OsmPrimitive> primitives) |
void |
addMembersAtEnd(java.util.List<? extends OsmPrimitive> primitives) |
private void |
addMembersAtIndex(java.util.List<? extends OsmPrimitive> primitives,
int index) |
(package private) void |
addMembersAtIndexKeepingOldSelection(java.lang.Iterable<RelationMember> newMembers,
int index) |
void |
addMembersBeforeIdx(java.util.List<? extends OsmPrimitive> primitives,
int idx) |
private int |
addToSelectedMembers(java.util.BitSet selectedIndices)
Add one or more members indices to the selection.
|
void |
applyToRelation(Relation relation)
Applies this member model to the given relation.
|
boolean |
canRemove(int... rows)
Checks that a range of rows can be removed.
|
void |
dataChanged(DataChangedEvent event)
Called after big changes in dataset.
|
protected void |
fireMakeMemberVisible(int index) |
java.util.Set<OsmPrimitive> |
getChildPrimitives(java.util.Collection<? extends OsmPrimitive> referenceSet)
Replies the set of selected referers.
|
int |
getColumnCount() |
java.util.Set<OsmPrimitive> |
getIncompleteMemberPrimitives()
Replies the set of incomplete primitives
|
OsmDataLayer |
getLayer()
Returns the data layer.
|
int |
getNumMembersWithPrimitive(OsmPrimitive primitive)
Replies the number of members which refer to a particular primitive
|
OsmPrimitive |
getReferredPrimitive(int idx)
Gets the primitive at a given row index
|
(package private) RelationMember |
getRelationMemberForPrimitive(OsmPrimitive primitive) |
int |
getRowCount() |
java.util.Collection<OsmPrimitive> |
getSelectedChildPrimitives()
Replies the set of selected referers.
|
java.util.Set<OsmPrimitive> |
getSelectedIncompleteMemberPrimitives()
Replies the set of selected incomplete primitives
|
java.util.Collection<RelationMember> |
getSelectedMembers()
Get the currently selected relation members
|
javax.swing.DefaultListSelectionModel |
getSelectionModel()
Returns the selection model.
|
RelationMember |
getValue(int index)
Get object value at given index.
|
java.lang.Object |
getValueAt(int rowIndex,
int columnIndex) |
(package private) WayConnectionType |
getWayConnection(int i) |
boolean |
hasIncompleteMembers()
Replies true if at least one the relation members is incomplete
|
boolean |
hasIncompleteSelectedMembers()
Replies true if at least one of the selected members is incomplete
|
boolean |
hasMembersReferringTo(java.util.Collection<OsmPrimitive> primitives)
Replies true if there is at least one relation member in this model
which refers to at least on the primitives in
primitives. |
static boolean |
hasMembersReferringTo(java.util.Collection<RelationMember> members,
java.util.Collection<OsmPrimitive> primitives)
Replies true if there is at least one relation member given as
members
which refers to at least on the primitives in primitives. |
boolean |
hasSameMembersAs(Relation relation)
Determines if this model has the same members as the given relation.
|
private void |
invalidateConnectionType() |
boolean |
isCellEditable(int rowIndex,
int columnIndex) |
boolean |
isEditableRelation(int index)
Replies true if the index-th relation members refers
to an editable relation, i.e.
|
boolean |
isInJosmSelection(OsmPrimitive primitive)
Replies true if
primitive is currently selected in the layer this
model is attached to |
boolean |
move(int delta,
int... selectedRows)
Move selected rows by any number of positions, if possible.
|
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 |
populate(Relation relation)
Populates this model from the given relation.
|
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 |
register()
Registers listeners (selection change and dataset change).
|
void |
relationMembersChanged(RelationMembersChangedEvent event)
A relation's members have changed.
|
void |
remove(int... selectedRows)
Remove selected rows, if possible.
|
void |
removeMemberModelListener(IMemberModelListener listener)
Remove a member model listener.
|
void |
removeMembersReferringTo(java.util.List<? extends OsmPrimitive> primitives)
Remove members referring to the given list of primitives.
|
void |
reverse()
Reverse the relation members.
|
void |
selectionChanged(DataSelectionListener.SelectionChangeEvent event)
Called whenever the selection is changed.
|
void |
selectMembersReferringTo(java.util.Collection<? extends OsmPrimitive> primitives)
Selects all members which refer to
OsmPrimitives in the collections
primitmives. |
void |
setSelectedMembers(java.util.Collection<RelationMember> selectedMembers)
Selects the members in the collection selectedMembers
|
void |
setSelectedMembersIdx(java.util.Collection<java.lang.Integer> selectedIndices)
Selects the members in the collection selectedIndices
|
RelationMember |
setValue(int index,
RelationMember value)
Set object value at given index.
|
void |
setValueAt(java.lang.Object value,
int rowIndex,
int columnIndex) |
void |
sort()
Sort the selected relation members by the way they are linked.
|
void |
sortBelow()
Sort the selected relation members and all members below by the way they are linked.
|
void |
tableChanged(javax.swing.event.TableModelEvent e) |
void |
tagsChanged(TagsChangedEvent event)
There was some change in the tag set of a primitive.
|
void |
unregister()
Unregisters listeners (selection change and dataset change).
|
void |
updateRole(int[] idx,
java.lang.String role)
updates the role of the members given by the indices in
idx |
void |
wayNodesChanged(WayNodesChangedEvent event)
A way's node list was changed.
|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getColumnName, getListeners, getTableModelListeners, removeTableModelListenerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcanMove, canMoveDown, canMoveDown, canMoveUp, canMoveUp, getSelectedIndices, moveDown, moveDown, moveUp, moveUpaddTableModelListener, getColumnClass, getColumnName, removeTableModelListenercanMove, canMoveDown, canMoveUp, doMoveprivate final transient java.util.List<RelationMember> members
private transient java.util.List<WayConnectionType> connectionType
private javax.swing.DefaultListSelectionModel listSelectionModel
private final transient java.util.concurrent.CopyOnWriteArrayList<IMemberModelListener> listeners
private final transient OsmDataLayer layer
private final transient TaggingPresetHandler presetHandler
private final transient WayConnectionTypeCalculator wayConnectionTypeCalculator
private final transient RelationSorter relationSorter
public MemberTableModel(Relation relation, OsmDataLayer layer, TaggingPresetHandler presetHandler)
relation - relationlayer - data layerpresetHandler - tagging preset handlerpublic OsmDataLayer getLayer()
public void register()
public void unregister()
public void selectionChanged(DataSelectionListener.SelectionChangeEvent event)
DataSelectionListenerselectionChanged in interface DataSelectionListenerevent - The selection change event.DataSelectionListener.SelectionChangeEventpublic void dataChanged(DataChangedEvent event)
DataSetListenerDataSetListener.dataChanged(DataChangedEvent event) is called.dataChanged in interface DataSetListenerevent - data change eventpublic 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 otherDatasetChange(AbstractDatasetChangedEvent event)
DataSetListenerotherDatasetChange in interface DataSetListenerevent - the event for data modificationpublic void addMemberModelListener(IMemberModelListener listener)
listener - member model listener to addpublic void removeMemberModelListener(IMemberModelListener listener)
listener - member model listener to removeprotected void fireMakeMemberVisible(int index)
public void populate(Relation relation)
relation - relationpublic int getColumnCount()
getColumnCount in interface javax.swing.table.TableModelpublic int getRowCount()
getRowCount in interface javax.swing.table.TableModelpublic java.lang.Object getValueAt(int rowIndex, int columnIndex)
getValueAt in interface javax.swing.table.TableModelpublic boolean isCellEditable(int rowIndex, int columnIndex)
isCellEditable in interface javax.swing.table.TableModelisCellEditable in class javax.swing.table.AbstractTableModelpublic void setValueAt(java.lang.Object value, int rowIndex, int columnIndex)
setValueAt in interface javax.swing.table.TableModelsetValueAt in class javax.swing.table.AbstractTableModelpublic OsmPrimitive getReferredPrimitive(int idx)
OsmPrimitivesTableModelgetReferredPrimitive in interface OsmPrimitivesTableModelidx - The rowpublic boolean move(int delta, int... selectedRows)
ReorderableTableModelmove in interface ReorderableTableModel<RelationMember>delta - negative or positive deltaselectedRows - rows to movetrue if the move was performedReorderableTableModel.canMove(int)public void remove(int... selectedRows)
selectedRows - rows to removecanRemove(int...)public boolean canRemove(int... rows)
rows - indexes of rows to removetrue if rows can be removedpublic javax.swing.DefaultListSelectionModel getSelectionModel()
ReorderableTableModelgetSelectionModel in interface ReorderableTableModel<RelationMember>public RelationMember getValue(int index)
ReorderableModelgetValue in interface ReorderableModel<RelationMember>index - indexpublic RelationMember setValue(int index, RelationMember value)
ReorderableModelsetValue in interface ReorderableModel<RelationMember>index - indexvalue - new valuepublic void removeMembersReferringTo(java.util.List<? extends OsmPrimitive> primitives)
primitives - list of OSM primitivespublic void applyToRelation(Relation relation)
relation - relationpublic boolean hasSameMembersAs(Relation relation)
relation - relationtrue if this model has the same members as relationpublic java.util.Set<OsmPrimitive> getIncompleteMemberPrimitives()
public java.util.Set<OsmPrimitive> getSelectedIncompleteMemberPrimitives()
public boolean hasIncompleteMembers()
public boolean hasIncompleteSelectedMembers()
private void addMembersAtIndex(java.util.List<? extends OsmPrimitive> primitives, int index)
RelationMember getRelationMemberForPrimitive(OsmPrimitive primitive)
void addMembersAtIndexKeepingOldSelection(java.lang.Iterable<RelationMember> newMembers, int index)
public void addMembersAtBeginning(java.util.List<? extends OsmPrimitive> primitives)
public void addMembersAtEnd(java.util.List<? extends OsmPrimitive> primitives)
public void addMembersBeforeIdx(java.util.List<? extends OsmPrimitive> primitives, int idx)
public void addMembersAfterIdx(java.util.List<? extends OsmPrimitive> primitives, int idx)
public int getNumMembersWithPrimitive(OsmPrimitive primitive)
primitive - the primitivepublic void updateRole(int[] idx, java.lang.String role)
idxidx - the array of indicesrole - the new rolepublic java.util.Collection<RelationMember> getSelectedMembers()
public java.util.Collection<OsmPrimitive> getSelectedChildPrimitives()
public java.util.Set<OsmPrimitive> getChildPrimitives(java.util.Collection<? extends OsmPrimitive> referenceSet)
referenceSet - reference setpublic void setSelectedMembers(java.util.Collection<RelationMember> selectedMembers)
selectedMembers - the collection of selected memberspublic void setSelectedMembersIdx(java.util.Collection<java.lang.Integer> selectedIndices)
selectedIndices - the collection of selected member indicesprivate int addToSelectedMembers(java.util.BitSet selectedIndices)
selectedIndices - selected indices as a bitsetpublic boolean isEditableRelation(int index)
index - the indexpublic static boolean hasMembersReferringTo(java.util.Collection<RelationMember> members, java.util.Collection<OsmPrimitive> primitives)
members
which refers to at least on the primitives in primitives.members - the membersprimitives - the collection of primitivesprimitives; false
otherwisepublic boolean hasMembersReferringTo(java.util.Collection<OsmPrimitive> primitives)
primitives.primitives - the collection of primitivesprimitives; false
otherwisepublic void selectMembersReferringTo(java.util.Collection<? extends OsmPrimitive> primitives)
OsmPrimitives in the collections
primitmives. Does nothing is primitives is null.primitives - the collection of primitivespublic boolean isInJosmSelection(OsmPrimitive primitive)
primitive is currently selected in the layer this
model is attached toprimitive - the primitiveprimitive is currently selected in the layer this
model is attached to, false otherwisepublic void sort()
sort in interface SortableModel<RelationMember>public void sortBelow()
WayConnectionType getWayConnection(int i)
public void tableChanged(javax.swing.event.TableModelEvent e)
tableChanged in interface javax.swing.event.TableModelListenerprivate void invalidateConnectionType()
public void reverse()
reverse in interface SortableModel<RelationMember>