Search in sources :

Example 6 with Sash

use of org.eclipse.swt.widgets.Sash in project cogtool by cogtool.

the class SashUtility method createVerticalSash.

public static Sash createVerticalSash(Composite parent, int leftMinSize, int rightMinSize, int loc, Composite left, FormData leftData, Composite right, FormData rightData) {
    parent.setLayout(new FormLayout());
    FormData sashData = new FormData();
    final Sash sash = new Sash(parent, SWT.VERTICAL | SWT.SMOOTH);
    SashAdjustment listener = new SashAdjustment(parent, leftMinSize, rightMinSize, sash, sashData, -1);
    // If the sash is "dragged" update the layout to demonstrate the change.
    sash.addListener(SWT.Selection, listener);
    // Add a listener on the shell to listen for resize events.
    // Need to update the sash so that it maintains the min size
    // property
    parent.addControlListener(listener);
    // For now, the initial sash percentage is unset:
    int sashPercentage = -1;
    // Use the static SashPrecentage if it is set.
    if (loc == SWT.RIGHT) {
        if (sashPercentage == -1) {
            sashData.left = new FormAttachment(100, -rightMinSize);
        } else {
            sashData.left = new FormAttachment(sashPercentage, 0);
        }
    } else {
        if (sashPercentage == -1) {
            sashData.left = new FormAttachment(0, leftMinSize);
        } else {
            sashData.left = new FormAttachment(100 - sashPercentage, 0);
        }
    }
    sashData.top = new FormAttachment(0, 0);
    sashData.bottom = new FormAttachment(100, 0);
    sash.setLayoutData(sashData);
    leftData.right = new FormAttachment(sash, 0, SWT.LEFT);
    left.setLayoutData(leftData);
    rightData.left = new FormAttachment(sash, 0, SWT.RIGHT);
    right.setLayoutData(rightData);
    return sash;
}
Also used : FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) Sash(org.eclipse.swt.widgets.Sash) FormAttachment(org.eclipse.swt.layout.FormAttachment)

Example 7 with Sash

use of org.eclipse.swt.widgets.Sash in project bndtools by bndtools.

the class SashHighlightForm method setSashBackground.

public void setSashBackground(Color color) {
    try {
        Field bgfield = SashForm.class.getDeclaredField("background");
        bgfield.setAccessible(true);
        bgfield.set(this, color);
        Field sashesField = SashForm.class.getDeclaredField("sashes");
        sashesField.setAccessible(true);
        Sash[] sashes = (Sash[]) sashesField.get(this);
        for (Sash sash : sashes) {
            sash.setBackground(color);
        }
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}
Also used : Field(java.lang.reflect.Field) Sash(org.eclipse.swt.widgets.Sash)

Aggregations

Sash (org.eclipse.swt.widgets.Sash)7 Point (org.eclipse.swt.graphics.Point)4 Field (java.lang.reflect.Field)2 DoubleClickEvent (org.eclipse.jface.viewers.DoubleClickEvent)2 IDoubleClickListener (org.eclipse.jface.viewers.IDoubleClickListener)2 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)2 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)2 DisposeEvent (org.eclipse.swt.events.DisposeEvent)2 DisposeListener (org.eclipse.swt.events.DisposeListener)2 MenuDetectEvent (org.eclipse.swt.events.MenuDetectEvent)2 MenuDetectListener (org.eclipse.swt.events.MenuDetectListener)2 SelectionEvent (org.eclipse.swt.events.SelectionEvent)2 ShellEvent (org.eclipse.swt.events.ShellEvent)2 GridData (org.eclipse.swt.layout.GridData)2 Event (org.eclipse.swt.widgets.Event)2 Listener (org.eclipse.swt.widgets.Listener)2 GC (org.eclipse.swt.graphics.GC)1 FormAttachment (org.eclipse.swt.layout.FormAttachment)1 FormData (org.eclipse.swt.layout.FormData)1 FormLayout (org.eclipse.swt.layout.FormLayout)1