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) {/* ignored */} 038 039 @Override 040 public void primitivesRemoved(PrimitivesRemovedEvent event) {/* ignored */} 041 042 @Override 043 public void otherDatasetChange(AbstractDatasetChangedEvent event) {/* ignored */} 044 045 @Override 046 public void nodeMoved(NodeMovedEvent event) {/* ignored */} 047 048 @Override 049 public void relationMembersChanged(RelationMembersChangedEvent event) {/* ignored */} 050 051 @Override 052 public void tagsChanged(TagsChangedEvent event) {/* ignored */} 053 054 @Override 055 public void wayNodesChanged(WayNodesChangedEvent event) {/* ignored */} 056 057 /* ------------------------------------------------------------------------------ */ 058 /* interface EditLayerListener */ 059 /* ------------------------------------------------------------------------------ */ 060 @Override 061 public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer) { 062 // just init the model content. Don't register as DataSetListener. The mode 063 // is already registered to receive DataChangedEvents from the current 064 // edit layer 065 if (newLayer != null) { 066 initFromDataSet(newLayer.data); 067 } else { 068 initFromDataSet(null); 069 } 070 } 071}