package logbook.gui.logic;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
/**
* レイアウトを操作します
*
*/
public final class LayoutLogic {
private static void recirsivelySetExclude(Control widget, boolean hide) {
Object data = widget.getLayoutData();
if (data instanceof GridData) {
((GridData) data).exclude = hide;
}
if (widget instanceof Composite) {
Control[] controls = ((Composite) widget).getChildren();
for (Control control : controls) {
recirsivelySetExclude(control, hide);
}
}
}
/**
* ウィジェットを非表示または表示します。
*
* @param widget
* @param hide
*/
public static void hide(Control widget, boolean hide) {
widget.setVisible(!hide);
recirsivelySetExclude(widget, hide);
}
/**
* ウィジェットを無効または有効にします。
*
* @param widget
* @param enabled
*/
public static void enable(Control widget, boolean enabled) {
if (widget instanceof Composite) {
Control[] controls = ((Composite) widget).getChildren();
for (Control control : controls) {
enable(control, enabled);
}
}
widget.setEnabled(enabled);
}
}