Ticket #2954: relation.patch

File relation.patch, 4.0 KB (added by plaicy, 17 years ago)
  • test/unit/org/openstreetmap/josm/data/osm/RelationTest.java

     
     1// License: GPL. For details, see LICENSE file.
     2package org.openstreetmap.josm.data.osm;
     3
     4import org.junit.Test;
     5
     6import static org.junit.Assert.*;
     7
     8public class RelationTest {
     9    @Test(expected=NullPointerException.class)
     10    public void createNewRelation() {
     11        new Relation(null);
     12    }
     13
     14    @Test
     15    public void equalSemenaticsToNull() {
     16        Relation relation = new Relation();
     17        assertFalse(relation.hasEqualTechnicalAttributes(null));
     18    }
     19
     20}
  • src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

     
    112112            members.set(row-1, member1);
    113113        }
    114114        fireTableDataChanged();
     115        getSelectionModel();
    115116        listSelectionModel.clearSelection();
    116117        for (int row : selectedRows) {
    117118            row--;
     
    132133            members.set(row+1, member1);
    133134        }
    134135        fireTableDataChanged();
     136        getSelectionModel();
    135137        listSelectionModel.clearSelection();
    136138        for (int row : selectedRows) {
    137139            row++;
     
    208210        for (RelationMember member: selectedMembers) {
    209211            int row = members.indexOf(member);
    210212            if (row >= 0) {
     213                getSelectionModel();
    211214                listSelectionModel.addSelectionInterval(row,row);
    212215                min = Math.min(row, min);
    213216            }
  • src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java

     
    540540            // tags, don't add an empty relation
    541541            if(memberTableModel.getRowCount() == 0 && tagEditorModel.getKeys().isEmpty())
    542542                return;
    543             Relation clone = new Relation(getRelation());
    544             tagEditorModel.applyToPrimitive(clone);
    545             memberTableModel.applyToRelation(clone);
    546             Main.main.undoRedo.add(new AddCommand(clone));
     543            Relation newRelation = new Relation();
     544            tagEditorModel.applyToPrimitive(newRelation);
     545            memberTableModel.applyToRelation(newRelation);
     546            Main.main.undoRedo.add(new AddCommand(newRelation));
    547547            DataSet.fireSelectionChanged(Main.ds.getSelected());
    548548        } else if (! memberTableModel.hasSameMembersAs(getRelation()) || tagEditorModel.isDirty()) {
    549549            Relation editedRelation = new Relation(getRelation());
  • src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java

     
    4040     */
    4141    private Relation relation;
    4242
    43     /** The version of the relation when editing is started. */
     43    /**
     44     * The version of the relation when editing is started.  This is
     45     * null if a new relation is created. */
    4446    private Relation relationSnapshot;
    4547
    4648    /** the data layer the relation belongs to */
     
    101103                        false
    102104        );
    103105
    104         this.relationSnapshot = new Relation(relation);
     106        this.relationSnapshot = (relation == null) ? null : new Relation(relation);
    105107        this.relation = relation;
    106108        this.layer = layer;
    107109    }