/*
* Copyright (c) 1998-2017 by Richard A. Wilkes. All rights reserved.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, version 2.0. If a copy of the MPL was not distributed with
* this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, version 2.0.
*/
package com.trollworks.gcs.menu.edit;
import com.trollworks.toolkit.annotation.Localize;
import com.trollworks.toolkit.ui.menu.Command;
import com.trollworks.toolkit.ui.widget.outline.OutlineProxy;
import com.trollworks.toolkit.utility.Localization;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
/** Provides "Decrease Skill Level" command */
public class SkillLevelDecrementCommand extends Command {
@Localize("Decrease Skill Level")
@Localize(locale = "ru", value = "Уменьшить уровень умения")
private static String DECREASE_LEVEL;
static {
Localization.initialize();
}
public static final String CMD_DECREASE_LEVEL = "DecreaseLevel"; //$NON-NLS-1$
public static final SkillLevelDecrementCommand INSTANCE = new SkillLevelDecrementCommand();
private SkillLevelDecrementCommand() {
super(DECREASE_LEVEL, CMD_DECREASE_LEVEL, KeyEvent.VK_PERIOD);
}
@Override
public void adjust() {
Component focus = getFocusOwner();
if (focus instanceof OutlineProxy) {
focus = ((OutlineProxy) focus).getRealOutline();
}
if (focus instanceof SkillLevelIncrementable) {
SkillLevelIncrementable inc = (SkillLevelIncrementable) focus;
setEnabled(inc.canDecrementSkillLevel());
setTitle(inc.getDecrementSkillLevelTitle());
} else {
setEnabled(false);
setTitle(DECREASE_LEVEL);
}
}
@Override
public void actionPerformed(ActionEvent event) {
Component focus = getFocusOwner();
if (focus instanceof OutlineProxy) {
focus = ((OutlineProxy) focus).getRealOutline();
}
((SkillLevelIncrementable) focus).decrementSkillLevel();
}
}