Package databrowser

Source Code of databrowser.Viewer

package databrowser;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Shell;
import org.gumtree.data.ui.viewers.DatasetViewer;

public class Viewer {

    /**
     * @param args
     */
    public static void main(String[] args) {

        final Display display = new Display();
        final Image image = new Image(display,
                Viewer.class.getResourceAsStream("DataBrowserSplash.jpg"));
        final Shell splash = new Shell(SWT.ON_TOP);
        final ProgressBar bar = new ProgressBar(splash, SWT.NONE);
        bar.setMaximum(10);
        Label label = new Label(splash, SWT.NONE);
        label.setImage(image);
        FormLayout layout = new FormLayout();
        splash.setLayout(layout);
        FormData labelData = new FormData();
        labelData.right = new FormAttachment(100, 0);
        labelData.bottom = new FormAttachment(100, 0);
        label.setLayoutData(labelData);
        FormData progressData = new FormData();
        progressData.left = new FormAttachment(0, 5);
        progressData.right = new FormAttachment(100, -5);
        progressData.bottom = new FormAttachment(100, -5);
        bar.setLayoutData(progressData);
        splash.pack();
        // dual screen detection over 21 inches 1600 pixel
        Rectangle splashRect = splash.getBounds();
        Rectangle displayRect = oneScreenBound();
        int x = (displayRect.width - splashRect.width) / 2;
        int y = (displayRect.height - splashRect.height) / 2;
        splash.setLocation(x, y);
        splash.open();
        display.asyncExec(new Runnable() {
            public void run() {
                try {
                    Shell shell = new Shell(display);
                    bar.setSelection(1);
                    Thread.sleep(500);
                    shell.setLayout(new FillLayout());
                    bar.setSelection(2);
                    Thread.sleep(500);
                    Rectangle displayRect = oneScreenBound();
                    shell.setSize(displayRect.width, displayRect.height);
                    shell.setLocation(0, 0);
                    bar.setSelection(3);
                    Thread.sleep(500);
                    shell.setSize(1280, 1024);
                    bar.setSelection(4);
                    Thread.sleep(500);
                    new DatasetViewer(shell, SWT.NONE);
                    bar.setSelection(8);
                    Thread.sleep(1000);
                    shell.open();
                    bar.setSelection(9);
                    Thread.sleep(500);
                    bar.setSelection(10);
                    Thread.sleep(500);
                    splash.close();
                    image.dispose();
                }
                catch (InterruptedException e) {
                    System.exit(0);
                }
            }
        });
        while (!display.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        if (display != null && !display.isDisposed()) {
            display.dispose();
        }
        System.exit(0);
    }

    private static Rectangle oneScreenBound() {
        // dual screen detection over 21 inches 1600 pixel
        Rectangle displayRect = Display.getCurrent().getBounds();
        int width = displayRect.width;
        int height = displayRect.height;
        if (displayRect.width > 1600) {
            width = width / 2;
        }

        return new Rectangle(0, 0, width, height);

    }
}
TOP

Related Classes of databrowser.Viewer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.