Ticket #19353: 19353-fixPopup.patch

File 19353-fixPopup.patch, 2.6 KB (added by GerdP, 5 years ago)

alternative patch to fix the error and make the warning work (only for new relations)

  • src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

     
    363363     * @param relation relation
    364364     */
    365365    public void applyToRelation(Relation relation) {
    366         relation.setMembers(members.stream()
    367                 .filter(rm -> !rm.getMember().isDeleted()).collect(Collectors.toList()));
     366        relation.setMembers(
     367                members.stream().filter(rm -> !rm.getMember().isDeleted() && rm.getMember().getDataSet() != null)
     368                        .collect(Collectors.toList()));
    368369    }
    369370
    370371    /**
  • 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);
     50        if (newRelation.getMembersCount() != getMemberTableModel().getRowCount()) {
    5851            String msg = tr("One or more members of this new relation have been deleted while the relation editor\n" +
    5952            "was open. They have been removed from the relation members list.");
    6053            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), msg, tr("Warning"), JOptionPane.WARNING_MESSAGE);