Vaadin で OptionGroup を作成していますが、やりたいことはこれです。プレーン テキストのキャプションを付ける代わりに、別の CustomComponent をキャプションとして設定したいと考えています。そのため、生成された CustomComponents の配列があり、ユーザーはこれらの中から 1 つを選択する必要があります。それで、これを行う方法はありますか?
質問する
1477 次
2 に答える
5
FlexibleOptionGroupアドオンが必要なようです。
実装例を次に示します。
@Override
protected void init(VaadinRequest request) {
Container cont = new IndexedContainer(); // create a container
cont.addContainerProperty("caption", String.class, "");
cont.getContainerProperty(cont.addItem(), "caption").setValue("first");
cont.getContainerProperty(cont.addItem(), "caption").setValue("second");
cont.getContainerProperty(cont.addItem(), "caption").setValue("third");
FlexibleOptionGroup fog = new FlexibleOptionGroup(cont);
fog.setItemCaptionPropertyId("caption");
fog.setMultiSelect(true); // force using CheckBoxes
VerticalLayout fogLayout = new VerticalLayout();
Iterator<FlexibleOptionGroupItemComponent> iter;
iter = fog.getItemComponentIterator();
while(iter.hasNext()) {
// OptionGroupItem part (CheckBox or RadioButton)
FlexibleOptionGroupItemComponent fogItemComponent = iter.next();
// CustomComponent part
Label caption = new Label(fogItemComponent.getCaption());
caption.setWidth(50, Unit.PIXELS);
Slider slider = new Slider(1, 100);
fogLayout.addComponent(
new HorizontalLayout(fogItemComponent, caption, slider)
);
}
setContent(fogLayout);
}
上記のコードは以下を生成します。
于 2013-11-14T18:37:44.020 に答える