Я разрабатываю веб-приложение в рамках Vaadin.По моему мнению, в моем приложении очень странное поведение, с которым, я надеюсь, некоторые из вас знакомы или знают, как обойти это.
Это соответствующий код:
AbstractComponent horizontalLine = Cf.horizontalLine();
horizontalLine.addStyleName("m2m-horizontal-line-list-separator");
horizontalLine.setWidth("100%");
horizontalLine.setParent(null);
SVerticalLayout spacer = Cf.vLayout(new SLabel(""));
spacer.setMargin(true);
CssLayout cssLayout = new CssLayout();
cssLayout.addStyleName("m2m-css-style");
cssLayout.addComponent(inventoryFilterPanel);
cssLayout.addComponent(horizontalLine);
cssLayout.addComponent(simCardTable);
Panel basePanel = new Panel("");
basePanel.setContent(cssLayout);
basePanel.addStyleName("m2m-base-panel");
basePanel.setSizeFull();
basePanel.getContent().setSizeUndefined();
addStyleName("m2m-tab-main-view");
setMargin(false);
addComponent(basePanel);
setExpandRatio(basePanel, 1);
РЕДАКТИРОВАТЬ: Добавление соответствующего CSS:
.m2m-horizontal-line-list-separator {
width: 97%;
margin-top: 20px;
margin-bottom: 20px;
}
.m2m-css-style {
margin: 10px;
}
.v-panel-content-m2m-base-panel .v-verticallayout {
min-width: 100%;
}
.m2m-tab-main-view {
/**Didn't have any CSS inside it*/
}
РЕДАКТИРОВАНИЕ 2: Изображение, показывающее проблему
РЕДАКТИРОВАНИЕ 3: Снимок экрана сгенерированной разметки из Firebug
В разметке вы видите: -Панель, содержащую CssLayout.-Внутри CssLayout у нас есть первый экземпляр строки, который не должен быть там, который также отмечен.- Следующий div это VerticalLayout, который содержит filterPanel.-Далее у нас есть строка, которая является правильной, и, наконец, у нас есть таблица.
Абстрактный компонент 'горизонтальная линия' работает как разделитель для разделения компонента filterPanel и таблицы.Согласно коду он добавляется один раз, однако по какой-то странной причине в браузере он добавляется два раза.Один экземпляр добавляется там, где я хочу, а другой добавляется в верхнюю часть cssLayout, над всем остальным!Безумно верно !?= P
Понятия не имею, почему это так.Как видно из кода, есть только один его экземпляр, и он добавляется только один раз ... Кто-нибудь имеет представление о том, что происходит?
Спасибо!/ Max