package de.tobiyas.racesandclasses.standalonegui.data.option.specific; import java.awt.BorderLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.Collections; import java.util.Vector; import javax.swing.JComboBox; import javax.swing.JPanel; import de.tobiyas.racesandclasses.standalonegui.data.option.AbstractTraitConfigOption; import de.tobiyas.racesandclasses.standalonegui.data.option.OptionType; import de.tobiyas.racesandclasses.standalonegui.gui.MainFrame; public class TraitConfigOperatorOption extends AbstractTraitConfigOption { /** * The Value to set. */ private String value = "*"; public TraitConfigOperatorOption(String name, boolean optoinal) { super(OptionType.Operator, name, optoinal); this.setOptions(new String[]{"+", "-", "*", "/"}); } @Override public void valueSelected(String value) { if(isAcceptable(value)) { this.value = value; this.needsSave = true; this.setCreated(true); } } @Override public String getCurrentSelection() { return value; } @Override public void addWithConfigOption(JPanel panel) { JPanel mainPanel = generateEmptyRightPanel(); Vector<String> selections = new Vector<String>(); selections.add("+"); selections.add("-"); selections.add("*"); selections.add("/"); Collections.sort(selections); JComboBox<String> combo = new JComboBox<String>(selections); combo.setAlignmentX(0.5f); if(value != null) combo.setSelectedItem(value); combo.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if(e.getStateChange() != ItemEvent.SELECTED) return; if(e.getItem() == null) return; String item = e.getItem().toString(); valueSelected(item); MainFrame.treeUpdated(); } }); mainPanel.add(combo); panel.add(mainPanel, BorderLayout.CENTER); } }