}
private void initSplitBar(final LayoutRegion region, BoxComponent component,
final BorderLayoutData data) {
SplitBar bar = (SplitBar) component.getData("splitBar");
if (bar == null || bar.getResizeWidget() != component) {
bar = createSplitBar(region, component);
final SplitBar fBar = bar;
Listener splitBarListener = new Listener<ComponentEvent>() {
public void handleEvent(ComponentEvent ce) {
switch (ce.type) {
case Events.DragStart:
switch (region) {
case WEST: {
int min = Math.max(minimumSize, data.getMinSize());
int max = east.getOffsetWidth() + center.getOffsetWidth() - minimumSize;
if (data.getMaxSize() > 0) {
max = Math.min(max, data.getMaxSize());
}
fBar.setMinSize(min);
fBar.setMaxSize(max);
break;
}
case EAST: {
int min = Math.max(minimumSize, data.getMinSize());
int max = west.getOffsetWidth() + center.getOffsetWidth() - minimumSize;
max = Math.min(data.getMaxSize(), max);
fBar.setMinSize(min);
fBar.setMaxSize(max);
break;
}
case NORTH:
int max = south.getOffsetHeight() + center.getOffsetHeight() - minimumSize;
max = Math.min(max, data.getMaxSize());
fBar.setMaxSize(max);
break;
case SOUTH:
// TODO
break;
}