package bndtools.editor.pages; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.forms.events.ExpansionAdapter; import org.eclipse.ui.forms.events.ExpansionEvent; public class ResizeExpansionAdapter extends ExpansionAdapter { private final Composite layoutParent; private final Control control; public ResizeExpansionAdapter(Control control) { this(control.getParent(), control); } public ResizeExpansionAdapter(Composite layoutParent, Control control) { this.layoutParent = layoutParent; this.control = control; } @Override public void expansionStateChanged(ExpansionEvent e) { Object layoutData = (Boolean.TRUE.equals(e.data)) ? PageLayoutUtils.createExpanded() : PageLayoutUtils.createCollapsed(); control.setLayoutData(layoutData); layoutParent.layout(true, true); } }