Example usage for org.eclipse.swt.widgets Composite getLayoutData

List of usage examples for org.eclipse.swt.widgets Composite getLayoutData

Introduction

In this page you can find the example usage for org.eclipse.swt.widgets Composite getLayoutData.

Prototype

public Object getLayoutData() 

Source Link

Document

Returns layout data which is associated with the receiver.

Usage

From source file:org.eclipse.swt.snippets.Snippet313.java

public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Snippet 313");
    shell.setLayout(new FormLayout());

    final Button button = new Button(shell, SWT.PUSH);
    button.setText(">>");
    FormData data = new FormData();
    data.top = new FormAttachment(0, 4);
    data.right = new FormAttachment(100, -4);
    button.setLayoutData(data);//from  w  w  w.  j  av  a2s  .  c  o  m

    final Composite composite = new Composite(shell, SWT.BORDER);
    final FormData down = new FormData();
    down.top = new FormAttachment(button, 4, SWT.BOTTOM);
    down.bottom = new FormAttachment(100, -4);
    down.left = new FormAttachment(0, 4);
    down.right = new FormAttachment(100, -4);
    final FormData up = new FormData();
    up.top = new FormAttachment(0);
    up.bottom = new FormAttachment(0);
    up.left = new FormAttachment(0);
    up.right = new FormAttachment(0);
    composite.setLayoutData(up);

    button.addSelectionListener(widgetSelectedAdapter(e -> {
        if (composite.getLayoutData() == up) {
            composite.setLayoutData(down);
            button.setText("<<");
        } else {
            composite.setLayoutData(up);
            button.setText(">>");
        }
        shell.pack();
    }));

    shell.pack();
    shell.open();

    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}