Ticket #19353: 19353-show-notification.patch
| File 19353-show-notification.patch, 3.8 KB (added by , 5 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
1 1 // License: GPL. For details, see LICENSE file. 2 2 package org.openstreetmap.josm.gui.dialogs.relation; 3 3 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 4 6 import java.util.ArrayList; 5 7 import java.util.Arrays; 6 8 import java.util.BitSet; … … 38 40 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 39 41 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 40 42 import org.openstreetmap.josm.gui.MainApplication; 43 import org.openstreetmap.josm.gui.Notification; 41 44 import org.openstreetmap.josm.gui.dialogs.relation.sort.RelationSorter; 42 45 import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType; 43 46 import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionTypeCalculator; … … 363 366 * @param relation relation 364 367 */ 365 368 public void applyToRelation(Relation relation) { 366 relation.setMembers(members.stream() 367 .filter(rm -> !rm.getMember().isDeleted()).collect(Collectors.toList())); 369 relation.setMembers( 370 members.stream().filter(rm -> !rm.getMember().isDeleted() && rm.getMember().getDataSet() != null) 371 .collect(Collectors.toList())); 372 if (relation.getMembersCount() != members.size()) { 373 new Notification(tr("One or more members of this relation have been deleted while the relation editor\n" 374 + "was open. They have been removed from the relation members list.")) 375 .setDuration(Notification.TIME_LONG) 376 .show(); 377 } 368 378 } 369 379 370 380 /** -
src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java
4 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 5 6 6 import java.awt.Component; 7 import java.util.List;8 import java.util.stream.Collectors;9 7 10 8 import javax.swing.JOptionPane; 11 9 import javax.swing.SwingUtilities; … … 17 15 import org.openstreetmap.josm.data.conflict.Conflict; 18 16 import org.openstreetmap.josm.data.osm.DefaultNameFormatter; 19 17 import org.openstreetmap.josm.data.osm.Relation; 20 import org.openstreetmap.josm.data.osm.RelationMember;21 18 import org.openstreetmap.josm.gui.HelpAwareOptionPane; 22 19 import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec; 23 20 import org.openstreetmap.josm.gui.MainApplication; … … 50 47 final Relation newRelation = new Relation(); 51 48 tagEditorModel.applyToPrimitive(newRelation); 52 49 getMemberTableModel().applyToRelation(newRelation); 53 List<RelationMember> newMembers = newRelation.getMembers().stream()54 .filter(rm -> !rm.getMember().isDeleted())55 .collect(Collectors.toList());56 if (newRelation.getMembersCount() != newMembers.size()) {57 newRelation.setMembers(newMembers);58 String msg = tr("One or more members of this new relation have been deleted while the relation editor\n" +59 "was open. They have been removed from the relation members list.");60 JOptionPane.showMessageDialog(MainApplication.getMainFrame(), msg, tr("Warning"), JOptionPane.WARNING_MESSAGE);61 }62 50 // If the user wanted to create a new relation, but hasn't added any members or 63 51 // tags, don't add an empty relation 64 52 if (newRelation.isEmpty() && !newRelation.hasKeys())
