Changeset 5006 in josm for trunk


Ignore:
Timestamp:
2012-02-20T21:05:09+01:00 (8 years ago)
Author:
stoecker
Message:

make shortcut table a bit more colorful

Location:
trunk/src/org/openstreetmap/josm/gui/preferences/shortcut
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java

    r4980 r5006  
    22package org.openstreetmap.josm.gui.preferences.shortcut;
    33
     4import java.awt.Color;
     5import java.awt.Component;
    46import java.awt.Dimension;
    57import java.awt.GridBagConstraints;
     
    810import java.awt.Toolkit;
    911
     12import static org.openstreetmap.josm.tools.I18n.marktr;
    1013import static org.openstreetmap.josm.tools.I18n.tr;
    1114
     
    4043import javax.swing.table.AbstractTableModel;
    4144import javax.swing.table.TableModel;
     45import javax.swing.table.DefaultTableCellRenderer;
     46import javax.swing.table.TableColumnModel;
    4247
    4348import javax.swing.table.TableRowSorter;
     
    144149    }
    145150
     151    private static class ShortcutTableCellRenderer extends DefaultTableCellRenderer {
     152
     153        private boolean name;
     154
     155        public ShortcutTableCellRenderer(boolean name) {
     156            this.name = name;
     157        }
     158
     159        @Override
     160        public Component getTableCellRendererComponent(JTable table, Object value, boolean
     161                isSelected, boolean hasFocus, int row, int column) {
     162            if(value instanceof Shortcut)
     163            {
     164                Shortcut sc = (Shortcut) value;
     165                JLabel label = (JLabel) super.getTableCellRendererComponent(
     166                    table, name ? sc.getLongText() : sc.getKeyText(), isSelected, hasFocus, row, column);
     167                label.setBackground(Main.pref.getUIColor("Table.background"));
     168                if (isSelected) {
     169                    label.setForeground(Main.pref.getUIColor("Table.foreground"));
     170                }
     171                if(sc.getAssignedUser()) {
     172                    label.setBackground(Main.pref.getColor(
     173                            marktr("Shortcut Background: User"),
     174                            new Color(200,255,200)));
     175                } else if(!sc.getAssignedDefault()) {
     176                    label.setBackground(Main.pref.getColor(
     177                            marktr("Shortcut Background: Modified"),
     178                            new Color(255,255,200)));
     179                }
     180                return label;
     181            }
     182            return null;
     183        }
     184    }
     185
    146186    private void initComponents() {
    147187        JPanel listPane = new JPanel();
     
    160200        shortcutTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    161201        shortcutTable.setAutoCreateRowSorter(true);
     202        TableColumnModel mod = shortcutTable.getColumnModel();
     203        mod.getColumn(0).setCellRenderer(new ShortcutTableCellRenderer(true));
     204        mod.getColumn(1).setCellRenderer(new ShortcutTableCellRenderer(false));
    162205        listScrollPane.setViewportView(shortcutTable);
    163206
     
    268311                    actionPerformed(null);
    269312                }
    270                 model.fireTableCellUpdated(row, 1);
     313                model.fireTableRowsUpdated(row, row);
    271314            } else {
    272315                panel.disableAllModifierCheckboxes();
  • trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/ShortcutPreference.java

    r4980 r5006  
    6565        }
    6666        public Object getValueAt(int row, int col) {
    67             Shortcut sc = data.get(row);
    68             if (col == 0)
    69                 return sc.getLongText();
    70             else if (col == 1)
    71                 return sc.getKeyText();
    72             else
    73                 // This is a kind of hack that allows the actions on the editing controls
    74                 // to access the underlying shortcut object without introducing another
    75                 // method. I opted to stay within the interface.
    76                 return sc;
     67            return data.get(row);
    7768        }
    7869        @Override
Note: See TracChangeset for help on using the changeset viewer.