Ticket #19366: 19366.bug_fixes.patch

File 19366.bug_fixes.patch, 1.9 KB (added by taylor.smock, 4 years ago)

The methods were calling table methods instead of model methods. This caused a row mismatch when filters were applied.

  • src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java

     
    264264        colorEdit = new JButton(tr("Choose"));
    265265        colorEdit.addActionListener(e -> {
    266266            int sel = colors.getSelectedRow();
     267            if (sel < 0) return;
    267268            sel = colors.convertRowIndexToModel(sel);
    268269            ColorEntry ce = tableModel.getEntry(sel);
    269270            JColorChooser chooser = new JColorChooser(ce.getDisplayColor());
     
    273274                    JOptionPane.OK_CANCEL_OPTION,
    274275                    JOptionPane.PLAIN_MESSAGE);
    275276            if (answer == JOptionPane.OK_OPTION) {
    276                 colors.setValueAt(chooser.getColor(), sel, 1);
     277                ce.info.setValue(chooser.getColor());
     278                tableModel.fireTableRowsUpdated(sel, sel);
    277279            }
    278280        });
    279281        defaultSet = new JButton(tr("Reset to default"));
     
    283285            ColorEntry ce = tableModel.getEntry(sel);
    284286            Color c = ce.info.getDefaultValue();
    285287            if (c != null) {
    286                 colors.setValueAt(c, sel, 1);
     288                ce.info.setValue(c);
     289                tableModel.fireTableRowsUpdated(sel, sel);
    287290            }
    288291        });
    289292        JButton defaultAll = new JButton(tr("Set all to default"));
     
    293296                ColorEntry ce = data.get(i);
    294297                Color c = ce.info.getDefaultValue();
    295298                if (c != null) {
    296                     colors.setValueAt(c, i, 1);
     299                    ce.info.setValue(c);
     300                    tableModel.fireTableDataChanged();
    297301                }
    298302            }
    299303        });