エディタ チェーンの一部としてこのエンティティがあるとします。
public class Commission implements Serializable
{
private EnumSet<CommissionType> commissionTypes;
private CommissionType type; // must exist in commissionTypes
private String value;
public Commission()
{
}
}
そしてそれのためのこのエディタ:
public class CommissionEditor extends Composite implements Editor<Commission>
{
private static CommissionEditorUiBinder uiBinder = GWT.create(CommissionEditorUiBinder.class);
interface CommissionEditorUiBinder extends UiBinder<Widget, CommissionEditor>
{
}
@UiField(provided = true)
ValueListBox<CommissionType> type = new ValueListBox<CommissionType>(new AbstractRenderer<CommissionType>()
{
@Override
public String render(CommissionType object)
{
return object == null ? "" : object.toString();
}
});
@UiField
TextBox value;
public CommissionEditor()
{
type.setAcceptableValues(Arrays.asList(CommissionType.values()));
initWidget(uiBinder.createAndBindUi(this));
}
}
現時点では、ValueListBox は CommissionType のすべての可能なオプションを次のようにレンダリングします。
EnumSet には、特定のエンティティに応じて、1 ~ 4 個の可能なオプションを含めることができます。ValueListBox が EnumSet のオプションのみをレンダリングし、その値を CommissionType に保存する方法はありますか?
CommissionType の値も設定したいことに注意してください。