/*
* 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.skill;
import com.trollworks.toolkit.annotation.Localize;
import com.trollworks.toolkit.ui.widget.BandedPanel;
import com.trollworks.toolkit.utility.Localization;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
/** Displays and edits {@link SkillDefault} objects. */
public class Defaults extends BandedPanel implements ActionListener {
@Localize("Defaults")
@Localize(locale = "de", value = "Grundwerte")
@Localize(locale = "ru", value = "По умолчанию")
@Localize(locale = "es", value = "Valores por defecto")
private static String TITLE;
static {
Localization.initialize();
}
/**
* Creates a new skill defaults editor.
*
* @param defaults The initial defaults to display.
*/
public Defaults(List<SkillDefault> defaults) {
super(TITLE);
setDefaults(defaults);
}
/** @param defaults The defaults to set. */
public void setDefaults(List<SkillDefault> defaults) {
removeAll();
for (SkillDefault skillDefault : defaults) {
add(new SkillDefaultEditor(new SkillDefault(skillDefault)));
}
if (getComponentCount() == 0) {
add(new SkillDefaultEditor());
}
revalidate();
repaint();
}
@Override
protected void addImpl(Component comp, Object constraints, int index) {
super.addImpl(comp, constraints, index);
if (comp instanceof SkillDefaultEditor) {
((SkillDefaultEditor) comp).addActionListener(this);
}
}
/** @return The current set of skill defaults. */
public List<SkillDefault> getDefaults() {
int count = getComponentCount();
ArrayList<SkillDefault> list = new ArrayList<>(count);
for (int i = 0; i < count; i++) {
SkillDefault skillDefault = ((SkillDefaultEditor) getComponent(i)).getSkillDefault();
if (skillDefault != null) {
list.add(skillDefault);
}
}
return list;
}
@Override
public void actionPerformed(ActionEvent event) {
notifyActionListeners();
}
}