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    /* ---------------------------------------------------------------------------- */
020    /* Interface SelectionChangeListener                                            */
021    /* ---------------------------------------------------------------------------- */
022    @Override
023    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
024        initFromPrimitives(newSelection);
025    }
026
027    /* ---------------------------------------------------------------------------- */
028    /* Interface LayerChangeListener                                                */
029    /* ---------------------------------------------------------------------------- */
030    @Override
031    public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer) {
032        if (newLayer == null) {
033            setChangesets(null);
034        } else {
035            initFromPrimitives((newLayer).data.getAllSelected());
036        }
037    }
038}