Стилизация DockLayoutPanel GWT

Я пытаюсь создать DockLayoutPanel с помощью GWT. Он должен занимать весь экран.

DockLayoutPanel dockPanel = new DockLayoutPanel(Unit.EM);
dockPanel.addSouth(new HTML("South"), 2);
dockPanel.addNorth(new HTML("North"), 2);
dockPanel.addEast(new HTML("Easat"), 2);
dockPanel.addWest(new HTML("West"), 2);
dockPanel.add(new HTML("Center"));
RootLayoutPanel.get().add(dockPanel);
  1. Я считаю, что вторым параметром методов добавления является ширина соответствующих панелей. Как макет определяет высоту панели?
  2. Как я могу стилизовать макет, например, добавить границу к панелям, расстояние между панелями, добавить заголовки панелей на одной линии с границей?
  3. Должны ли цвета фона панели задаваться с помощью CSS или есть способ сделать это с помощью java?
  4. Могу ли я сделать эти панели панелями перетаскивания?

person Mithun    schedule 06.01.2011    source источник


Ответы (2)


1) Второй параметр - это действительно размер панели. Это будет ширина или высота, в зависимости от положения макета. Используйте Unit.PX или Unit.PC для получения более четкого результата, модуль EM вначале может сбивать с толку.

2) Используйте стили CSS.

3) Опять же, используйте CSS

4) Невозможно использовать только GWT. Взгляните на проект GWT-Mosaic. Специально для макета «Перетаскивание столбцов/строк»: http://mosaic.analytical-labs.com/#CwDNDColumnRowLayout

person Carlos Tasada    schedule 06.01.2011

1) Высота и т. д. определяются с использованием обычных правил разметки HTML. Высота и ширина панели — это просто высота и ширина содержащего ее элемента div.

2) Настройте его с помощью CSS так же, как и любой другой элемент div. UiBinder делает это довольно просто.

3) Да, используйте CSS. Вы можете позвонить getElement() и getStyle(), если вы хотите управлять им напрямую или addStyleName(), чтобы добавить класс CSS. Тем не менее, UiBinder, вероятно, лучше, чем делать это на Java.

4) Насколько я знаю, нет никакого способа сделать это из коробки. Вам нужно будет написать некоторый код, чтобы справиться с этим. SplitLayoutPanel позволит вам изменить размеры панелей, но не позиции.

person gk5885    schedule 06.01.2011