Почему мои кнопки Vaadin NativeButtons не работают?

У меня есть странная проблема, когда у меня есть некоторые кнопки (внутри crudIconGroup), которые становятся отключенными (без анимации кликов или чего-то еще), когда я добавляю AbsoluteLayout (itemNavLayout) рядом с AbsoluteLayout (iconGroupLayout), который их содержит. Они не пересекаются. Вот соответствующие биты моего кода:

private void setupLayouts() {
    borderLayout = new BorderLayout();
    mainLayout.addComponent(borderLayout);
    borderLayout.setSizeFull();
    displayLayout = new AbsoluteLayout();
    iconGroupLayout = new AbsoluteLayout();
    innerDisplayLayout = new AbsoluteLayout();
    crudIconGroup = new CRUDIconGroup();
    headerArea = new HeaderArea();
    footerArea = new FooterArea();
    linkArea = new LinkArea();
    itemNavLayout = new AbsoluteLayout();
}

private void setupHomeView() {
    borderLayout.addComponent(headerArea, BorderLayout.Constraint.NORTH);
    borderLayout.addComponent(footerArea, BorderLayout.Constraint.SOUTH);
    borderLayout.addComponent(displayLayout, BorderLayout.Constraint.CENTER);
    displayLayout.setSizeFull();
    displayLayout.addComponent(iconGroupLayout, "left: 70%; top: 0%;");
    iconGroupLayout.setHeight("21px");
    displayLayout.addComponent(linkArea, "top: 0%; left: 0%;");
    iconGroupLayout.addComponent(crudIconGroup, "top: 0%; right: 5px;");
    //buttons work whenever the statement below is commented out
    displayLayout.addComponent(itemNavLayout, "top: 0px; left: 201px;");
    itemNavLayout.setHeight("25px");
    itemNavLayout.setWidth("60%");
    displayLayout.addComponent(innerDisplayLayout, "top: 21px; left: 201px;");
}

Все кнопки в linkArea работают, а также кнопки в заголовке, независимо от того, присутствует ли itemNavLayout. Кнопки crudIconGroup не работают, но я также сделал довольно простую кнопку и добавил ее в iconGroupLayout, и она не работала так, как кнопки в crudIconGroup. Все кнопки в linkArea и crudIconGroup делают одно и то же: добавляют компонент в innerDisplayLayout, и все они работали раньше.

Я попытался запустить отладчик Eclipse и добавил точки останова в ClickListener, но они не достигаются, когда я пытаюсь щелкнуть. Есть ли что-то еще, на что я должен обратить внимание или попробовать? У меня заканчиваются идеи, и это кажется совершенно случайным.


person jzoller0    schedule 31.10.2014    source источник


Ответы (1)


Я просто изменил порядок добавления компонентов, добавив itemNavLayout перед iconGroupLayout, и это сработало. Я понятия не имею, почему это сработало.

person jzoller0    schedule 31.10.2014
comment
вы используете жестко закодированный CSS - это в основном побеждает всю концепцию vaadin. НИКОГДА и нигде не вводите HTML, JS или CSS - есть целый интерфейс, который абстрагирует и переводит это. - person specializt; 31.10.2014