public class SelectionTableModel extends javax.swing.table.AbstractTableModel implements DataSelectionListener, MainLayerManager.ActiveLayerChangeListener, LayerManager.LayerChangeListener
DataSelectionListener.AbstractSelectionEvent, DataSelectionListener.SelectionAddEvent, DataSelectionListener.SelectionChangeEvent, DataSelectionListener.SelectionRemoveEvent, DataSelectionListener.SelectionReplaceEvent, DataSelectionListener.SelectionToggleEvent
Modifier and Type | Field and Description |
---|---|
private java.util.List<OsmPrimitive> |
cache |
private OsmDataLayer |
layer
this selection table model only displays selected primitives in this layer
|
Constructor and Description |
---|
SelectionTableModel(OsmDataLayer layer)
Creates a new
SelectionTableModel for a given layer |
Modifier and Type | Method and Description |
---|---|
void |
activeOrEditLayerChanged(MainLayerManager.ActiveLayerChangeEvent e)
Called whenever the active or edit layer changed.
|
int |
getColumnCount() |
OsmPrimitive |
getPrimitive(int row)
Replies the primitive at row
row in this model |
int |
getRowCount() |
java.util.List<OsmPrimitive> |
getSelection()
Returns the selected primitives.
|
java.lang.Object |
getValueAt(int rowIndex,
int columnIndex) |
void |
layerAdded(LayerManager.LayerAddEvent e)
Notifies this listener that a layer has been added.
|
void |
layerOrderChanged(LayerManager.LayerOrderChangeEvent e)
Notifies this listener that the order of layers was changed.
|
void |
layerRemoving(LayerManager.LayerRemoveEvent e)
Notifies this listener that a alayer was just removed.
|
protected void |
populateSelectedPrimitives(OsmDataLayer layer)
populates the model with the primitives currently selected in
layer |
void |
register()
Registers listeners (selection change and layer change).
|
private void |
selectionChanged(java.util.Collection<? extends OsmPrimitive> newSelection) |
void |
selectionChanged(DataSelectionListener.SelectionChangeEvent event)
Called whenever the selection is changed.
|
void |
unregister()
Unregisters listeners (selection change and layer change).
|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getColumnName, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
private final transient OsmDataLayer layer
private final transient java.util.List<OsmPrimitive> cache
public SelectionTableModel(OsmDataLayer layer)
SelectionTableModel
for a given layerlayer
- the data layer. Must not be null.java.lang.IllegalArgumentException
- if layer is nullpublic void register()
public void unregister()
public int getColumnCount()
getColumnCount
in interface javax.swing.table.TableModel
public int getRowCount()
getRowCount
in interface javax.swing.table.TableModel
public java.lang.Object getValueAt(int rowIndex, int columnIndex)
getValueAt
in interface javax.swing.table.TableModel
public void activeOrEditLayerChanged(MainLayerManager.ActiveLayerChangeEvent e)
MainLayerManager.ActiveLayerChangeListener
You can be sure that this layer is still contained in this set.
Listeners are called in the EDT thread and you can manipulate the layer manager in the current thread.
activeOrEditLayerChanged
in interface MainLayerManager.ActiveLayerChangeListener
e
- The change event.public void layerAdded(LayerManager.LayerAddEvent e)
LayerManager.LayerChangeListener
Listeners are called in the EDT thread. You should not do blocking or long-running tasks in this method.
layerAdded
in interface LayerManager.LayerChangeListener
e
- The new added layer eventpublic void layerRemoving(LayerManager.LayerRemoveEvent e)
LayerManager.LayerChangeListener
Listeners are called in the EDT thread after the layer was removed.
Use LayerManager.LayerRemoveEvent.scheduleRemoval(Collection)
to remove more layers.
You should not do blocking or long-running tasks in this method.
layerRemoving
in interface LayerManager.LayerChangeListener
e
- The layer to be removed (as event)public void layerOrderChanged(LayerManager.LayerOrderChangeEvent e)
LayerManager.LayerChangeListener
Listeners are called in the EDT thread. You should not do blocking or long-running tasks in this method.
layerOrderChanged
in interface LayerManager.LayerChangeListener
e
- The order change event.public void selectionChanged(DataSelectionListener.SelectionChangeEvent event)
DataSelectionListener
selectionChanged
in interface DataSelectionListener
event
- The selection change event.DataSelectionListener.SelectionChangeEvent
private void selectionChanged(java.util.Collection<? extends OsmPrimitive> newSelection)
public java.util.List<OsmPrimitive> getSelection()
protected void populateSelectedPrimitives(OsmDataLayer layer)
layer
layer
- the data layerpublic OsmPrimitive getPrimitive(int row)
row
in this modelrow
- the rowrow
in this modeljava.lang.ArrayIndexOutOfBoundsException
- if index is invalid