Changeset 18066 in josm for trunk


Ignore:
Timestamp:
2021-07-18T17:13:27+02:00 (3 years ago)
Author:
Don-vip
Message:

fix #21134 - add help button to access toggle dialog help from its title bar

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

    r18062 r18066  
    1717import java.awt.event.AWTEventListener;
    1818import java.awt.event.ActionEvent;
     19import java.awt.event.ActionListener;
    1920import java.awt.event.ComponentAdapter;
    2021import java.awt.event.ComponentEvent;
     
    5556import org.openstreetmap.josm.gui.SideButton;
    5657import org.openstreetmap.josm.gui.dialogs.DialogsPanel.Action;
     58import org.openstreetmap.josm.gui.help.HelpBrowser;
    5759import org.openstreetmap.josm.gui.help.HelpUtil;
    5860import org.openstreetmap.josm.gui.help.Helpful;
     
    566568            buttonsHide = new JButton(ImageProvider.get("misc", buttonHiding != ButtonHidingType.ALWAYS_SHOWN
    567569                ? /* ICON(misc/)*/ "buttonhide" :  /* ICON(misc/)*/ "buttonshow"));
    568             buttonsHide.setToolTipText(tr("Toggle dynamic buttons"));
    569             buttonsHide.setBorder(BorderFactory.createEmptyBorder());
    570             buttonsHide.addActionListener(e -> {
     570            addButton(buttonsHide, tr("Toggle dynamic buttons"), e -> {
    571571                JRadioButtonMenuItem item = (buttonHiding == ButtonHidingType.DYNAMIC) ? alwaysShown : dynamic;
    572572                item.setSelected(true);
    573573                item.getAction().actionPerformed(null);
    574574            });
    575             add(buttonsHide);
    576575
    577576            // show the pref button if applicable
    578577            if (preferenceClass != null) {
    579                 JButton pref = new JButton(ImageProvider.get("preference_small", ImageProvider.ImageSizes.SMALLICON));
    580                 pref.setToolTipText(tr("Open preferences for this panel"));
    581                 pref.setBorder(BorderFactory.createEmptyBorder());
    582                 pref.addActionListener(e -> {
     578                addButton(new JButton(ImageProvider.get("preference_small", ImageProvider.ImageSizes.SMALLICON)),
     579                        tr("Open preferences for this panel"), e -> {
    583580                    final PreferenceDialog p = new PreferenceDialog(MainApplication.getMainFrame());
    584581                    SwingUtilities.invokeLater(() -> {
     
    591588                    p.setVisible(true);
    592589                });
    593                 add(pref);
    594             }
     590            }
     591
     592            // show the help button
     593            addButton(new JButton(ImageProvider.get("help", ImageProvider.ImageSizes.SMALLICON)),
     594                    tr("Open help for this panel"), e -> {
     595                HelpBrowser.setUrlForHelpTopic(helpTopic());
     596            });
    595597
    596598            // show the sticky button
    597             JButton sticky = new JButton(ImageProvider.get("misc", "sticky"));
    598             sticky.setToolTipText(tr("Undock the panel"));
    599             sticky.setBorder(BorderFactory.createEmptyBorder());
    600             sticky.addActionListener(e -> {
     599            addButton(new JButton(ImageProvider.get("misc", "sticky")), tr("Undock the panel"), e -> {
    601600                detach();
    602601                if (dialogsPanel != null) {
     
    604603                }
    605604            });
    606             add(sticky);
    607605
    608606            // show the close button
    609             JButton close = new JButton(ImageProvider.get("misc", "close"));
    610             close.setToolTipText(tr("Close this panel. You can reopen it with the buttons in the left toolbar."));
    611             close.setBorder(BorderFactory.createEmptyBorder());
    612             close.addActionListener(e -> {
     607            addButton(new JButton(ImageProvider.get("misc", "close")),
     608                    tr("Close this panel. You can reopen it with the buttons in the left toolbar."), e -> {
    613609                hideDialog();
    614610                if (dialogsPanel != null) {
     
    617613                hideNotify();
    618614            });
    619             add(close);
     615
    620616            setToolTipText(tr("Click to minimize/maximize the panel content"));
    621617            setTitle(toggleDialogName);
     618        }
     619
     620        protected final Component addButton(JButton button, String tooltip, ActionListener actionListener) {
     621            button.setBorder(BorderFactory.createEmptyBorder());
     622            button.addActionListener(actionListener);
     623            button.setToolTipText(tooltip);
     624            return add(button);
    622625        }
    623626
Note: See TracChangeset for help on using the changeset viewer.