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