Changeset 2655 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/changeset
- Timestamp:
- 2009-12-19T10:47:49+01:00 (14 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListModel.java
r2616 r2655 9 9 import java.util.List; 10 10 import java.util.Set; 11 import java.util.logging.Logger;12 11 13 12 import javax.swing.DefaultListModel; … … 20 19 import org.openstreetmap.josm.data.osm.DataSet; 21 20 import org.openstreetmap.josm.data.osm.OsmPrimitive; 21 import org.openstreetmap.josm.data.osm.Storage; 22 22 23 23 public class ChangesetListModel extends DefaultListModel implements ChangesetCacheListener{ 24 static private final Logger logger = Logger.getLogger(ChangesetListModel.class.getName());24 //static private final Logger logger = Logger.getLogger(ChangesetListModel.class.getName()); 25 25 26 26 private final List<Changeset> data = new ArrayList<Changeset>(); 27 private final Storage<Changeset> shownChangesets = new Storage<Changeset>(); 27 28 private DefaultListSelectionModel selectionModel; 28 29 … … 63 64 } 64 65 66 protected void addChangeset(Changeset changeset) { 67 if (shownChangesets.add(changeset)) { 68 setChangesets(shownChangesets); 69 updateModel(); 70 } 71 } 72 73 protected void removeChangeset(Changeset changeset) { 74 if (shownChangesets.remove(changeset)) { 75 setChangesets(shownChangesets); 76 updateModel(); 77 } 78 } 79 65 80 protected void setChangesets(Collection<Changeset> changesets) { 81 shownChangesets.clear(); 82 if (changesets != null) { 83 shownChangesets.addAll(changesets); 84 } 85 updateModel(); 86 } 87 88 private void updateModel() { 66 89 Set<Changeset> sel = getSelectedChangesets(); 67 90 data.clear(); 68 if (changesets == null) { 69 fireContentsChanged(this, 0, getSize()); 70 return; 71 } 72 data.addAll(changesets); 91 data.addAll(shownChangesets); 73 92 ChangesetCache cache = ChangesetCache.getInstance(); 74 93 for (Changeset cs: data) { -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetsInActiveDataLayerListModel.java
r2652 r2655 4 4 import javax.swing.DefaultListSelectionModel; 5 5 6 import org.openstreetmap.josm.Main; 7 import org.openstreetmap.josm.gui.MapView; 8 import org.openstreetmap.josm.gui.layer.DataChangeListener; 9 import org.openstreetmap.josm.gui.layer.Layer; 10 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 6 import org.openstreetmap.josm.data.osm.Changeset; 7 import org.openstreetmap.josm.data.osm.OsmPrimitive; 8 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent; 9 import org.openstreetmap.josm.data.osm.event.ChangesetIdChangedEvent; 10 import org.openstreetmap.josm.data.osm.event.DataChangedEvent; 11 import org.openstreetmap.josm.data.osm.event.DataSetListener; 12 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent; 13 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent; 14 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent; 15 import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent; 16 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 17 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 11 18 12 public class ChangesetsInActiveDataLayerListModel extends ChangesetListModel implements MapView.LayerChangeListener, DataChangeListener{19 public class ChangesetsInActiveDataLayerListModel extends ChangesetListModel implements DataSetListener { 13 20 14 21 public ChangesetsInActiveDataLayerListModel(DefaultListSelectionModel selectionModel) { … … 16 23 } 17 24 18 /* ---------------------------------------------------------------------------- */ 19 /* Interface LayerChangeListener */ 20 /* ---------------------------------------------------------------------------- */ 21 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 22 if (oldLayer != null && oldLayer instanceof OsmDataLayer) { 23 OsmDataLayer l = (OsmDataLayer)oldLayer; 24 l.listenerDataChanged.remove(this); 25 } 26 if (newLayer == null) { 27 setChangesets(null); 28 } else if (newLayer instanceof OsmDataLayer){ 29 OsmDataLayer l = (OsmDataLayer)newLayer; 30 l.listenerDataChanged.add(this); 31 initFromDataSet(l.data); 32 } else { 33 setChangesets(null); 25 public void dataChanged(DataChangedEvent event) { 26 initFromPrimitives(event.getPrimitives()); 27 } 28 29 public void nodeMoved(NodeMovedEvent event) {/* ignored */} 30 31 public void primtivesAdded(PrimitivesAddedEvent event) { 32 for (OsmPrimitive primitive:event.getPrimitives()) { 33 addChangeset(new Changeset(primitive.getChangesetId())); 34 34 } 35 35 } 36 public void layerAdded(Layer newLayer) {}37 public void layerRemoved(Layer oldLayer) {}38 36 39 /* ---------------------------------------------------------------------------- */ 40 /* Interface DataChangeListener */ 41 /* ---------------------------------------------------------------------------- */ 42 public void dataChanged(OsmDataLayer l) { 43 if (l == null) return; 44 if (l != Main.main.getEditLayer()) return; 45 initFromDataSet(l.data); 37 public void primtivesRemoved(PrimitivesRemovedEvent event) { 38 for (OsmPrimitive primitive:event.getPrimitives()) { 39 removeChangeset(new Changeset(primitive.getChangesetId())); 40 } 46 41 } 42 43 public void relationMembersChanged(RelationMembersChangedEvent event) {/* ignored */} 44 45 public void tagsChanged(TagsChangedEvent event) {/* ignored */} 46 47 public void otherDatasetChange(AbstractDatasetChangedEvent event) { 48 if (event instanceof ChangesetIdChangedEvent) { 49 ChangesetIdChangedEvent e = (ChangesetIdChangedEvent) event; 50 removeChangeset(new Changeset(e.getOldChangesetId())); 51 addChangeset(new Changeset(e.getNewChangesetId())); 52 } 53 } 54 55 public void wayNodesChanged(WayNodesChangedEvent event) {/* ignored */} 56 47 57 }
Note:
See TracChangeset
for help on using the changeset viewer.