001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.dialogs.changeset; 003 004import javax.swing.DefaultListSelectionModel; 005 006import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent; 007import org.openstreetmap.josm.data.osm.event.DataChangedEvent; 008import org.openstreetmap.josm.data.osm.event.DataSetListener; 009import org.openstreetmap.josm.data.osm.event.NodeMovedEvent; 010import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent; 011import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent; 012import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent; 013import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 014import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 015import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 016import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 017import org.openstreetmap.josm.gui.layer.OsmDataLayer; 018 019/** 020 * This is the list model for the list of changeset in the current edit layer. 021 * 022 */ 023public class ChangesetsInActiveDataLayerListModel extends ChangesetListModel implements DataSetListener, ActiveLayerChangeListener { 024 025 public ChangesetsInActiveDataLayerListModel(DefaultListSelectionModel selectionModel) { 026 super(selectionModel); 027 } 028 029 /* ------------------------------------------------------------------------------ */ 030 /* interface DataSetListener */ 031 /* ------------------------------------------------------------------------------ */ 032 @Override 033 public void dataChanged(DataChangedEvent event) { 034 initFromDataSet(event.getDataset()); 035 } 036 037 @Override 038 public void primitivesAdded(PrimitivesAddedEvent event) { 039 // ignored 040 } 041 042 @Override 043 public void primitivesRemoved(PrimitivesRemovedEvent event) { 044 // ignored 045 } 046 047 @Override 048 public void otherDatasetChange(AbstractDatasetChangedEvent event) { 049 // ignored 050 } 051 052 @Override 053 public void nodeMoved(NodeMovedEvent event) { 054 // ignored 055 } 056 057 @Override 058 public void relationMembersChanged(RelationMembersChangedEvent event) { 059 // ignored 060 } 061 062 @Override 063 public void tagsChanged(TagsChangedEvent event) { 064 // ignored 065 } 066 067 @Override 068 public void wayNodesChanged(WayNodesChangedEvent event) { 069 // ignored 070 } 071 072 /* ------------------------------------------------------------------------------ */ 073 /* interface ActiveLayerChangeListener */ 074 /* ------------------------------------------------------------------------------ */ 075 @Override 076 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 077 // just init the model content. Don't register as DataSetListener. The mode 078 // is already registered to receive DataChangedEvents from the current edit layer 079 OsmDataLayer editLayer = e.getSource().getEditLayer(); 080 if (editLayer != null) { 081 initFromDataSet(editLayer.data); 082 } else { 083 initFromDataSet(null); 084 } 085 } 086}