/*
* 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.feature;
import com.trollworks.gcs.criteria.IntegerCriteria;
import com.trollworks.gcs.criteria.StringCriteria;
import com.trollworks.gcs.widgets.outline.ListRow;
import com.trollworks.toolkit.annotation.Localize;
import com.trollworks.toolkit.ui.layout.FlexGrid;
import com.trollworks.toolkit.ui.layout.FlexRow;
import com.trollworks.toolkit.ui.layout.FlexSpacer;
import com.trollworks.toolkit.utility.Localization;
import java.awt.Insets;
/** A weapon bonus editor. */
public class WeaponBonusEditor extends FeatureEditor {
@Localize("to weapons whose required skill name ")
@Localize(locale = "de", value = "auf Waffen, deren benötigte Fertigkeit ")
@Localize(locale = "ru", value = "оружию, которое требует умения с названием ")
@Localize(locale = "es", value = "para armas cuyo nombre de habilidad requerida sea")
private static String WEAPON_SKILL;
@Localize("and relative skill level ")
@Localize(locale = "de", value = "sowie relativer Fertigkeitswert ")
@Localize(locale = "ru", value = "и относительный уровень умения ")
@Localize(locale = "es", value = "y nivel de habilidad relativo ")
private static String RELATIVE_SKILL_LEVEL;
@Localize("and specialization ")
@Localize(locale = "de", value = "und Spezialisierung ")
@Localize(locale = "ru", value = "и специализация ")
@Localize(locale = "es", value = "y especialización ")
private static String SPECIALIZATION;
static {
Localization.initialize();
}
/**
* Create a new skill bonus editor.
*
* @param row The row this feature will belong to.
* @param bonus The bonus to edit.
*/
public WeaponBonusEditor(ListRow row, WeaponBonus bonus) {
super(row, bonus);
}
@Override
protected void rebuildSelf(FlexGrid grid, FlexRow right) {
WeaponBonus bonus = (WeaponBonus) getFeature();
FlexRow row = new FlexRow();
row.add(addChangeBaseTypeCombo());
LeveledAmount amount = bonus.getAmount();
row.add(addLeveledAmountField(amount, -999, 999));
row.add(addLeveledAmountCombo(amount, true));
row.add(new FlexSpacer(0, 0, true, false));
grid.add(row, 0, 0);
row = new FlexRow();
row.setInsets(new Insets(0, 20, 0, 0));
StringCriteria criteria = bonus.getNameCriteria();
row.add(addStringCompareCombo(criteria, WEAPON_SKILL));
row.add(addStringCompareField(criteria));
grid.add(row, 1, 0);
row = new FlexRow();
row.setInsets(new Insets(0, 20, 0, 0));
criteria = bonus.getSpecializationCriteria();
row.add(addStringCompareCombo(criteria, SPECIALIZATION));
row.add(addStringCompareField(criteria));
grid.add(row, 2, 0);
row = new FlexRow();
row.setInsets(new Insets(0, 20, 0, 0));
IntegerCriteria levelCriteria = bonus.getLevelCriteria();
row.add(addNumericCompareCombo(levelCriteria, RELATIVE_SKILL_LEVEL));
row.add(addNumericCompareField(levelCriteria, -999, 999, true));
row.add(new FlexSpacer(0, 0, true, false));
grid.add(row, 3, 0);
}
}