// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.dialogs.changeset; import javax.swing.DefaultListSelectionModel; import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent; import org.openstreetmap.josm.data.osm.event.DataChangedEvent; import org.openstreetmap.josm.data.osm.event.DataSetListener; import org.openstreetmap.josm.data.osm.event.NodeMovedEvent; import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent; import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent; import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent; import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; import org.openstreetmap.josm.gui.layer.OsmDataLayer; /** * This is the list model for the list of changeset in the current edit layer. * */ public class ChangesetsInActiveDataLayerListModel extends ChangesetListModel implements DataSetListener, ActiveLayerChangeListener { public ChangesetsInActiveDataLayerListModel(DefaultListSelectionModel selectionModel) { super(selectionModel); } /* ------------------------------------------------------------------------------ */ /* interface DataSetListener */ /* ------------------------------------------------------------------------------ */ @Override public void dataChanged(DataChangedEvent event) { initFromDataSet(event.getDataset()); } @Override public void primitivesAdded(PrimitivesAddedEvent event) { // ignored } @Override public void primitivesRemoved(PrimitivesRemovedEvent event) { // ignored } @Override public void otherDatasetChange(AbstractDatasetChangedEvent event) { // ignored } @Override public void nodeMoved(NodeMovedEvent event) { // ignored } @Override public void relationMembersChanged(RelationMembersChangedEvent event) { // ignored } @Override public void tagsChanged(TagsChangedEvent event) { // ignored } @Override public void wayNodesChanged(WayNodesChangedEvent event) { // ignored } /* ------------------------------------------------------------------------------ */ /* interface ActiveLayerChangeListener */ /* ------------------------------------------------------------------------------ */ @Override public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { // just init the model content. Don't register as DataSetListener. The mode // is already registered to receive DataChangedEvents from the current edit layer OsmDataLayer editLayer = e.getSource().getEditLayer(); if (editLayer != null) { initFromDataSet(editLayer.data); } else { initFromDataSet(null); } } }