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.MapView.EditLayerChangeListener; 016import org.openstreetmap.josm.gui.layer.OsmDataLayer; 017 018/** 019 * This is the list model for the list of changeset in the current edit layer. 020 * 021 */ 022public class ChangesetsInActiveDataLayerListModel extends ChangesetListModel implements DataSetListener, EditLayerChangeListener { 023 024 public ChangesetsInActiveDataLayerListModel(DefaultListSelectionModel selectionModel) { 025 super(selectionModel); 026 } 027 028 /* ------------------------------------------------------------------------------ */ 029 /* interface DataSetListener */ 030 /* ------------------------------------------------------------------------------ */ 031 @Override 032 public void dataChanged(DataChangedEvent event) { 033 initFromDataSet(event.getDataset()); 034 } 035 036 @Override 037 public void primitivesAdded(PrimitivesAddedEvent event) { 038 // ignored 039 } 040 041 @Override 042 public void primitivesRemoved(PrimitivesRemovedEvent event) { 043 // ignored 044 } 045 046 @Override 047 public void otherDatasetChange(AbstractDatasetChangedEvent event) { 048 // ignored 049 } 050 051 @Override 052 public void nodeMoved(NodeMovedEvent event) { 053 // ignored 054 } 055 056 @Override 057 public void relationMembersChanged(RelationMembersChangedEvent event) { 058 // ignored 059 } 060 061 @Override 062 public void tagsChanged(TagsChangedEvent event) { 063 // ignored 064 } 065 066 @Override 067 public void wayNodesChanged(WayNodesChangedEvent event) { 068 // ignored 069 } 070 071 /* ------------------------------------------------------------------------------ */ 072 /* interface EditLayerListener */ 073 /* ------------------------------------------------------------------------------ */ 074 @Override 075 public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer) { 076 // just init the model content. Don't register as DataSetListener. The mode 077 // is already registered to receive DataChangedEvents from the current edit layer 078 if (newLayer != null) { 079 initFromDataSet(newLayer.data); 080 } else { 081 initFromDataSet(null); 082 } 083 } 084}