// LabelChooser package org.javamoney.examples.ez.money.gui.chooser; import java.awt.Component; import javax.swing.DefaultListCellRenderer; import javax.swing.JList; import org.javamoney.examples.ez.money.model.persisted.transaction.LabelKeys; import org.javamoney.examples.ez.common.gui.ComboBox; /** * This class facilitates choosing a label from a combo box. */ public final class LabelChooser extends ComboBox { /** * Constructs a new chooser. */ public LabelChooser() { super(LabelKeys.values()); setRenderer(new ListCellRenderHandler()); } /** * This method returns the selected label. * * @return The selected label. */ public LabelKeys getSelectedLabel() { return (LabelKeys)getSelectedItem(); } ////////////////////////////////////////////////////////////////////////////// // Start of inner classes. ////////////////////////////////////////////////////////////////////////////// final class ListCellRenderHandler extends DefaultListCellRenderer { @Override public Component getListCellRendererComponent(JList list, Object item, int row, boolean isSelected, boolean hasFocus) { super.getListCellRendererComponent(list, item, row, isSelected, hasFocus); setIcon(((LabelKeys)item).getIcon()); return this; } } }