Changeset 15729 in josm


Ignore:
Timestamp:
2020-01-19T12:11:15+01:00 (4 years ago)
Author:
simon04
Message:

fix #18026 - Relation member conflict: render decision as radio buttons

Location:
trunk/src/org/openstreetmap/josm/gui/conflict/tags
Files:
2 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionType.java

    r12660 r15729  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
    5 
    6 import javax.swing.JLabel;
    75
    86/**
     
    2624    UNDECIDED;
    2725
    28     /**
    29      * Sets the label according to the current decision.
    30      * @param decision The decision
    31      * @param label The label to set
    32      */
    33     public static void prepareLabel(RelationMemberConflictDecisionType decision, JLabel label) {
    34         switch(decision) {
    35         case REMOVE:
    36             label.setText(tr("Remove"));
    37             label.setToolTipText(tr("Remove this relation member from the relation"));
    38             break;
    39         case KEEP:
    40             label.setText(tr("Keep"));
    41             label.setToolTipText(tr("Keep this relation member for the target object"));
    42             break;
    43         case UNDECIDED:
    44             label.setText(tr("Undecided"));
    45             label.setToolTipText(tr("Not decided yet"));
    46             break;
     26    String getLabelText() {
     27        switch (this) {
     28            case REMOVE:
     29                return tr("Remove");
     30            case KEEP:
     31                return tr("Keep");
     32            case UNDECIDED:
     33            default:
     34                return tr("Undecided");
     35        }
     36    }
     37
     38    String getLabelToolTipText() {
     39        switch (this) {
     40            case REMOVE:
     41                return tr("Remove this relation member from the relation");
     42            case KEEP:
     43                return tr("Keep this relation member for the target object");
     44            case UNDECIDED:
     45            default:
     46                return tr("Not decided yet");
    4747        }
    4848    }
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverColumnModel.java

    r13564 r15729  
    55
    66import java.awt.Component;
     7import java.util.EnumSet;
    78
    89import javax.swing.JTable;
     
    1516import org.openstreetmap.josm.gui.conflict.ConflictColors;
    1617import org.openstreetmap.josm.gui.conflict.pair.relation.RelationMemberTable;
     18import org.openstreetmap.josm.gui.history.VersionTable;
    1719import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
    1820
     
    7375
    7476        AutoCompletingTextField roleEditor = new AutoCompletingTextField(0, false);
    75         RelationMemberConflictDecisionRenderer decisionRenderer = new RelationMemberConflictDecisionRenderer();
    76         RelationMemberConflictDecisionEditor decisionEditor = new RelationMemberConflictDecisionEditor();
    7777
    7878        // column 0 - Relation
     
    114114        addColumn(col);
    115115
    116         // column 4 - New Way
    117         col = new TableColumn(4);
    118         col.setHeaderValue(tr("Decision"));
    119         col.setResizable(true);
    120         col.setCellRenderer(decisionRenderer);
    121         col.setCellEditor(decisionEditor);
    122         col.setWidth(100);
    123         col.setPreferredWidth(100);
    124         col.setMaxWidth(100);
    125         addColumn(col);
     116        // column 4 - decision keep
     117        // column 5 - decision remove
     118        int index = 4;
     119        for (RelationMemberConflictDecisionType type : EnumSet.of(
     120                RelationMemberConflictDecisionType.KEEP, RelationMemberConflictDecisionType.REMOVE)) {
     121            col = new TableColumn(index);
     122            col.setHeaderValue(type.getLabelText());
     123            col.setResizable(true);
     124            final VersionTable.RadioButtonRenderer renderer = new VersionTable.RadioButtonRenderer();
     125            renderer.setToolTipText(type.getLabelToolTipText());
     126            col.setCellRenderer(renderer);
     127            col.setCellEditor(new VersionTable.RadioButtonEditor());
     128            col.setWidth(50);
     129            col.setPreferredWidth(50);
     130            col.setMaxWidth(50);
     131            addColumn(col);
     132            index++;
     133        }
    126134    }
    127135}
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java

    r11627 r15729  
    115115        case 2: /* role */ return d.getRole();
    116116        case 3: /* original */ return d.getOriginalPrimitive();
    117         case 4: /* decision */ return d.getDecision();
     117        case 4: /* decision keep */ return RelationMemberConflictDecisionType.KEEP.equals(d.getDecision());
     118        case 5: /* decision remove */ return RelationMemberConflictDecisionType.REMOVE.equals(d.getDecision());
    118119        }
    119120        return null;
     
    127128            d.setRole((String) value);
    128129            break;
    129         case 4: /* decision */
    130             d.decide((RelationMemberConflictDecisionType) value);
    131             refresh(false);
     130        case 4: /* decision keep */
     131            if (Boolean.TRUE.equals(value)) {
     132                d.decide(RelationMemberConflictDecisionType.KEEP);
     133                refresh(false);
     134            }
     135            break;
     136        case 5: /* decision remove */
     137            if (Boolean.TRUE.equals(value)) {
     138                d.decide(RelationMemberConflictDecisionType.REMOVE);
     139                refresh(false);
     140            }
    132141            break;
    133142        default: // Do nothing
Note: See TracChangeset for help on using the changeset viewer.