Changeset 2623 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2009-12-12T21:25:10+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
r2622 r2623 52 52 import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationTask; 53 53 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor; 54 import org.openstreetmap.josm.gui.layer.DataChangeListener;55 54 import org.openstreetmap.josm.gui.layer.Layer; 56 55 import org.openstreetmap.josm.gui.layer.OsmDataLayer; … … 66 65 * objects are visible on the map and can be selected there. Relations are not. 67 66 */ 68 public class RelationListDialog extends ToggleDialog implements MapView.LayerChangeListener, DataSetListener, DataChangeListener {67 public class RelationListDialog extends ToggleDialog implements DataSetListener { 69 68 //private static final Logger logger = Logger.getLogger(RelationListDialog.class.getName()); 70 69 … … 143 142 144 143 @Override public void showNotify() { 145 MapView.addLayerChangeListener(this);146 144 MapView.addLayerChangeListener(newAction); 147 145 DatasetEventManager.getInstance().addDatasetListener(this, true); 148 dataChanged( Main.main.getEditLayer());146 dataChanged(null); 149 147 } 150 148 151 149 @Override public void hideNotify() { 152 MapView.removeLayerChangeListener(this);153 150 MapView.removeLayerChangeListener(newAction); 154 151 DatasetEventManager.getInstance().removeDatasetListener(this); … … 521 518 } 522 519 520 public synchronized void sort() { 521 Collections.sort( 522 relations, 523 new Comparator<Relation>() { 524 NameFormatter formatter = DefaultNameFormatter.getInstance(); 525 526 public int compare(Relation r1, Relation r2) { 527 return r1.getDisplayName(formatter).compareTo(r2.getDisplayName(formatter)); 528 } 529 } 530 ); 531 } 532 533 private boolean isValid(Relation r) { 534 return !r.isDeleted() && r.isVisible() && !r.isIncomplete(); 535 } 536 523 537 public synchronized void setRelations(Collection<Relation> relations) { 524 538 List<Relation> sel = getSelectedRelations(); … … 531 545 } 532 546 for (Relation r: relations) { 533 if ( ! r.isDeleted() && r.isVisible() && !r.isIncomplete()) {547 if (isValid(r)) { 534 548 this.relations.add(r); 535 549 } … … 538 552 fireIntervalAdded(this, 0, getSize()); 539 553 setSelectedRelations(sel); 540 }541 542 public synchronized void sort() {543 Collections.sort(544 relations,545 new Comparator<Relation>() {546 NameFormatter formatter = DefaultNameFormatter.getInstance();547 548 public int compare(Relation r1, Relation r2) {549 return r1.getDisplayName(formatter).compareTo(r2.getDisplayName(formatter));550 }551 }552 );553 554 } 554 555 … … 561 562 */ 562 563 public synchronized void addRelations(Collection<? extends OsmPrimitive> addedPrimitives) { 563 if (addedPrimitives == null || addedPrimitives.isEmpty()) return;564 564 boolean added = false; 565 565 for (OsmPrimitive p: addedPrimitives) { … … 567 567 continue; 568 568 } 569 if (relations.contains(p)) { 569 570 Relation r = (Relation)p; 571 if (relations.contains(r)) { 570 572 continue; 571 573 } 572 relations.add((Relation)p); 573 added = true; 574 if (isValid(r)) { 575 relations.add(r); 576 added = true; 577 } 574 578 } 575 579 if (added) { … … 695 699 696 700 /* ---------------------------------------------------------------------------------- */ 697 /* LayerChangeListener */698 /* ---------------------------------------------------------------------------------- */699 public void activeLayerChange(Layer a, Layer b) {700 if (a != null && a instanceof OsmDataLayer) {701 ((OsmDataLayer)a).listenerDataChanged.remove(this);702 }703 if (b != null && b instanceof OsmDataLayer) {704 ((OsmDataLayer)b).listenerDataChanged.add(this);705 }706 707 }708 public void layerRemoved(Layer a) {/* irrelevant in this context */}709 public void layerAdded(Layer a) {/* irrelevant in this context */}710 711 /* ---------------------------------------------------------------------------------- */712 701 /* DataSetListener */ 713 702 /* ---------------------------------------------------------------------------------- */ … … 751 740 } 752 741 } 753 754 /* ---------------------------------------------------------------------------------- */755 /* DataSetListener */756 /* ---------------------------------------------------------------------------------- */757 public void dataChanged(OsmDataLayer l) {758 if (l != null && l == Main.main.getEditLayer()) {759 initFromLayer(l);760 }761 }762 742 }
Note:
See TracChangeset
for help on using the changeset viewer.