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; 007import java.awt.event.KeyEvent; 008 009import org.openstreetmap.josm.Main; 010import org.openstreetmap.josm.gui.dialogs.relation.MemberTable; 011import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel; 012import org.openstreetmap.josm.tools.ImageProvider; 013import org.openstreetmap.josm.tools.Shortcut; 014 015/** 016 * Move the currently selected members up. 017 * @since 9496 018 */ 019public class MoveUpAction extends AbstractRelationEditorAction { 020 021 /** 022 * Constructs a new {@code MoveUpAction}. 023 * @param memberTable member table 024 * @param memberTableModel member table model 025 * @param actionMapKey key in table action map 026 */ 027 public MoveUpAction(MemberTable memberTable, MemberTableModel memberTableModel, String actionMapKey) { 028 super(memberTable, memberTableModel, actionMapKey); 029 new ImageProvider("dialogs", "moveup").getResource().attachImageIcon(this, true); 030 Shortcut sc = Shortcut.registerShortcut("relationeditor:moveup", tr("Relation Editor: Move Up"), KeyEvent.VK_UP, Shortcut.ALT); 031 sc.setAccelerator(this); 032 putValue(SHORT_DESCRIPTION, Main.platform.makeTooltip(tr("Move the currently selected members up"), sc)); 033 setEnabled(false); 034 } 035 036 @Override 037 public void actionPerformed(ActionEvent e) { 038 memberTableModel.moveUp(memberTable.getSelectedRows()); 039 } 040 041 @Override 042 protected void updateEnabledState() { 043 setEnabled(memberTableModel.canMoveUp(memberTable.getSelectedRows())); 044 } 045}