- Timestamp:
- 2009-12-12T20:21:36+01:00 (15 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 11 added
- 5 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
r2613 r2622 20 20 21 21 import org.openstreetmap.josm.data.SelectionChangedListener; 22 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent; 23 import org.openstreetmap.josm.data.osm.event.DataChangedEvent; 24 import org.openstreetmap.josm.data.osm.event.DataSetListener; 25 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent; 26 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent; 27 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent; 28 import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent; 29 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 30 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 22 31 23 32 … … 816 825 } 817 826 818 private void fire DataChanged() {827 private void fireEvent(AbstractDatasetChangedEvent event) { 819 828 if (updateCount == 0) { 820 829 for (DataSetListener dsl : listeners) { 821 dsl.dataChanged(); 822 } 823 } 830 event.fire(dsl); 831 } 832 } 833 } 834 835 private void fireDataChanged() { 836 fireEvent(new DataChangedEvent(this)); 824 837 } 825 838 826 839 void firePrimitivesAdded(Collection<? extends OsmPrimitive> added) { 827 if (updateCount == 0) { 828 for (DataSetListener dsl : listeners) { 829 dsl.primtivesAdded(added); 830 } 831 } 840 fireEvent(new PrimitivesAddedEvent(this, added)); 832 841 } 833 842 834 843 void firePrimitivesRemoved(Collection<? extends OsmPrimitive> removed) { 835 if (updateCount == 0) { 836 for (DataSetListener dsl : listeners) { 837 dsl.primtivesRemoved(removed); 838 } 839 } 844 fireEvent(new PrimitivesRemovedEvent(this, removed)); 840 845 } 841 846 842 847 void fireTagsChanged(OsmPrimitive prim) { 843 if (updateCount == 0) { 844 for (DataSetListener dsl : listeners) { 845 dsl.tagsChanged(prim); 846 } 847 } 848 fireEvent(new TagsChangedEvent(this, prim)); 848 849 } 849 850 850 851 void fireRelationMembersChanged(Relation r) { 851 if (updateCount == 0) { 852 for (DataSetListener dsl : listeners) { 853 dsl.relationMembersChanged(r); 854 } 855 } 852 fireEvent(new RelationMembersChangedEvent(this, r)); 856 853 } 857 854 858 855 void fireNodeMoved(Node node) { 859 856 reindexNode(node); 860 if (updateCount == 0) { 861 for (DataSetListener dsl : listeners) { 862 dsl.nodeMoved(node); 863 } 864 } 857 fireEvent(new NodeMovedEvent(this, node)); 865 858 } 866 859 867 860 void fireWayNodesChanged(Way way) { 868 861 reindexWay(way); 869 if (updateCount == 0) { 870 for (DataSetListener dsl : listeners) { 871 dsl.wayNodesChanged(way); 872 } 873 } 862 fireEvent(new WayNodesChangedEvent(this, way)); 874 863 } 875 864 -
trunk/src/org/openstreetmap/josm/data/osm/event/DataSetListener.java
r2620 r2622 20 20 */ 21 21 22 package org.openstreetmap.josm.data.osm; 22 package org.openstreetmap.josm.data.osm.event; 23 23 24 import java.util.Collection;25 24 26 25 /** … … 37 36 * @param added A collection of newly-visible primitives 38 37 */ 39 void primtivesAdded( Collection<? extends OsmPrimitive> added);38 void primtivesAdded(PrimitivesAddedEvent event); 40 39 41 40 /** … … 45 44 * @param removed A collection of newly-invisible primitives 46 45 */ 47 void primtivesRemoved( Collection<? extends OsmPrimitive> removed);46 void primtivesRemoved(PrimitivesRemovedEvent event); 48 47 49 48 /** … … 53 52 * @param prim the primitive, whose tags were affected. 54 53 */ 55 void tagsChanged( OsmPrimitive prim);54 void tagsChanged(TagsChangedEvent event); 56 55 57 56 /** … … 59 58 * @param node The node that was moved. 60 59 */ 61 void nodeMoved(Node node);60 void nodeMoved(NodeMovedEvent event); 62 61 63 62 /** … … 65 64 * @param way The way that was modified. 66 65 */ 67 void wayNodesChanged(Way way);66 void wayNodesChanged(WayNodesChangedEvent event); 68 67 69 68 /** … … 71 70 * @param relation The relation that was modified. 72 71 */ 73 void relationMembersChanged(Relation r);72 void relationMembersChanged(RelationMembersChangedEvent event); 74 73 75 74 /** … … 77 76 * after operation is completed (Dataset.endUpdate()), {@link #dataChanged()} is called. 78 77 */ 79 void dataChanged(); 78 void dataChanged(DataChangedEvent event); 80 79 81 80 } -
trunk/src/org/openstreetmap/josm/gui/MapView.java
r2621 r2622 246 246 if (layer instanceof OsmDataLayer || activeLayer == null) { 247 247 // autoselect the new layer 248 Layer old = activeLayer;249 248 setActiveLayer(layer); 250 fireActiveLayerChanged(old, layer);251 249 } 252 250 layer.addPropertyChangeListener(this); -
trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
r2621 r2622 33 33 34 34 import org.openstreetmap.josm.Main; 35 import org.openstreetmap.josm.data.osm.DataSetListener;36 35 import org.openstreetmap.josm.data.osm.NameFormatter; 37 import org.openstreetmap.josm.data.osm.Node;38 36 import org.openstreetmap.josm.data.osm.OsmPrimitive; 39 37 import org.openstreetmap.josm.data.osm.Relation; 40 38 import org.openstreetmap.josm.data.osm.RelationMember; 41 import org.openstreetmap.josm.data.osm.Way; 39 import org.openstreetmap.josm.data.osm.event.DataChangedEvent; 40 import org.openstreetmap.josm.data.osm.event.DataSetListener; 41 import org.openstreetmap.josm.data.osm.event.DatasetEventManager; 42 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent; 43 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent; 44 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent; 45 import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent; 46 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 47 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 42 48 import org.openstreetmap.josm.gui.DefaultNameFormatter; 43 49 import org.openstreetmap.josm.gui.MapView; 44 50 import org.openstreetmap.josm.gui.OsmPrimitivRenderer; 45 51 import org.openstreetmap.josm.gui.SideButton; 46 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;47 52 import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationTask; 48 53 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor; … … 140 145 MapView.addLayerChangeListener(this); 141 146 MapView.addLayerChangeListener(newAction); 142 // Register as a data set listener for the current edit layer only. 143 // See also activeLayerChanged 144 if (Main.main.getEditLayer() != null) { 145 Main.main.getEditLayer().data.addDataSetListener(this); 146 } 147 dataChanged(); 147 DatasetEventManager.getInstance().addDatasetListener(this, true); 148 dataChanged(Main.main.getEditLayer()); 148 149 } 149 150 … … 151 152 MapView.removeLayerChangeListener(this); 152 153 MapView.removeLayerChangeListener(newAction); 153 // unregistering from *all* data layer is somewhat overkill but it 154 // doesn't harm either. 155 for (OsmDataLayer layer:Main.map.mapView.getLayersOfType(OsmDataLayer.class)) { 156 layer.data.removeDataSetListener(this); 157 } 154 DatasetEventManager.getInstance().removeDatasetListener(this); 158 155 } 159 156 … … 701 698 /* ---------------------------------------------------------------------------------- */ 702 699 public void activeLayerChange(Layer a, Layer b) { 703 initFromLayer(b);704 700 if (a != null && a instanceof OsmDataLayer) { 705 ((OsmDataLayer)a).data.removeDataSetListener(this);706 701 ((OsmDataLayer)a).listenerDataChanged.remove(this); 707 702 } 708 703 if (b != null && b instanceof OsmDataLayer) { 709 ((OsmDataLayer)b).data.addDataSetListener(this);710 704 ((OsmDataLayer)b).listenerDataChanged.add(this); 711 705 } … … 719 713 /* ---------------------------------------------------------------------------------- */ 720 714 721 public void nodeMoved(Node node) {/* irrelevant in this context */} 722 723 public void wayNodesChanged(Way way) {/* irrelevant in this context */} 724 725 public void primtivesAdded(final Collection<? extends OsmPrimitive> added) { 726 Runnable task = new Runnable() { 727 public void run() { 728 model.addRelations(added); 729 } 730 }; 731 if (SwingUtilities.isEventDispatchThread()) { 732 task.run(); 733 } else { 734 SwingUtilities.invokeLater(task); 735 } 736 } 737 738 public void primtivesRemoved(final Collection<? extends OsmPrimitive> removed) { 739 Runnable task = new Runnable() { 740 public void run() { 741 model.removeRelations(removed); 742 } 743 }; 744 if (SwingUtilities.isEventDispatchThread()) { 745 task.run(); 746 } else { 747 SwingUtilities.invokeLater(task); 748 } 749 } 750 751 public void relationMembersChanged(final Relation r) { 752 Runnable task = new Runnable() { 753 public void run() { 754 List<Relation> sel = model.getSelectedRelations(); 755 model.sort(); 756 model.setSelectedRelations(sel); 757 displaylist.repaint(); 758 } 759 }; 760 if (SwingUtilities.isEventDispatchThread()) { 761 task.run(); 762 } else { 763 SwingUtilities.invokeLater(task); 764 } 765 } 766 767 public void tagsChanged(OsmPrimitive prim) { 715 public void nodeMoved(NodeMovedEvent event) {/* irrelevant in this context */} 716 717 public void wayNodesChanged(WayNodesChangedEvent event) {/* irrelevant in this context */} 718 719 public void primtivesAdded(final PrimitivesAddedEvent event) { 720 model.addRelations(event.getPrimitives()); 721 } 722 723 public void primtivesRemoved(final PrimitivesRemovedEvent event) { 724 model.removeRelations(event.getPrimitives()); 725 } 726 727 public void relationMembersChanged(final RelationMembersChangedEvent event) { 728 List<Relation> sel = model.getSelectedRelations(); 729 model.sort(); 730 model.setSelectedRelations(sel); 731 displaylist.repaint(); 732 } 733 734 public void tagsChanged(TagsChangedEvent event) { 735 OsmPrimitive prim = event.getPrimitive(); 768 736 if (prim == null || ! (prim instanceof Relation)) 769 737 return; 770 Runnable task = new Runnable() { 771 public void run() { 772 // trigger a sort of the relation list because the display name may 773 // have changed 774 // 775 List<Relation> sel = model.getSelectedRelations(); 776 model.sort(); 777 model.setSelectedRelations(sel); 778 displaylist.repaint(); 779 } 780 }; 781 if (SwingUtilities.isEventDispatchThread()) { 782 task.run(); 783 } else { 784 SwingUtilities.invokeLater(task); 785 } 786 } 787 788 public void dataChanged() { 738 // trigger a sort of the relation list because the display name may 739 // have changed 740 // 741 List<Relation> sel = model.getSelectedRelations(); 742 model.sort(); 743 model.setSelectedRelations(sel); 744 displaylist.repaint(); 745 } 746 747 public void dataChanged(DataChangedEvent event) { 789 748 Layer l = Main.main.getEditLayer(); 790 749 if (l != null) { -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
r2578 r2622 28 28 import org.openstreetmap.josm.data.SelectionChangedListener; 29 29 import org.openstreetmap.josm.data.coor.EastNorth; 30 import org.openstreetmap.josm.data.osm.DataSetListener;31 30 import org.openstreetmap.josm.data.osm.Node; 32 31 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 34 33 import org.openstreetmap.josm.data.osm.RelationMember; 35 34 import org.openstreetmap.josm.data.osm.Way; 35 import org.openstreetmap.josm.data.osm.event.DataChangedEvent; 36 import org.openstreetmap.josm.data.osm.event.DataSetListener; 37 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent; 38 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent; 39 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent; 40 import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent; 41 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 42 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 36 43 import org.openstreetmap.josm.gui.dialogs.relation.WayConnectionType.Direction; 37 44 import org.openstreetmap.josm.gui.layer.DataChangeListener; … … 88 95 /* Interface DataSetListener */ 89 96 /* --------------------------------------------------------------------------- */ 90 public void dataChanged() { 97 public void dataChanged(DataChangedEvent event) { 91 98 // just trigger a repaint - the display name of the relation members may 92 99 // have changed … … 96 103 } 97 104 98 public void nodeMoved(Node node) {/* ignore */}99 public void primtivesAdded( Collection<? extends OsmPrimitive> added) {/* ignore */}100 101 public void primtivesRemoved( Collection<? extends OsmPrimitive> removed) {105 public void nodeMoved(NodeMovedEvent event) {/* ignore */} 106 public void primtivesAdded(PrimitivesAddedEvent event) {/* ignore */} 107 108 public void primtivesRemoved(PrimitivesRemovedEvent event) { 102 109 // ignore - the relation in the editor might become out of sync with the relation 103 110 // in the dataset. We will deal with it when the relation editor is closed or … … 105 112 } 106 113 107 public void relationMembersChanged(Relation r) {114 public void relationMembersChanged(RelationMembersChangedEvent event) { 108 115 // ignore - the relation in the editor might become out of sync with the relation 109 116 // in the dataset. We will deal with it when the relation editor is closed or … … 111 118 } 112 119 113 public void tagsChanged( OsmPrimitive prim) {120 public void tagsChanged(TagsChangedEvent event) { 114 121 // just refresh the respective table cells 115 122 // 116 123 Collection<RelationMember> sel = getSelectedMembers(); 117 124 for (int i=0; i < members.size();i++) { 118 if (members.get(i).getMember() == prim) {125 if (members.get(i).getMember() == event.getPrimitive()) { 119 126 fireTableCellUpdated(i, 1 /* the column with the primitive name */); 120 127 } … … 123 130 } 124 131 125 public void wayNodesChanged(Way way) {/* ignore */}132 public void wayNodesChanged(WayNodesChangedEvent event) {/* ignore */} 126 133 /* --------------------------------------------------------------------------- */ 127 134 -
trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
r2621 r2622 5 5 6 6 import java.util.ArrayList; 7 import java.util.Collection;8 7 import java.util.Collections; 9 8 import java.util.HashSet; 10 9 import java.util.Observable; 11 import java.util.logging.Logger;12 10 13 11 import javax.swing.table.DefaultTableModel; 14 12 15 13 import org.openstreetmap.josm.Main; 16 import org.openstreetmap.josm.data.osm.DataSetListener;17 14 import org.openstreetmap.josm.data.osm.Node; 18 15 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 23 20 import org.openstreetmap.josm.data.osm.SimplePrimitiveId; 24 21 import org.openstreetmap.josm.data.osm.Way; 22 import org.openstreetmap.josm.data.osm.event.DataChangedEvent; 23 import org.openstreetmap.josm.data.osm.event.DataSetListener; 24 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent; 25 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent; 26 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent; 27 import org.openstreetmap.josm.data.osm.event.RelationMembersChangedEvent; 28 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 29 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 25 30 import org.openstreetmap.josm.data.osm.history.History; 26 31 import org.openstreetmap.josm.data.osm.history.HistoryNode; … … 30 35 import org.openstreetmap.josm.data.osm.visitor.AbstractVisitor; 31 36 import org.openstreetmap.josm.gui.MapView; 37 import org.openstreetmap.josm.gui.MapView.LayerChangeListener; 32 38 import org.openstreetmap.josm.gui.layer.DataChangeListener; 33 39 import org.openstreetmap.josm.gui.layer.Layer; … … 59 65 * @see HistoryBrowser 60 66 */ 61 public class HistoryBrowserModel extends Observable implements MapView.LayerChangeListener, DataSetListener, DataChangeListener { 62 63 private static Logger logger = Logger.getLogger(HistoryBrowserModel.class.getName()); 67 public class HistoryBrowserModel extends Observable implements LayerChangeListener, DataSetListener, DataChangeListener { 68 //private static Logger logger = Logger.getLogger(HistoryBrowserModel.class.getName()); 64 69 65 70 /** the history of an OsmPrimitive */ … … 777 782 /* DataSetListener */ 778 783 /* ---------------------------------------------------------------------- */ 779 public void nodeMoved(Node node) { 784 public void nodeMoved(NodeMovedEvent event) { 785 Node node = event.getNode(); 780 786 if (!node.isNew() && node.getId() == history.getId()) { 781 787 setLatest(new HistoryPrimitiveBuilder().build(node)); … … 783 789 } 784 790 785 public void primtivesAdded(Collection<? extends OsmPrimitive> added) { 786 if (added == null || added.isEmpty()) return; 787 for (OsmPrimitive p: added) { 791 public void primtivesAdded(PrimitivesAddedEvent event) { 792 for (OsmPrimitive p: event.getPrimitives()) { 788 793 if (canShowAsLatest(p)) { 789 794 setLatest(new HistoryPrimitiveBuilder().build(p)); … … 792 797 } 793 798 794 public void primtivesRemoved(Collection<? extends OsmPrimitive> removed) { 795 if (removed == null || removed.isEmpty()) return; 796 for (OsmPrimitive p: removed) { 799 public void primtivesRemoved(PrimitivesRemovedEvent event) { 800 for (OsmPrimitive p: event.getPrimitives()) { 797 801 if (!p.isNew() && p.getId() == history.getId()) { 798 802 setLatest(null); … … 801 805 } 802 806 803 public void relationMembersChanged(Relation r) { 807 public void relationMembersChanged(RelationMembersChangedEvent event) { 808 Relation r = event.getRelation(); 804 809 if (!r.isNew() && r.getId() == history.getId()) { 805 810 setLatest(new HistoryPrimitiveBuilder().build(r)); … … 807 812 } 808 813 809 public void tagsChanged(OsmPrimitive prim) { 814 public void tagsChanged(TagsChangedEvent event) { 815 OsmPrimitive prim = event.getPrimitive(); 810 816 if (!prim.isNew() && prim.getId() == history.getId()) { 811 817 setLatest(new HistoryPrimitiveBuilder().build(prim)); … … 813 819 } 814 820 815 public void wayNodesChanged(Way way) { 821 public void wayNodesChanged(WayNodesChangedEvent event) { 822 Way way = event.getChangedWay(); 816 823 if (!way.isNew() && way.getId() == history.getId()) { 817 824 setLatest(new HistoryPrimitiveBuilder().build(way)); … … 819 826 } 820 827 821 public void dataChanged() { 828 public void dataChanged(DataChangedEvent event) { 822 829 dataChanged(getEditLayer()); 823 830 } 824 831 825 832 /* ---------------------------------------------------------------------- */ 826 /* DataChangeListener */ 833 /* DataChangeListener */ 827 834 /* ---------------------------------------------------------------------- */ 828 835 public void dataChanged(OsmDataLayer l) {
Note:
See TracChangeset
for help on using the changeset viewer.