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.DataSet; 010import org.openstreetmap.josm.data.osm.OsmPrimitive; 011import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent; 012import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener; 013 014public class ChangesetInSelectionListModel extends ChangesetListModel implements SelectionChangedListener, ActiveLayerChangeListener { 015 016 public ChangesetInSelectionListModel(DefaultListSelectionModel selectionModel) { 017 super(selectionModel); 018 } 019 020 /* ---------------------------------------------------------------------------- */ 021 /* Interface SelectionChangeListener */ 022 /* ---------------------------------------------------------------------------- */ 023 @Override 024 public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) { 025 initFromPrimitives(newSelection); 026 } 027 028 /* ---------------------------------------------------------------------------- */ 029 /* Interface LayerChangeListener */ 030 /* ---------------------------------------------------------------------------- */ 031 @Override 032 public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) { 033 DataSet newData = e.getSource().getEditDataSet(); 034 if (newData == null) { 035 setChangesets(null); 036 } else { 037 initFromPrimitives(newData.getAllSelected()); 038 } 039 } 040}