001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.dialogs.changeset;
003
004import java.util.Collection;
005
006import javax.swing.DefaultListSelectionModel;
007
008import org.openstreetmap.josm.data.SelectionChangedListener;
009import org.openstreetmap.josm.data.osm.OsmPrimitive;
010import org.openstreetmap.josm.gui.MapView.EditLayerChangeListener;
011import org.openstreetmap.josm.gui.layer.OsmDataLayer;
012
013public class ChangesetInSelectionListModel extends ChangesetListModel implements SelectionChangedListener, EditLayerChangeListener{
014
015    public ChangesetInSelectionListModel(DefaultListSelectionModel selectionModel) {
016        super(selectionModel);
017    }
018    /* ---------------------------------------------------------------------------- */
019    /* Interface SelectionChangeListener                                            */
020    /* ---------------------------------------------------------------------------- */
021    @Override
022    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
023        initFromPrimitives(newSelection);
024    }
025
026    /* ---------------------------------------------------------------------------- */
027    /* Interface LayerChangeListener                                                */
028    /* ---------------------------------------------------------------------------- */
029    @Override
030    public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer) {
031        if (newLayer == null) {
032            setChangesets(null);
033        } else {
034            initFromPrimitives((newLayer).data.getAllSelected());
035        }
036    }
037}