Ticket #19366: 19366.patch

File 19366.patch, 2.1 KB (added by taylor.smock, 6 years ago)

Add a filter field along with a toString method (calls super.toString and then appends the display name of the color).

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

     
    5353import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
    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;
    5859import org.openstreetmap.josm.tools.GBC;
     
    7677        }
    7778    }
    7879
     80    private FilterField colorFilter;
    7981    private ColorTableModel tableModel;
    8082    private JTable colors;
    8183
     
    137139            return new NamedColorProperty(info.getCategory(), info.getSource(),
    138140                    info.getName(), info.getDefaultValue());
    139141        }
     142
     143        @Override
     144        public String toString() {
     145            return new StringBuilder(super.toString()).append(" [").append(getDisplay())
     146                    .append(' ').append(ColorHelper.color2html(getDisplayColor())).append(']').toString();
     147        }
    140148    }
    141149
    142150    private static class ColorTableModel extends AbstractTableModel {
     
    299307        defaultSet.setEnabled(false);
    300308
    301309        colors = new JTable(tableModel);
     310        colors.setAutoCreateRowSorter(true);
     311        colorFilter = new FilterField().filter(colors, tableModel);
    302312        colors.addMouseListener(new MouseAdapter() {
    303313            @Override
    304314            public void mousePressed(MouseEvent me) {
     
    352362
    353363        JPanel panel = new JPanel(new GridBagLayout());
    354364        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
     365        panel.add(colorFilter, GBC.eol().fill(GBC.HORIZONTAL));
    355366        JScrollPane scrollpane = new JScrollPane(colors);
    356367        scrollpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    357368        panel.add(scrollpane, GBC.eol().fill(GBC.BOTH));