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

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

Introduction

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

Prototype

public Point getLocation() 

Source Link

Document

Returns a point describing the receiver's location relative to its parent (or its display if its parent is null), unless the receiver is a shell.

Usage

From source file:Snippet9.java

public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.H_SCROLL | SWT.V_SCROLL);
    final Composite composite = new Composite(shell, SWT.BORDER);
    composite.setSize(200, 400);//  w  ww .  j  a  va2s.c  om
    final ScrollBar hBar = shell.getHorizontalBar();
    hBar.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            Point location = composite.getLocation();
            location.x = -hBar.getSelection();
            composite.setLocation(location);
        }
    });
    final ScrollBar vBar = shell.getVerticalBar();
    vBar.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event e) {
            Point location = composite.getLocation();
            location.y = -vBar.getSelection();
            composite.setLocation(location);
        }
    });
    shell.addListener(SWT.Resize, new Listener() {
        public void handleEvent(Event e) {
            Point size = composite.getSize();
            Rectangle rect = shell.getClientArea();
            hBar.setMaximum(size.x);
            vBar.setMaximum(size.y);
            hBar.setThumb(Math.min(size.x, rect.width));
            vBar.setThumb(Math.min(size.y, rect.height));
            int hPage = size.x - rect.width;
            int vPage = size.y - rect.height;
            int hSelection = hBar.getSelection();
            int vSelection = vBar.getSelection();
            Point location = composite.getLocation();
            if (hSelection >= hPage) {
                if (hPage <= 0)
                    hSelection = 0;
                location.x = -hSelection;
            }
            if (vSelection >= vPage) {
                if (vPage <= 0)
                    vSelection = 0;
                location.y = -vSelection;
            }
            composite.setLocation(location);
        }
    });
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

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

public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.H_SCROLL | SWT.V_SCROLL);
    shell.setText("Snippet 9");
    final Composite composite = new Composite(shell, SWT.BORDER);
    composite.setSize(700, 600);//w  ww . j a  v  a 2 s. c o m
    final Color red = display.getSystemColor(SWT.COLOR_RED);
    composite.addPaintListener(e -> {
        e.gc.setBackground(red);
        e.gc.fillOval(5, 5, 690, 590);
    });
    final ScrollBar hBar = shell.getHorizontalBar();
    hBar.addListener(SWT.Selection, e -> {
        Point location = composite.getLocation();
        location.x = -hBar.getSelection();
        composite.setLocation(location);
    });
    final ScrollBar vBar = shell.getVerticalBar();
    vBar.addListener(SWT.Selection, e -> {
        Point location = composite.getLocation();
        location.y = -vBar.getSelection();
        composite.setLocation(location);
    });
    shell.addListener(SWT.Resize, e -> {
        Point size = composite.getSize();
        Rectangle rect = shell.getClientArea();
        hBar.setMaximum(size.x);
        vBar.setMaximum(size.y);
        hBar.setThumb(Math.min(size.x, rect.width));
        vBar.setThumb(Math.min(size.y, rect.height));
        int hPage = size.x - rect.width;
        int vPage = size.y - rect.height;
        int hSelection = hBar.getSelection();
        int vSelection = vBar.getSelection();
        Point location = composite.getLocation();
        if (hSelection >= hPage) {
            if (hPage <= 0)
                hSelection = 0;
            location.x = -hSelection;
        }
        if (vSelection >= vPage) {
            if (vPage <= 0)
                vSelection = 0;
            location.y = -vSelection;
        }
        composite.setLocation(location);
    });
    shell.setSize(600, 500);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}