Search in sources :

Example 1 with OpenCloseSearchDetailsListener

use of com.biglybt.ui.swt.browser.OpenCloseSearchDetailsListener in project BiglyBT by BiglySoftware.

the class BrowserWindow method init.

public void init(Shell parent, String url, int w, int h, boolean allowResize, boolean isModal) {
    int style = SWT.DIALOG_TRIM;
    if (allowResize) {
        style |= SWT.RESIZE;
    }
    if (isModal) {
        style |= SWT.APPLICATION_MODAL;
    }
    shell = ShellFactory.createShell(parent, style);
    shell.setLayout(new FillLayout());
    Utils.setShellIcon(shell);
    shell.setText(url);
    shell.addTraverseListener(new TraverseListener() {

        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_ESCAPE) {
                shell.dispose();
                e.doit = false;
            }
        }
    });
    final Listener escListener = new Listener() {

        @Override
        public void handleEvent(Event event) {
            if (event.keyCode == 27) {
                shell.dispose();
            }
        }
    };
    shell.getDisplay().addFilter(SWT.KeyDown, escListener);
    shell.addListener(SWT.Dispose, new Listener() {

        @Override
        public void handleEvent(Event event) {
            event.display.removeFilter(SWT.KeyDown, escListener);
        }
    });
    browser = Utils.createSafeBrowser(shell, SWT.NONE);
    if (browser == null) {
        shell.dispose();
        return;
    }
    context = new BrowserContext("browser-window" + Math.random(), browser, null, true);
    context.addMessageListener(new TorrentListener());
    context.addMessageListener(new VuzeListener());
    context.addMessageListener(new DisplayListener());
    context.addMessageListener(new ConfigListener(browser));
    context.addMessageListener(new MetaSearchListener(new OpenCloseSearchDetailsListener() {

        @Override
        public void resizeSecondaryBrowser() {
        }

        @Override
        public void resizeMainBrowser() {
        }

        @Override
        public void openSearchResults(Map params) {
        }

        @Override
        public void closeSearchResults(Map params) {
            if (browser.isDisposed() || browser.getShell().isDisposed()) {
                return;
            }
            shell.dispose();
        }
    }));
    browser.addProgressListener(new ProgressListener() {

        @Override
        public void completed(ProgressEvent event) {
            if (browser.isDisposed() || browser.getShell().isDisposed()) {
                return;
            }
            shell.open();
        }

        @Override
        public void changed(ProgressEvent event) {
        }
    });
    browser.addCloseWindowListener(new CloseWindowListener() {

        @Override
        public void close(WindowEvent event) {
            if (browser.isDisposed() || browser.getShell().isDisposed()) {
                return;
            }
            context.debug("window.close called");
            shell.dispose();
        }
    });
    browser.addTitleListener(new TitleListener() {

        @Override
        public void changed(TitleEvent event) {
            if (browser.isDisposed() || browser.getShell().isDisposed()) {
                return;
            }
            shell.setText(event.title);
        }
    });
    browser.addStatusTextListener(new StatusTextListener() {

        @Override
        public void changed(StatusTextEvent event) {
            if (browser.isDisposed() || browser.getShell().isDisposed()) {
                return;
            }
            if (MessageBoxShell.STATUS_TEXT_CLOSE.equals(event.text)) {
                // For some reason disposing the shell / browser in the same Thread makes
                // ieframe.dll crash on windows.
                Utils.execSWTThreadLater(0, new Runnable() {

                    @Override
                    public void run() {
                        if (!browser.isDisposed() && !shell.isDisposed()) {
                            shell.close();
                        }
                    }
                });
            }
        }
    });
    SimpleTimer.addEvent("showWin", SystemTime.getOffsetTime(3000), new TimerEventPerformer() {

        @Override
        public void perform(TimerEvent event) {
            Utils.execSWTThread(new AERunnable() {

                @Override
                public void runSupport() {
                    if (shell != null && !shell.isDisposed()) {
                        shell.open();
                    }
                }
            });
        }
    });
    if (w > 0 && h > 0) {
        Rectangle computeTrim = shell.computeTrim(0, 0, w, h);
        shell.setSize(computeTrim.width, computeTrim.height);
    // shell.setSize(w, h);
    }
    Utils.centerWindowRelativeTo(shell, parent);
    browser.setUrl(url);
    browser.setData("StartURL", url);
}
Also used : OpenCloseSearchDetailsListener(com.biglybt.ui.swt.browser.OpenCloseSearchDetailsListener) TitleListener(org.eclipse.swt.browser.TitleListener) StatusTextListener(org.eclipse.swt.browser.StatusTextListener) OpenCloseSearchDetailsListener(com.biglybt.ui.swt.browser.OpenCloseSearchDetailsListener) TitleListener(org.eclipse.swt.browser.TitleListener) ProgressListener(org.eclipse.swt.browser.ProgressListener) CloseWindowListener(org.eclipse.swt.browser.CloseWindowListener) Rectangle(org.eclipse.swt.graphics.Rectangle) StatusTextListener(org.eclipse.swt.browser.StatusTextListener) ProgressEvent(org.eclipse.swt.browser.ProgressEvent) StatusTextEvent(org.eclipse.swt.browser.StatusTextEvent) CloseWindowListener(org.eclipse.swt.browser.CloseWindowListener) BrowserContext(com.biglybt.ui.swt.browser.BrowserContext) FillLayout(org.eclipse.swt.layout.FillLayout) TitleEvent(org.eclipse.swt.browser.TitleEvent) ProgressListener(org.eclipse.swt.browser.ProgressListener) WindowEvent(org.eclipse.swt.browser.WindowEvent) StatusTextEvent(org.eclipse.swt.browser.StatusTextEvent) ProgressEvent(org.eclipse.swt.browser.ProgressEvent) WindowEvent(org.eclipse.swt.browser.WindowEvent) TitleEvent(org.eclipse.swt.browser.TitleEvent) Map(java.util.Map)

Aggregations

BrowserContext (com.biglybt.ui.swt.browser.BrowserContext)1 OpenCloseSearchDetailsListener (com.biglybt.ui.swt.browser.OpenCloseSearchDetailsListener)1 Map (java.util.Map)1 CloseWindowListener (org.eclipse.swt.browser.CloseWindowListener)1 ProgressEvent (org.eclipse.swt.browser.ProgressEvent)1 ProgressListener (org.eclipse.swt.browser.ProgressListener)1 StatusTextEvent (org.eclipse.swt.browser.StatusTextEvent)1 StatusTextListener (org.eclipse.swt.browser.StatusTextListener)1 TitleEvent (org.eclipse.swt.browser.TitleEvent)1 TitleListener (org.eclipse.swt.browser.TitleListener)1 WindowEvent (org.eclipse.swt.browser.WindowEvent)1 Rectangle (org.eclipse.swt.graphics.Rectangle)1 FillLayout (org.eclipse.swt.layout.FillLayout)1