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 org.bukkit.block.Biome; 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 TraitConfigBiomeOption extends AbstractTraitConfigOption { /** * The current Biome. */ private Biome biome = Biome.BEACHES; public TraitConfigBiomeOption(String name, boolean optional) { super(OptionType.Biome, name, optional); this.options.clear(); for(Biome biome : Biome.values()){ this.options.add(biome.name()); } } public TraitConfigBiomeOption(String name, boolean optional, Biome biome) { this(name, optional); this.biome = biome; } @Override public void valueSelected(String value) { for(Biome biome : Biome.values()){ if(biome.name().equalsIgnoreCase(value)) { this.biome = biome; this.needsSave = true; this.setCreated(true); break; } } } @Override public String getCurrentSelection() { return biome.name(); } @Override public boolean isAcceptable(String value) { return super.isAcceptable(value.toUpperCase()); } @Override public String toString() { return name + ": " + biome.name(); } @Override public void reset() { super.reset(); this.biome = null; } @Override public void addWithConfigOption(JPanel panel) { JPanel mainPanel = generateEmptyRightPanel(); Vector<String> biomes = new Vector<String>(); for(Biome biome : Biome.values()) biomes.add(biome.name()); Collections.sort(biomes); JComboBox<String> combo = new JComboBox<String>(biomes); if(biomes != null) combo.setSelectedItem(biome.name()); 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(); Biome biome = Biome.valueOf(item); TraitConfigBiomeOption.this.biome = biome; MainFrame.treeUpdated(); } }); mainPanel.add(combo); panel.add(mainPanel, BorderLayout.CENTER); } }