Например, если у меня есть три элемента, и я хочу изменить макет на основе элемента, выбранного в поле со списком ... как мне это достичь? Вот мой пример кода:Как изменить макет Vaadin 7 на основе выбора элементов Combobox?
ComboBox combo = new ComboBox("My combo box");
combo.addItems("item 1", "item 2", "item 3");
combo.setTextInputAllowed(false);
combo.setNullSelectionAllowed(false);
combo.select("item 1");
combo.setImmediate(true);
combo.addValueChangeListener(new Property.ValueChangeListener() {
/**
*/
private static final long serialVersionUID = 1L;
@Override
public void valueChange(ValueChangeEvent event) {
Notification.show("Selected item: " + event.getProperty().getValue(), Type.HUMANIZED_MESSAGE);
}
});
ExampleGrid grid = new ExampleGrid();
grid.setWidth(100, Unit.PERCENTAGE);
Panel panel = new Panel(grid);
panel.setSizeFull();
addComponent(panel);
Таким образом, есть три панели, созданные для трех элементов в поле со списком. Но, я не знаю, как изменить макет на основе элемента, выбранного внутри поля со списком?
Конечно, я могу легко получить первую панель. Но я хочу видеть все три панели на основе выбора со списком.
Спасибо за ваше предложение. Используя перечисление и сохранение корреляции на карте, я сделал. Но проблема с этим подходом заключается в том, что компоновка combobox как-то плавает ниже (она висит как плод в дереве). Вот фрагмент кода, который я использую: 'LinkedHashMap карта = новый LinkedHashMap ();' ' map.put (EnumType.ENUM1, "enum1 Надпись");' ' ComboBox box = new ComboBox («Box», ContainerUtils.createContainerFromMap (map)); '' box.setItemCaptionMode (ComboBox.ITEM_CAPTION_MODE_PROPERTY); ' –
AppKeto
Я уверен, что проблемы с макетом не являются результатом использования перечисления или нет. если это поможет сделать ваш код, пожалуйста, примите ответ. если у вас есть дополнительные вопросы, которые не касаются непосредственно первоначального вопроса, пожалуйста, запустите новый (SO - это сайт QA и без форума) или добавьте соответствующий код/скриншоты в качестве редактирования исходного вопроса, если вы считаете, что проблемы идти рука об руку. – cfrick
Извините, у меня недостаточно очков, чтобы отметить «Этот ответ полезен» здесь. Но я благодарю вас за ваше предложение. Во всяком случае, ваши предложения полезны. ;) – AppKeto