Changeset 16594 in josm


Ignore:
Timestamp:
2020-06-11T00:16:44+02:00 (2 months ago)
Author:
simon04
Message:

fix #19366 - Add filter box for Color Preferences (patch by taylor.smock, modified)

File:
1 edited

Legend:

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

    r16562 r16594  
    5454import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
    5555import org.openstreetmap.josm.gui.util.GuiHelper;
     56import org.openstreetmap.josm.gui.widgets.FilterField;
    5657import org.openstreetmap.josm.tools.CheckParameterUtil;
    5758import org.openstreetmap.josm.tools.ColorHelper;
     
    138139                    info.getName(), info.getDefaultValue());
    139140        }
     141
     142        @Override
     143        public String toString() {
     144            return "ColorEntry{" + getDisplay() + ' ' + ColorHelper.color2html(getDisplayColor()) + '}';
     145        }
    140146    }
    141147
     
    259265        colorEdit.addActionListener(e -> {
    260266            int sel = colors.getSelectedRow();
     267            sel = colors.convertRowIndexToModel(sel);
    261268            ColorEntry ce = tableModel.getEntry(sel);
    262269            JColorChooser chooser = new JColorChooser(ce.getDisplayColor());
     
    273280        defaultSet.addActionListener(e -> {
    274281            int sel = colors.getSelectedRow();
     282            sel = colors.convertRowIndexToModel(sel);
    275283            ColorEntry ce = tableModel.getEntry(sel);
    276284            Color c = ce.info.getDefaultValue();
     
    293301        remove.addActionListener(e -> {
    294302            int sel = colors.getSelectedRow();
     303            sel = colors.convertRowIndexToModel(sel);
    295304            tableModel.removeEntry(sel);
    296305        });
     
    300309
    301310        colors = new JTable(tableModel);
     311        colors.setAutoCreateRowSorter(true);
     312        FilterField colorFilter = new FilterField().filter(colors, tableModel);
    302313        colors.addMouseListener(new MouseAdapter() {
    303314            @Override
     
    353364        JPanel panel = new JPanel(new GridBagLayout());
    354365        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
     366        panel.add(colorFilter, GBC.eol().fill(GBC.HORIZONTAL));
    355367        JScrollPane scrollpane = new JScrollPane(colors);
    356368        scrollpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
     
    425437    private void updateEnabledState() {
    426438        int sel = colors.getSelectedRow();
    427         ColorEntry ce = sel >= 0 && sel < tableModel.getRowCount() ? tableModel.getEntry(sel) : null;
     439        if (sel < 0 || sel >= tableModel.getRowCount()) {
     440            return;
     441        }
     442        sel = colors.convertRowIndexToModel(sel);
     443        ColorEntry ce = tableModel.getEntry(sel);
    428444        remove.setEnabled(ce != null && isRemoveColor(ce));
    429445        colorEdit.setEnabled(ce != null);
Note: See TracChangeset for help on using the changeset viewer.