Changeset 16607 in josm


Ignore:
Timestamp:
2020-06-11T20:45:20+02:00 (4 years ago)
Author:
simon04
Message:

fix #19366 - ColorPreference: fix setting colors when sorting is active

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java

    r16594 r16607  
    207207            if (columnIndex == 1 && aValue instanceof Color) {
    208208                data.get(rowIndex).info.setValue((Color) aValue);
    209                 fireTableRowsUpdated(rowIndex, rowIndex);
     209                fireTableCellUpdated(rowIndex, columnIndex);
    210210            }
    211211        }
     
    265265        colorEdit.addActionListener(e -> {
    266266            int sel = colors.getSelectedRow();
    267             sel = colors.convertRowIndexToModel(sel);
    268             ColorEntry ce = tableModel.getEntry(sel);
     267            ColorEntry ce = (ColorEntry) colors.getValueAt(sel, 0);
    269268            JColorChooser chooser = new JColorChooser(ce.getDisplayColor());
    270269            int answer = JOptionPane.showConfirmDialog(
     
    280279        defaultSet.addActionListener(e -> {
    281280            int sel = colors.getSelectedRow();
    282             sel = colors.convertRowIndexToModel(sel);
    283             ColorEntry ce = tableModel.getEntry(sel);
     281            ColorEntry ce = (ColorEntry) colors.getValueAt(sel, 0);
    284282            Color c = ce.info.getDefaultValue();
    285283            if (c != null) {
     
    290288        defaultAll.addActionListener(e -> {
    291289            List<ColorEntry> data = tableModel.getData();
    292             for (int i = 0; i < data.size(); ++i) {
    293                 ColorEntry ce = data.get(i);
     290            for (ColorEntry ce : data) {
    294291                Color c = ce.info.getDefaultValue();
    295292                if (c != null) {
    296                     colors.setValueAt(c, i, 1);
     293                    ce.info.setValue(c);
    297294                }
    298295            }
     296            tableModel.fireTableDataChanged();
    299297        });
    300298        remove = new JButton(tr("Remove"));
     
    437435    private void updateEnabledState() {
    438436        int sel = colors.getSelectedRow();
    439         if (sel < 0 || sel >= tableModel.getRowCount()) {
     437        if (sel < 0 || sel >= colors.getRowCount()) {
    440438            return;
    441439        }
    442         sel = colors.convertRowIndexToModel(sel);
    443         ColorEntry ce = tableModel.getEntry(sel);
     440        ColorEntry ce = (ColorEntry) colors.getValueAt(sel, 0);
    444441        remove.setEnabled(ce != null && isRemoveColor(ce));
    445442        colorEdit.setEnabled(ce != null);
Note: See TracChangeset for help on using the changeset viewer.