001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.dialogs.relation.actions;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.awt.event.ActionEvent;
007
008import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
009import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
010import org.openstreetmap.josm.tools.ImageProvider;
011
012/**
013 * Reverse the order of the relation members.
014 * @since 9496
015 */
016public class ReverseAction extends AbstractRelationEditorAction {
017
018    /**
019     * Constructs a new {@code ReverseAction}.
020     * @param memberTable member table
021     * @param memberTableModel member table model
022     */
023    public ReverseAction(MemberTable memberTable, MemberTableModel memberTableModel) {
024        super(memberTable, memberTableModel, null);
025        putValue(SHORT_DESCRIPTION, tr("Reverse the order of the relation members"));
026        putValue(SMALL_ICON, ImageProvider.get("dialogs/relation", "reverse"));
027        putValue(NAME, tr("Reverse"));
028    //  Shortcut.register Shortcut("relationeditor:reverse", tr("Relation Editor: Reverse"), KeyEvent.VK_END, Shortcut.ALT)
029        updateEnabledState();
030    }
031
032    @Override
033    public void actionPerformed(ActionEvent e) {
034        memberTableModel.reverse();
035    }
036
037    @Override
038    protected void updateEnabledState() {
039        setEnabled(memberTableModel.getRowCount() > 0);
040    }
041}