Рост ребенка в SplitLayoutPanel - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть панель SplitLayoutPanel. В северной ячейке у меня есть ScrollPanel с деревом на нем. Я хочу, чтобы высота ScrollPanel была такой же, как и у северной ячейки, поэтому когда дерево раскроется, появится свиток. Размер этой ScrollPanel должен быть изменен при изменении размера северной ячейки. Я пытался с RequireResizes, но родитель не отправляет размер информация ... Идеальный подход должен заключаться в том, чтобы виджеты ProvidesSize вызывали метод onResize с доступным размером для потомков виджета RequireSize

Я очень смущен. Как настроить SplitLayoutPanel, чтобы иметь ячейку дети изменили размеры?

Спасибо

1 Ответ

0 голосов
/ 30 ноября 2010

Создайте класс, расширяющий Composite, и реализуйте RequResize; вот так:

public class MyScrollPanel extends Composite implements RequiresResize {
 private ScrollPanel scrollPanel;

 public MyScrollPanel() {
  scrollPanel = new ScrollPanel();
  initWidget(scrollPanel);
 }

 public void onResize() {
  // do something to your scrollpanel
 }

}

Затем добавьте MyScrollPanel в северную ячейку в SplitLayoutPanel.

EDIT
Однако. Оказывается, ScrollPanel уже имеет желаемое поведение по умолчанию. ScrollPanel, добавленная в ячейку SplitLayoutPanel, автоматически заполнит размер ячейки даже при изменении размера. И любой дочерний виджет ScrollPanel, размер которого превышает доступное пространство, приведет к появлению полосы прокрутки.

Но убедитесь, что вы добавляете SplitLayoutPanel в RootLayoutPanel, выполнив RootLayoutPanel.get().add(splitLayoutPanel);

...