public void test_changedLorg_eclipse_swt_browser_ProgressEvent() { Display display = Display.getCurrent(); Shell shell = new Shell(display); Browser browser = new Browser(shell, SWT.NONE); browser.addProgressListener( new ProgressListener() { public void changed(ProgressEvent event) {} public void completed(ProgressEvent event) {} }); shell.close(); }
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(2, true)); final Browser browser; try { browser = new Browser(shell, SWT.NONE); } catch (SWTError e) { System.out.println("Could not instantiate Browser: " + e.getMessage()); display.dispose(); return; } GridData data = new GridData(GridData.FILL_BOTH); data.horizontalSpan = 2; browser.setLayoutData(data); Button headersButton = new Button(shell, SWT.PUSH); headersButton.setText("Send custom headers"); data = new GridData(); data.horizontalAlignment = GridData.FILL; headersButton.setLayoutData(data); headersButton.addListener( SWT.Selection, event -> browser.setUrl( "http://www.ericgiguere.com/tools/http-header-viewer.html", null, new String[] {"User-agent: SWT Browser", "Custom-header: this is just a demo"})); Button postDataButton = new Button(shell, SWT.PUSH); postDataButton.setText("Send post data"); data = new GridData(); data.horizontalAlignment = GridData.FILL; postDataButton.setLayoutData(data); postDataButton.addListener( SWT.Selection, event -> browser.setUrl( "https://bugs.eclipse.org/bugs/buglist.cgi", "emailassigned_to1=1&bug_severity=enhancement&bug_status=NEW&email1=platform-swt-inbox&emailtype1=substring", null)); shell.setBounds(10, 10, 600, 600); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
static boolean runLoopTimer(final Display display, final Shell shell, final int seconds) { final boolean[] timeout = {false}; new Thread() { public void run() { try { for (int i = 0; i < seconds; i++) { Thread.sleep(1000); if (display.isDisposed() || shell.isDisposed()) return; } } catch (Exception e) { } timeout[0] = true; /* wake up the event loop */ if (!display.isDisposed()) { display.asyncExec( new Runnable() { public void run() { if (!shell.isDisposed()) shell.redraw(); } }); } } }.start(); while (!timeout[0] && !shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); return timeout[0]; }
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); shell.setText("Mozilla"); final Browser browser; try { browser = new Browser(shell, SWT.MOZILLA); } catch (SWTError e) { System.out.println("Could not instantiate Browser: " + e.getMessage()); display.dispose(); return; } shell.open(); browser.setUrl("http://mozilla.org"); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
public static void main(String[] args) { Display display = new Display(); final Shell shell = new Shell(display); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 3; shell.setLayout(gridLayout); ToolBar toolbar = new ToolBar(shell, SWT.NONE); ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH); itemBack.setText("Back"); ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH); itemForward.setText("Forward"); ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH); itemStop.setText("Stop"); ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH); itemRefresh.setText("Refresh"); ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH); itemGo.setText("Go"); GridData data = new GridData(); data.horizontalSpan = 3; toolbar.setLayoutData(data); Label labelAddress = new Label(shell, SWT.NONE); labelAddress.setText("Address"); final Text location = new Text(shell, SWT.BORDER); data = new GridData(); data.horizontalAlignment = GridData.FILL; data.horizontalSpan = 2; data.grabExcessHorizontalSpace = true; location.setLayoutData(data); final Browser browser; try { browser = new Browser(shell, SWT.NONE); } catch (SWTError e) { System.out.println("Could not instantiate Browser: " + e.getMessage()); display.dispose(); return; } data = new GridData(); data.horizontalAlignment = GridData.FILL; data.verticalAlignment = GridData.FILL; data.horizontalSpan = 3; data.grabExcessHorizontalSpace = true; data.grabExcessVerticalSpace = true; browser.setLayoutData(data); final Label status = new Label(shell, SWT.NONE); data = new GridData(GridData.FILL_HORIZONTAL); data.horizontalSpan = 2; status.setLayoutData(data); final ProgressBar progressBar = new ProgressBar(shell, SWT.NONE); data = new GridData(); data.horizontalAlignment = GridData.END; progressBar.setLayoutData(data); /* event handling */ Listener listener = new Listener() { @Override public void handleEvent(Event event) { ToolItem item = (ToolItem) event.widget; String string = item.getText(); if (string.equals("Back")) browser.back(); else if (string.equals("Forward")) browser.forward(); else if (string.equals("Stop")) browser.stop(); else if (string.equals("Refresh")) browser.refresh(); else if (string.equals("Go")) browser.setUrl(location.getText()); } }; browser.addProgressListener( new ProgressListener() { @Override public void changed(ProgressEvent event) { if (event.total == 0) return; int ratio = event.current * 100 / event.total; progressBar.setSelection(ratio); } @Override public void completed(ProgressEvent event) { progressBar.setSelection(0); } }); browser.addStatusTextListener( new StatusTextListener() { @Override public void changed(StatusTextEvent event) { status.setText(event.text); } }); browser.addLocationListener( new LocationListener() { @Override public void changed(LocationEvent event) { if (event.top) location.setText(event.location); } @Override public void changing(LocationEvent event) {} }); itemBack.addListener(SWT.Selection, listener); itemForward.addListener(SWT.Selection, listener); itemStop.addListener(SWT.Selection, listener); itemRefresh.addListener(SWT.Selection, listener); itemGo.addListener(SWT.Selection, listener); location.addListener( SWT.DefaultSelection, new Listener() { @Override public void handleEvent(Event e) { browser.setUrl(location.getText()); } }); shell.open(); browser.setUrl("http://eclipse.org"); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
public static boolean test1(String url) { if (verbose) System.out.println( "javascript window.open with location and size parameters - args: " + url + "\n Expected Event Sequence: Visibility.show"); passed = false; final Display display = new Display(); final Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final Browser browser = new Browser(shell, SWT.NONE); browser.addOpenWindowListener( new OpenWindowListener() { public void open(WindowEvent event) { if (verbose) System.out.println("OpenWindow " + index); Shell newShell = new Shell(display); newShell.setLayout(new FillLayout()); Browser browser = new Browser(newShell, SWT.NONE); browser.setData("index", new Integer(index)); browser.addVisibilityWindowListener( new VisibilityWindowListener() { public void hide(WindowEvent event) {} public void show(WindowEvent event) { Browser browser = (Browser) event.widget; Shell parent = browser.getShell(); Point location = event.location; Point size = event.size; if (location != null) parent.setLocation(location); if (size != null) parent.setSize(size); int index = ((Integer) browser.getData("index")).intValue(); parent.setText("SWT Browser shell " + index); parent.open(); if (index < 0) { /* Certain browsers fire multiple show events for no good reason. Further show events * are considered 'legal' as long as they don't contain size and location information. */ if (location != null || size != null) { if (verbose) System.out.println( "Failure - Browser " + index + " is receiving multiple show events"); passed = false; shell.close(); } else { if (verbose) System.out.println( "Unnecessary (but harmless) visibility.show event Browser " + index); } } else { if (verbose) System.out.println( "Visibility.show browser " + index + " location " + location + " size " + size); browser.setData("index", new Integer(-100 - index)); /* Certain browsers include decorations in addition to the expected size. * Accept sizes that are greater than or equal to the expected size. * Certain browsers invent size or location when some parameters are missing. * If we expect null for one of size or location, also accept non null answers. */ Point expectedLocation = regressionBounds[index][0]; Point expectedSize = regressionBounds[index][1]; if (verbose) System.out.println( "Expected location " + expectedLocation + " size " + expectedSize); boolean checkLocation = (location == null && expectedLocation == null) || (location != null && location.equals(expectedLocation) || (location != null && expectedLocation == null)); boolean checkSize = (size == null && expectedSize == null) || (size != null && size.equals(expectedSize)) || (size != null && expectedSize == null) || (size != null && size.x >= expectedSize.x && size.y >= expectedSize.y); if (!checkSize || !checkLocation) { if (verbose) System.out.println(" Failure "); passed = false; shell.close(); return; } else cntPassed++; } } }); browser.addCloseWindowListener( new CloseWindowListener() { public void close(WindowEvent event) { cntClosed++; if (verbose) System.out.println("Close"); Browser browser = (Browser) event.widget; browser.getShell().close(); if (cntPassed == regressionBounds.length) passed = true; if (cntClosed == regressionBounds.length) { shell.close(); return; } } }); event.browser = browser; index++; } }); shell.open(); browser.setUrl(url); boolean timeout = runLoopTimer(display, shell, 600); if (timeout) passed = false; display.dispose(); return passed; }