Ticket #19353: 19353-show-notification.patch

File 19353-show-notification.patch, 3.8 KB (added by GerdP, 5 years ago)
  • src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

     
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.dialogs.relation;
    33
     4import static org.openstreetmap.josm.tools.I18n.tr;
     5
    46import java.util.ArrayList;
    57import java.util.Arrays;
    68import java.util.BitSet;
     
    3840import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;
    3941import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
    4042import org.openstreetmap.josm.gui.MainApplication;
     43import org.openstreetmap.josm.gui.Notification;
    4144import org.openstreetmap.josm.gui.dialogs.relation.sort.RelationSorter;
    4245import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType;
    4346import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionTypeCalculator;
     
    363366     * @param relation relation
    364367     */
    365368    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        }
    368378    }
    369379
    370380    /**
  • src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java

     
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
    66import java.awt.Component;
    7 import java.util.List;
    8 import java.util.stream.Collectors;
    97
    108import javax.swing.JOptionPane;
    119import javax.swing.SwingUtilities;
     
    1715import org.openstreetmap.josm.data.conflict.Conflict;
    1816import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
    1917import org.openstreetmap.josm.data.osm.Relation;
    20 import org.openstreetmap.josm.data.osm.RelationMember;
    2118import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    2219import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec;
    2320import org.openstreetmap.josm.gui.MainApplication;
     
    5047        final Relation newRelation = new Relation();
    5148        tagEditorModel.applyToPrimitive(newRelation);
    5249        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         }
    6250        // If the user wanted to create a new relation, but hasn't added any members or
    6351        // tags, don't add an empty relation
    6452        if (newRelation.isEmpty() && !newRelation.hasKeys())