Ticket #6971: ticket-6971-user-ct-column-tooltip.patch

File ticket-6971-user-ct-column-tooltip.patch, 3.9 KB (added by olejorgenb, 15 years ago)
  • src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java b/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
    index 492aff3..9643d46 100644
    a b package org.openstreetmap.josm.gui.dialogs;  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55import static org.openstreetmap.josm.tools.I18n.trn;
    66
    7 import java.awt.BorderLayout;
    87import java.awt.Component;
    98import java.awt.event.ActionEvent;
    109import java.awt.event.KeyEvent;
    import java.util.Map;  
    2625import java.util.Set;
    2726
    2827import javax.swing.AbstractAction;
    29 import javax.swing.ImageIcon;
    3028import javax.swing.JLabel;
    3129import javax.swing.JOptionPane;
    3230import javax.swing.JTable;
    public class UserListDialog extends ToggleDialog implements SelectionChangedList  
    9593        columnModel.getColumn(3).setCellRenderer(new DefaultTableCellRenderer() {
    9694            @Override
    9795            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    98                 final JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    99                 label.setIcon((ImageIcon)value);
    100                 label.setText("");
    101                 return label;
    102             };
     96                // see http://download.oracle.com/javase/6/docs/api/javax/swing/table/DefaultTableCellRenderer.html#override
     97                // for why we don't use the label directly
     98                final JLabel renderLabel = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     99                JLabel sourceLabel = (JLabel) value;
     100                renderLabel.setIcon(sourceLabel.getIcon());
     101                renderLabel.setText("");
     102                renderLabel.setToolTipText(sourceLabel.getToolTipText());
     103                return renderLabel;
     104            }
    103105        });
    104106
    105107        // -- select users primitives action
    public class UserListDialog extends ToggleDialog implements SelectionChangedList  
    327329     */
    328330    static class UserTableModel extends DefaultTableModel {
    329331        private ArrayList<UserInfo> data;
    330         private ImageIcon greenCheckmark;
    331         private ImageIcon greyCheckmark;
    332         private ImageIcon redX;
     332        private JLabel greenCheckmark;
     333        private JLabel greyCheckmark;
     334        private JLabel redX;
     335        private JLabel empty;
    333336
    334337        public UserTableModel() {
    335338            setColumnIdentifiers(new String[]{tr("Author"),tr("# Objects"),"%", tr("CT")});
    336339            data = new ArrayList<UserInfo>();
    337             greenCheckmark = ImageProvider.get("misc", "green_check.png");
    338             greyCheckmark = ImageProvider.get("misc", "grey_check.png");
    339             redX = ImageProvider.get("misc", "red_x.png");
     340            greenCheckmark = new JLabel(ImageProvider.get("misc", "green_check.png"));
     341            greenCheckmark.setToolTipText(tr("Accepted"));
     342            greyCheckmark = new JLabel(ImageProvider.get("misc", "grey_check.png"));
     343            greyCheckmark.setToolTipText("Auto-accepted");
     344            redX = new JLabel(ImageProvider.get("misc", "red_x.png"));
     345            redX.setToolTipText("Declined");
     346            empty = new JLabel("");
     347            empty.setToolTipText("Undecided");
    340348        }
    341349
    342350        protected Map<User, Integer> computeStatistics(Collection<? extends OsmPrimitive> primitives) {
    public class UserListDialog extends ToggleDialog implements SelectionChangedList  
    382390                case User.STATUS_AGREED: return greenCheckmark;
    383391                case User.STATUS_AUTO_AGREED: return greyCheckmark;
    384392                case User.STATUS_NOT_AGREED: return redX;
    385                 default: return null;
     393                default: return empty; // Undecided or unknown?
    386394                }
    387395            }
    388396            return null;