Changeset 5028 in josm


Ignore:
Timestamp:
2012-02-28T11:29:30+01:00 (12 years ago)
Author:
jttt
Message:

Add possibility to hide side buttons in toggle dialogs permanently, show actions from buttons in popup menu

Location:
trunk/src/org/openstreetmap/josm
Files:
1 added
6 edited

Legend:

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

    r5007 r5028  
    3737    {
    3838        super(action);
    39         if(!usename)
     39        if(!usename) {
    4040            setText(null);
    41         fixIcon(action);
    42         doStyle();
     41            fixIcon(action);
     42            doStyle();
     43        }
    4344    }
    4445
     
    8081    }
    8182
     83    // Used constructor with Action
     84    @Deprecated
    8285    public SideButton(String imagename, String property, String tooltip, ActionListener actionListener)
    8386    {
     
    8891        setToolTipText(tooltip);
    8992    }
     93
     94    // Used constructor with Action
     95    @Deprecated
    9096    public SideButton(String name, String imagename, String property, String tooltip, Shortcut shortcut, ActionListener actionListener)
    9197    {
     
    100106        setup(name, property, tooltip, actionListener);
    101107    }
     108
     109    // Used constructor with Action
     110    @Deprecated
    102111    public SideButton(String name, String imagename, String property, String tooltip, ActionListener actionListener)
    103112    {
  • trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java

    r5018 r5028  
    88import java.awt.Graphics2D;
    99import java.awt.event.ActionEvent;
    10 import java.awt.event.ActionListener;
    1110import java.awt.event.KeyEvent;
    1211import java.awt.event.MouseEvent;
     
    4847import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
    4948import org.openstreetmap.josm.gui.SideButton;
     49import org.openstreetmap.josm.tools.ImageProvider;
    5050import org.openstreetmap.josm.tools.MultikeyActionsHandler;
    5151import org.openstreetmap.josm.tools.MultikeyShortcutAction;
     
    141141        userTable.setDefaultRenderer(String.class, new StringRenderer());
    142142
    143         addButton = new SideButton(marktr("Add"), "add", "SelectionList", tr("Add filter."),
    144                 new ActionListener(){
    145             public void actionPerformed(ActionEvent evt){
     143        addButton = new SideButton(new AbstractAction() {
     144            {
     145                putValue(NAME, marktr("Add"));
     146                putValue(SHORT_DESCRIPTION,  tr("Add filter."));
     147                putValue(SMALL_ICON, ImageProvider.get("dialogs","add"));
     148            }
     149            @Override
     150            public void actionPerformed(ActionEvent e) {
    146151                Filter filter = (Filter)SearchAction.showSearchDialog(new Filter());
    147152                if(filter != null){
    148153                    filterModel.addFilter(filter);
    149154                }
    150             }
    151         });
    152 
    153         editButton = new SideButton(marktr("Edit"), "edit", "SelectionList", tr("Edit filter."),
    154                 new ActionListener(){
    155             public void actionPerformed(ActionEvent evt){
     155            }});
     156        editButton = new SideButton(new AbstractAction() {
     157            {
     158                putValue(NAME, marktr("Edit"));
     159                putValue(SHORT_DESCRIPTION, tr("Edit filter."));
     160                putValue(SMALL_ICON, ImageProvider.get("dialogs", "edit"));
     161            }
     162            @Override
     163            public void actionPerformed(ActionEvent e) {
    156164                int index = userTable.getSelectionModel().getMinSelectionIndex();
    157165                if(index < 0) return;
     
    163171            }
    164172        });
    165 
    166         deleteButton = new SideButton(marktr("Delete"), "delete", "SelectionList", tr("Delete filter."),
    167                 new ActionListener(){
    168             public void actionPerformed(ActionEvent evt){
     173        deleteButton = new SideButton(new AbstractAction() {
     174            {
     175                putValue(NAME, marktr("Delete"));
     176                putValue(SHORT_DESCRIPTION, tr("Delete filter."));
     177                putValue(SMALL_ICON, ImageProvider.get("dialogs", "delete"));
     178            }
     179            @Override
     180            public void actionPerformed(ActionEvent e) {
    169181                int index = userTable.getSelectionModel().getMinSelectionIndex();
    170182                if(index < 0) return;
     
    172184            }
    173185        });
    174 
    175         upButton = new SideButton(marktr("Up"), "up", "SelectionList", tr("Move filter up."),
    176                 new ActionListener(){
    177             public void actionPerformed(ActionEvent evt){
     186        upButton = new SideButton(new AbstractAction() {
     187            {
     188                putValue(NAME, marktr("Up"));
     189                putValue(SHORT_DESCRIPTION, tr("Move filter up."));
     190                putValue(SMALL_ICON, ImageProvider.get("dialogs", "up"));
     191            }
     192            @Override
     193            public void actionPerformed(ActionEvent e) {
    178194                int index = userTable.getSelectionModel().getMinSelectionIndex();
    179195                if(index < 0) return;
     
    181197                userTable.getSelectionModel().setSelectionInterval(index-1, index-1);
    182198            }
     199
    183200        });
    184 
    185         downButton = new SideButton(marktr("Down"), "down", "SelectionList", tr("Move filter down."),
    186                 new ActionListener(){
    187             public void actionPerformed(ActionEvent evt){
     201        downButton = new SideButton(new AbstractAction() {
     202            {
     203                putValue(NAME, marktr("Down"));
     204                putValue(SHORT_DESCRIPTION, tr("Move filter down."));
     205                putValue(SMALL_ICON, ImageProvider.get("dialogs", "down"));
     206            }
     207            @Override
     208            public void actionPerformed(ActionEvent e) {
    188209                int index = userTable.getSelectionModel().getMinSelectionIndex();
    189210                if(index < 0) return;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java

    r5018 r5028  
    118118    ActivateLayerAction activateLayerAction;
    119119    ShowHideLayerAction showHideLayerAction;
    120    
     120
    121121    //TODO This duplicates ShowHide actions functionality
    122122    /** stores which layer index to toggle and executes the ShowHide action if the layer is present */
     
    160160        super(tr("Layers"), "layerlist", tr("Open a list of all loaded layers."),
    161161                Shortcut.registerShortcut("subwindow:layers", tr("Toggle: {0}", tr("Layers")), KeyEvent.VK_L,
    162                 Shortcut.ALT_SHIFT), 100, true);
     162                        Shortcut.ALT_SHIFT), 100, true);
    163163
    164164        // create the models
     
    240240        MultikeyActionsHandler.getInstance().addAction(activateLayerAction);
    241241        adaptTo(activateLayerAction, selectionModel);
    242    
     242
    243243        JumpToMarkerActions.initialize();
    244244
     
    445445         */
    446446        public ShowHideLayerAction(boolean init) {
     447            putValue(NAME, tr("Show/hide"));
    447448            putValue(SMALL_ICON, ImageProvider.get("dialogs", "showhide"));
    448449            putValue(SHORT_DESCRIPTION, tr("Toggle visible state of the selected layer."));
    449450            putValue("help", HelpUtil.ht("/Dialog/LayerList#ShowHideLayer"));
    450451            multikeyShortcut = Shortcut.registerShortcut("core_multikey:showHideLayer", tr("Multikey: {0}",
    451             tr("Show/hide layer")), KeyEvent.VK_S, Shortcut.SHIFT);
     452                    tr("Show/hide layer")), KeyEvent.VK_S, Shortcut.SHIFT);
    452453            if (init) {
    453454                updateEnabledState();
     
    549550         */
    550551        public LayerOpacityAction() {
     552            putValue(NAME, tr("Opacity"));
    551553            putValue(SHORT_DESCRIPTION, tr("Adjust opacity of the layer."));
    552554            putValue(SMALL_ICON, ImageProvider.get("dialogs/layerlist", "transparency"));
     
    640642
    641643        public ActivateLayerAction() {
     644            putValue(NAME, tr("Activate"));
    642645            putValue(SMALL_ICON, ImageProvider.get("dialogs", "activate"));
    643646            putValue(SHORT_DESCRIPTION, tr("Activate the selected layer"));
    644647            multikeyShortcut = Shortcut.registerShortcut("core_multikey:activateLayer", tr("Multikey: {0}",
    645             tr("Activate layer")), KeyEvent.VK_A, Shortcut.SHIFT);
     648                    tr("Activate layer")), KeyEvent.VK_A, Shortcut.SHIFT);
    646649            putValue("help", HelpUtil.ht("/Dialog/LayerList#ActivateLayer"));
    647650        }
     
    737740
    738741        public MergeAction() {
     742            putValue(NAME, tr("Merge"));
    739743            putValue(SMALL_ICON, ImageProvider.get("dialogs", "mergedown"));
    740744            putValue(SHORT_DESCRIPTION, tr("Merge this layer into another layer"));
     
    799803            CheckParameterUtil.ensureParameterNotNull(layer, "layer");
    800804            this.layer = layer;
     805            updateEnabledState();
     806        }
     807
     808        public DuplicateAction() {
    801809            putValue(NAME, tr("Duplicate"));
    802             updateEnabledState();
    803         }
    804 
    805         public DuplicateAction() {
    806810            putValue(SMALL_ICON, ImageProvider.get("dialogs", "duplicatelayer"));
    807811            putValue(SHORT_DESCRIPTION, tr("Duplicate this layer"));
     
    10331037    class MoveUpAction extends AbstractAction implements  IEnabledStateUpdating{
    10341038        public MoveUpAction() {
     1039            putValue(NAME, tr("Move up"));
    10351040            putValue(SMALL_ICON, ImageProvider.get("dialogs", "up"));
    10361041            putValue(SHORT_DESCRIPTION, tr("Move the selected layer one row up."));
     
    10541059    class MoveDownAction extends AbstractAction implements IEnabledStateUpdating {
    10551060        public MoveDownAction() {
     1061            putValue(NAME, tr("Move down"));
    10561062            putValue(SMALL_ICON, ImageProvider.get("dialogs", "down"));
    10571063            putValue(SHORT_DESCRIPTION, tr("Move the selected layer one row down."));
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

    r4982 r5028  
    134134
    135135        createLayout(displaylist, true, Arrays.asList(new SideButton[] {
    136             new SideButton(newAction, false),
    137             new SideButton(editAction, false),
    138             new SideButton(duplicateAction, false),
    139             new SideButton(deleteAction, false),
    140             new SideButton(selectAction, false)
     136                new SideButton(newAction, false),
     137                new SideButton(editAction, false),
     138                new SideButton(duplicateAction, false),
     139                new SideButton(deleteAction, false),
     140                new SideButton(selectAction, false)
    141141        }));
    142142
     
    282282        public EditAction() {
    283283            putValue(SHORT_DESCRIPTION,tr( "Open an editor for the selected relation"));
    284             //putValue(NAME, tr("Edit"));
     284            putValue(NAME, tr("Edit"));
    285285            putValue(SMALL_ICON, ImageProvider.get("dialogs", "edit"));
    286286            setEnabled(false);
     
    323323        public DeleteAction() {
    324324            putValue(SHORT_DESCRIPTION,tr("Delete the selected relation"));
    325             //putValue(NAME, tr("Delete"));
     325            putValue(NAME, tr("Delete"));
    326326            putValue(SMALL_ICON, ImageProvider.get("dialogs", "delete"));
    327327            setEnabled(false);
     
    334334                    Main.main.getEditLayer(),
    335335                    toDelete
    336             );
     336                    );
    337337        }
    338338
    339339        public void actionPerformed(ActionEvent e) {
    340             if (!isEnabled()) {
    341                 return;
    342             }
     340            if (!isEnabled())
     341                return;
    343342            List<Relation> toDelete = new LinkedList<Relation>();
    344343            for (int i : displaylist.getSelectedIndices()) {
     
    363362        public NewAction() {
    364363            putValue(SHORT_DESCRIPTION,tr("Create a new relation"));
    365             //putValue(NAME, tr("New"));
     364            putValue(NAME, tr("New"));
    366365            putValue(SMALL_ICON, ImageProvider.get("dialogs", "addrelation"));
    367366            updateEnabledState();
     
    401400            putValue(SHORT_DESCRIPTION, tr("Create a copy of this relation and open it in another editor window"));
    402401            putValue(SMALL_ICON, ImageProvider.get("duplicate"));
    403             //putValue(NAME, tr("Duplicate"));
     402            putValue(NAME, tr("Duplicate"));
    404403            updateEnabledState();
    405404        }
     
    412411                    copy,
    413412                    null /* no selected members */
    414             );
     413                    );
    415414            editor.setVisible(true);
    416415        }
     
    537536                    model.getSelectedNonNewRelations(),
    538537                    Main.map.mapView.getEditLayer())
    539             );
     538                    );
    540539        }
    541540    }
     
    570569                    buildSetOfIncompleteMembers(rels),
    571570                    Main.map.mapView.getEditLayer()
    572             ));
     571                    ));
    573572        }
    574573
     
    603602                    relations,
    604603                    DefaultNameFormatter.getInstance().getRelationComparator()
    605             );
     604                    );
    606605        }
    607606
     
    794793        public RelationDialogPopupMenu(JList list) {
    795794            super(list);
    796            
     795
    797796            // -- download members action
    798797            //
     
    832831        popupMenu.addPopupMenuListener(l);
    833832    }
    834    
     833
    835834    public Collection<Relation> getSelectedRelations() {
    836835        return model.getSelectedRelations();
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

    r4932 r5028  
    2424import java.awt.event.WindowAdapter;
    2525import java.awt.event.WindowEvent;
    26 
     26import java.util.ArrayList;
    2727import java.util.Collection;
     28import java.util.List;
    2829
    2930import javax.swing.AbstractAction;
     
    3536import javax.swing.JDialog;
    3637import javax.swing.JLabel;
     38import javax.swing.JMenu;
    3739import javax.swing.JOptionPane;
     40import javax.swing.JPanel;
     41import javax.swing.JPopupMenu;
     42import javax.swing.JRadioButtonMenuItem;
    3843import javax.swing.JScrollPane;
    39 import javax.swing.JPanel;
    4044import javax.swing.JToggleButton;
    4145
    4246import org.openstreetmap.josm.Main;
    4347import org.openstreetmap.josm.actions.JosmAction;
     48import org.openstreetmap.josm.data.preferences.ParametrizedEnumProperty;
    4449import org.openstreetmap.josm.gui.MainMenu;
     50import org.openstreetmap.josm.gui.ShowHideButtonListener;
     51import org.openstreetmap.josm.gui.SideButton;
    4552import org.openstreetmap.josm.gui.dialogs.DialogsPanel.Action;
    4653import org.openstreetmap.josm.gui.help.HelpUtil;
    4754import org.openstreetmap.josm.gui.help.Helpful;
    48 import org.openstreetmap.josm.gui.ShowHideButtonListener;
    49 import org.openstreetmap.josm.gui.SideButton;
    5055import org.openstreetmap.josm.tools.GBC;
    5156import org.openstreetmap.josm.tools.ImageProvider;
     
    6065public class ToggleDialog extends JPanel implements ShowHideButtonListener, Helpful, AWTEventListener {
    6166
     67    public enum ButtonHiddingType {
     68        ALWAYS_SHOWN, ALWAYS_HIDDEN, DYNAMIC
     69    }
     70
     71    private final ParametrizedEnumProperty<ButtonHiddingType> PROP_BUTTON_HIDING = new ParametrizedEnumProperty<ToggleDialog.ButtonHiddingType>(ButtonHiddingType.class, ButtonHiddingType.DYNAMIC) {
     72        @Override
     73        protected String getKey(String... params) {
     74            return preferencePrefix + ".buttonhiding";
     75        }
     76        @Override
     77        protected ButtonHiddingType parse(String s) {
     78            try {
     79                return super.parse(s);
     80            } catch (IllegalArgumentException e) {
     81                // Legacy settings
     82                return Boolean.parseBoolean(s)?ButtonHiddingType.DYNAMIC:ButtonHiddingType.ALWAYS_HIDDEN;
     83            }
     84        }
     85    };
     86
    6287    /** The action to toggle this dialog */
    6388    protected ToggleDialogAction toggleAction;
     
    87112     * Indicates whether dynamic button hiding is active or not.
    88113     */
    89     protected boolean isButtonHiding;
     114    protected ButtonHiddingType buttonHiding;
    90115
    91116    /** the preferred height if the toggle dialog is expanded */
     
    103128    protected JToggleButton button;
    104129    private JPanel buttonsPanel;
     130    private List<javax.swing.Action> buttonActions = new ArrayList<javax.swing.Action>();
    105131
    106132    /** holds the menu entry in the windows menu. Required to properly
     
    143169        isDocked = Main.pref.getBoolean(preferencePrefix+".docked", true);
    144170        isCollapsed = Main.pref.getBoolean(preferencePrefix+".minimized", false);
    145         isButtonHiding = Main.pref.getBoolean(preferencePrefix+".buttonhiding", true);
     171        buttonHiding = PROP_BUTTON_HIDING.get();
    146172
    147173        /** show the minimize button */
     
    416442                            }
    417443                        }
     444
     445                        private void maybeShowPopup(MouseEvent e) {
     446                            if (e.isPopupTrigger()) {
     447                                JPopupMenu menu = new JPopupMenu();
     448                                JMenu buttonHidingMenu = new JMenu(tr("Side buttons"));
     449                                JRadioButtonMenuItem alwaysShown = new JRadioButtonMenuItem(new AbstractAction(tr("Always shown")) {
     450                                    @Override
     451                                    public void actionPerformed(ActionEvent e) {
     452                                        setIsButtonHiding(ButtonHiddingType.ALWAYS_SHOWN);
     453                                    }
     454                                });
     455                                JRadioButtonMenuItem dynamic = new JRadioButtonMenuItem(new AbstractAction(tr("Dynamic")) {
     456                                    @Override
     457                                    public void actionPerformed(ActionEvent e) {
     458                                        setIsButtonHiding(ButtonHiddingType.DYNAMIC);
     459                                    }
     460                                });
     461                                JRadioButtonMenuItem alwaysHidden = new JRadioButtonMenuItem(new AbstractAction(tr("Always hidden")) {
     462                                    @Override
     463                                    public void actionPerformed(ActionEvent e) {
     464                                        setIsButtonHiding(ButtonHiddingType.ALWAYS_HIDDEN);
     465                                    }
     466                                });
     467                                alwaysShown.setSelected(buttonHiding == ButtonHiddingType.ALWAYS_SHOWN);
     468                                dynamic.setSelected(buttonHiding == ButtonHiddingType.DYNAMIC);
     469                                alwaysHidden.setSelected(buttonHiding == ButtonHiddingType.ALWAYS_HIDDEN);
     470                                buttonHidingMenu.add(alwaysShown);
     471                                buttonHidingMenu.add(dynamic);
     472                                buttonHidingMenu.add(alwaysHidden);
     473                                menu.add(buttonHidingMenu);
     474                                for (javax.swing.Action action: buttonActions) {
     475                                    menu.add(action);
     476                                }
     477                                menu.show(TitleBar.this, e.getX(), e.getY());
     478                            }
     479                        }
     480
     481                        @Override
     482                        public void mousePressed(MouseEvent e) {
     483                            maybeShowPopup(e);
     484                        }
     485
     486                        @Override
     487                        public void mouseReleased(MouseEvent e) {
     488                            maybeShowPopup(e);
     489                        }
    418490                    }
    419             );
     491                    );
    420492
    421493            if(Main.pref.getBoolean("dialog.dynamic.buttons", true)) {
    422                 buttonsHide = new JButton(ImageProvider.get("misc", isButtonHiding ? "buttonhide" : "buttonshow"));
     494                buttonsHide = new JButton(ImageProvider.get("misc", buttonHiding != ButtonHiddingType.ALWAYS_SHOWN ? "buttonhide" : "buttonshow"));
    423495                buttonsHide.setToolTipText(tr("Toggle dynamic buttons"));
    424496                buttonsHide.setBorder(BorderFactory.createEmptyBorder());
    425497                buttonsHide.addActionListener(
    426                     new ActionListener(){
    427                         public void actionPerformed(ActionEvent e) {
    428                             setIsButtonHiding(!isButtonHiding);
     498                        new ActionListener(){
     499                            public void actionPerformed(ActionEvent e) {
     500                                setIsButtonHiding(buttonHiding == ButtonHiddingType.ALWAYS_SHOWN?ButtonHiddingType.DYNAMIC:ButtonHiddingType.ALWAYS_SHOWN);
     501                            }
    429502                        }
    430                     }
    431                 );
     503                        );
    432504                add(buttonsHide);
    433505            }
     
    444516                        }
    445517                    }
    446             );
     518                    );
    447519            add(sticky);
    448520
     
    459531                        }
    460532                    }
    461             );
     533                    );
    462534            add(close);
    463535            setToolTipText(tr("Click to minimize/maximize the panel content"));
     
    578650    protected void setIsDocked(boolean val) {
    579651        if(buttonsPanel != null && buttonsHide != null) {
    580             buttonsPanel.setVisible(val ? !isButtonHiding : true);
     652            buttonsPanel.setVisible(val ? buttonHiding == ButtonHiddingType.ALWAYS_SHOWN : true);
    581653        }
    582654        isDocked = val;
     
    591663    }
    592664
    593     protected void setIsButtonHiding(boolean val) {
    594         isButtonHiding = val;
    595         Main.pref.put(preferencePrefix+".buttonhiding", val);
    596         buttonsHide.setIcon(ImageProvider.get("misc", val ? "buttonhide" : "buttonshow"));
     665    protected void setIsButtonHiding(ButtonHiddingType val) {
     666        buttonHiding = val;
     667        PROP_BUTTON_HIDING.put(val);
     668        buttonsHide.setIcon(ImageProvider.get("misc", val != ButtonHiddingType.ALWAYS_SHOWN ? "buttonhide" : "buttonshow"));
     669        buttonsPanel.setVisible(val != ButtonHiddingType.ALWAYS_HIDDEN);
    597670        stateChanged();
    598671    }
     
    641714        return button;
    642715    }
    643    
     716
    644717    /***
    645718     * The following methods are intended to be overridden, in order to customize
     
    679752
    680753    protected Component createLayout(Component data, boolean scroll, Collection<SideButton> buttons) {
    681         if(scroll)
     754        if(scroll) {
    682755            data = new JScrollPane(data);
     756        }
    683757        add(data, BorderLayout.CENTER);
    684758        if(buttons != null && buttons.size() != 0) {
    685759            buttonsPanel = new JPanel(Main.pref.getBoolean("dialog.align.left", false)
    686                 ? new FlowLayout(FlowLayout.LEFT) : new GridLayout(1,buttons.size()));
    687             for(SideButton button : buttons)
     760                    ? new FlowLayout(FlowLayout.LEFT) : new GridLayout(1,buttons.size()));
     761            for(SideButton button : buttons) {
    688762                buttonsPanel.add(button);
     763                javax.swing.Action action = button.getAction();
     764                if (action != null) {
     765                    buttonActions.add(action);
     766                } else {
     767                    System.err.println("Button " + button + " doesn't have action defined");
     768                }
     769            }
    689770            add(buttonsPanel, BorderLayout.SOUTH);
    690771            if(Main.pref.getBoolean("dialog.dynamic.buttons", true)) {
    691772                Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.MOUSE_MOTION_EVENT_MASK);
    692                 buttonsPanel.setVisible(!isButtonHiding || !isDocked);
     773                buttonsPanel.setVisible(buttonHiding == ButtonHiddingType.ALWAYS_SHOWN || !isDocked);
    693774            }
    694775        } else if(buttonsHide != null) {
     
    700781    @Override
    701782    public void eventDispatched(AWTEvent event) {
    702         if(isShowing() && !isCollapsed && isDocked && isButtonHiding) {
     783        if(isShowing() && !isCollapsed && isDocked && buttonHiding == ButtonHiddingType.DYNAMIC) {
    703784            Rectangle b = this.getBounds();
    704785            b.setLocation(getLocationOnScreen());
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java

    r4982 r5028  
    2020import java.util.Set;
    2121
     22import javax.swing.AbstractAction;
    2223import javax.swing.JMenuItem;
    2324import javax.swing.JOptionPane;
     
    5152import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    5253import org.openstreetmap.josm.io.OsmTransferException;
     54import org.openstreetmap.josm.tools.ImageProvider;
    5355import org.openstreetmap.josm.tools.Shortcut;
    5456import org.xml.sax.SAXException;
     
    6163 * @author frsantos
    6264 */
    63 public class ValidatorDialog extends ToggleDialog implements ActionListener, SelectionChangedListener, LayerChangeListener {
     65public class ValidatorDialog extends ToggleDialog implements SelectionChangedListener, LayerChangeListener {
    6466    /** Serializable ID */
    6567    private static final long serialVersionUID = 2952292777351992696L;
     
    105107
    106108        List<SideButton> buttons = new LinkedList<SideButton>();
    107         selectButton = new SideButton(marktr("Select"), "select", "Validator",
    108                 tr("Set the selected elements on the map to the selected items in the list above."), this);
     109
     110        selectButton = new SideButton(new AbstractAction() {
     111            {
     112                putValue(NAME, marktr("Select"));
     113                putValue(SHORT_DESCRIPTION,  tr("Set the selected elements on the map to the selected items in the list above."));
     114                putValue(SMALL_ICON, ImageProvider.get("dialogs","select"));
     115            }
     116            @Override
     117            public void actionPerformed(ActionEvent e) {
     118                setSelectedItems();
     119            }
     120        });
    109121        selectButton.setEnabled(false);
    110122        buttons.add(selectButton);
     
    112124        buttons.add(new SideButton(Main.main.validator.validateAction));
    113125
    114         fixButton = new SideButton(marktr("Fix"), "fix", "Validator", tr("Fix the selected issue."), this);
     126        fixButton = new SideButton(new AbstractAction() {
     127            {
     128                putValue(NAME, marktr("Fix"));
     129                putValue(SHORT_DESCRIPTION,  tr("Fix the selected issue."));
     130                putValue(SMALL_ICON, ImageProvider.get("dialogs","fix"));
     131            }
     132            @Override
     133            public void actionPerformed(ActionEvent e) {
     134                fixErrors(e);
     135            }
     136        });
    115137        fixButton.setEnabled(false);
    116138        buttons.add(fixButton);
    117139
    118140        if (Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true)) {
    119             ignoreButton = new SideButton(marktr("Ignore"), "delete", "Validator",
    120                     tr("Ignore the selected issue next time."), this);
     141            ignoreButton = new SideButton(new AbstractAction() {
     142                {
     143                    putValue(NAME, marktr("Ignore"));
     144                    putValue(SHORT_DESCRIPTION,  tr("Ignore the selected issue next time."));
     145                    putValue(SMALL_ICON, ImageProvider.get("dialogs","fix"));
     146                }
     147                @Override
     148                public void actionPerformed(ActionEvent e) {
     149                    ignoreErrors(e);
     150                }
     151            });
    121152            ignoreButton.setEnabled(false);
    122153            buttons.add(ignoreButton);
     
    332363        }
    333364        Main.main.getCurrentDataSet().setSelected(sel);
    334     }
    335 
    336     @Override
    337     public void actionPerformed(ActionEvent e) {
    338         String actionCommand = e.getActionCommand();
    339         if (actionCommand.equals("Select")) {
    340             setSelectedItems();
    341         } else if (actionCommand.equals("Fix")) {
    342             fixErrors(e);
    343         } else if (actionCommand.equals("Ignore")) {
    344             ignoreErrors(e);
    345         }
    346365    }
    347366
Note: See TracChangeset for help on using the changeset viewer.