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(); }
public static void browserTab() { TabItem tab = new TabItem(folder, SWT.CLOSE); tab.setText("A Browser"); tab.setToolTipText("A Web browser"); Browser browser = null; try { browser = new Browser(folder, SWT.NONE); } catch (SWTError e) { Label label = new Label(folder, SWT.BORDER); label.setText("Could not initialize browser"); tab.setControl(label); } if (browser != null) { browser.setUrl("http://www.mindview.net"); tab.setControl(browser); } }
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(); }
void init() { if (MozillaVersion.CheckVersion(MozillaVersion.VERSION_XR10)) { /* * In XULRunner versions > 4, sending WM_GETDLGCODE to a WM_KEYDOWN's MSG hwnd answers 0 * instead of the expected DLGC_WANTALLKEYS. This causes the default traversal framework * perform traversals outside of the Browser when it should not. Hook a Traverse listener * to work around these problems. */ browser.addListener( SWT.Traverse, event -> { switch (event.detail) { case SWT.TRAVERSE_RETURN: { /* always veto the traversal */ event.doit = false; break; } case SWT.TRAVERSE_TAB_NEXT: case SWT.TRAVERSE_TAB_PREVIOUS: { /* veto the traversal whenever an element in the browser has focus */ long /*int*/[] result = new long /*int*/[1]; int rc = XPCOM.NS_GetServiceManager(result); if (rc != XPCOM.NS_OK) Mozilla.error(rc); if (result[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE); nsIServiceManager serviceManager = new nsIServiceManager(result[0]); result[0] = 0; byte[] aContractID = MozillaDelegate.wcsToMbcs(null, XPCOM.NS_FOCUSMANAGER_CONTRACTID, true); rc = serviceManager.GetServiceByContractID( aContractID, IIDStore.GetIID(nsIFocusManager.class, MozillaVersion.VERSION_XR10), result); serviceManager.Release(); if (rc == XPCOM.NS_OK && result[0] != 0) { nsIFocusManager focusManager = new nsIFocusManager(result[0]); result[0] = 0; rc = focusManager.GetFocusedElement(result); focusManager.Release(); event.doit = result[0] == 0; if (rc == XPCOM.NS_OK && result[0] != 0) { new nsISupports(result[0]).Release(); } } break; } } }); /* children created in getSiteHandle() should be destroyed whenever a page is left */ browser.addLocationListener( new LocationAdapter() { @Override public void changing(LocationEvent event) { Iterator<Composite> it = childWindows.iterator(); while (it.hasNext()) { it.next().dispose(); } childWindows.clear(); } }); } }
int PromptAuth(long /*int*/ aChannel, int level, long /*int*/ authInfo, long /*int*/ _retval) { nsIAuthInformation auth = new nsIAuthInformation(authInfo); Browser browser = getBrowser(); if (browser != null) { Mozilla mozilla = (Mozilla) browser.webBrowser; /* * Do not invoke the listeners if this challenge has been failed too many * times because a listener is likely giving incorrect credentials repeatedly * and will do so indefinitely. */ if (mozilla.authCount++ < 3) { for (int i = 0; i < mozilla.authenticationListeners.length; i++) { AuthenticationEvent event = new AuthenticationEvent(browser); event.location = mozilla.lastNavigateURL; mozilla.authenticationListeners[i].authenticate(event); if (!event.doit) { XPCOM.memmove(_retval, new boolean[] {false}); return XPCOM.NS_OK; } if (event.user != null && event.password != null) { nsEmbedString string = new nsEmbedString(event.user); int rc = auth.SetUsername(string.getAddress()); if (rc != XPCOM.NS_OK) SWT.error(rc); string.dispose(); string = new nsEmbedString(event.password); rc = auth.SetPassword(string.getAddress()); if (rc != XPCOM.NS_OK) SWT.error(rc); string.dispose(); XPCOM.memmove(_retval, new boolean[] {true}); return XPCOM.NS_OK; } } } } /* no listener handled the challenge, so show an authentication dialog */ String checkLabel = null; boolean[] checkValue = new boolean[1]; String[] userLabel = new String[1], passLabel = new String[1]; String title = SWT.getMessage("SWT_Authentication_Required"); // $NON-NLS-1$ /* get initial username and password values */ long /*int*/ ptr = XPCOM.nsEmbedString_new(); int rc = auth.GetUsername(ptr); if (rc != XPCOM.NS_OK) SWT.error(rc); int length = XPCOM.nsEmbedString_Length(ptr); long /*int*/ buffer = XPCOM.nsEmbedString_get(ptr); char[] chars = new char[length]; XPCOM.memmove(chars, buffer, length * 2); userLabel[0] = new String(chars); XPCOM.nsEmbedString_delete(ptr); ptr = XPCOM.nsEmbedString_new(); rc = auth.GetPassword(ptr); if (rc != XPCOM.NS_OK) SWT.error(rc); length = XPCOM.nsEmbedString_Length(ptr); buffer = XPCOM.nsEmbedString_get(ptr); chars = new char[length]; XPCOM.memmove(chars, buffer, length * 2); passLabel[0] = new String(chars); XPCOM.nsEmbedString_delete(ptr); /* compute the message text */ ptr = XPCOM.nsEmbedString_new(); rc = auth.GetRealm(ptr); if (rc != XPCOM.NS_OK) SWT.error(rc); length = XPCOM.nsEmbedString_Length(ptr); buffer = XPCOM.nsEmbedString_get(ptr); chars = new char[length]; XPCOM.memmove(chars, buffer, length * 2); String realm = new String(chars); XPCOM.nsEmbedString_delete(ptr); nsIChannel channel = new nsIChannel(aChannel); long /*int*/[] uri = new long /*int*/[1]; rc = channel.GetURI(uri); if (rc != XPCOM.NS_OK) SWT.error(rc); if (uri[0] == 0) Mozilla.error(XPCOM.NS_NOINTERFACE); nsIURI nsURI = new nsIURI(uri[0]); long /*int*/ host = XPCOM.nsEmbedCString_new(); rc = nsURI.GetHost(host); if (rc != XPCOM.NS_OK) SWT.error(rc); length = XPCOM.nsEmbedCString_Length(host); buffer = XPCOM.nsEmbedCString_get(host); byte[] bytes = new byte[length]; XPCOM.memmove(bytes, buffer, length); String hostString = new String(bytes); XPCOM.nsEmbedCString_delete(host); nsURI.Release(); String message; if (realm.length() > 0 && hostString.length() > 0) { message = Compatibility.getMessage( "SWT_Enter_Username_and_Password", new String[] {realm, hostString}); // $NON-NLS-1$ } else { message = ""; // $NON-NLS-1$ } /* open the prompter */ Shell shell = browser == null ? new Shell() : browser.getShell(); PromptDialog dialog = new PromptDialog(shell); boolean[] result = new boolean[1]; dialog.promptUsernameAndPassword( title, message, checkLabel, userLabel, passLabel, checkValue, result); XPCOM.memmove(_retval, result); if (result[0]) { /* User selected OK */ nsEmbedString string = new nsEmbedString(userLabel[0]); rc = auth.SetUsername(string.getAddress()); if (rc != XPCOM.NS_OK) SWT.error(rc); string.dispose(); string = new nsEmbedString(passLabel[0]); rc = auth.SetPassword(string.getAddress()); if (rc != XPCOM.NS_OK) SWT.error(rc); string.dispose(); } return XPCOM.NS_OK; }
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; }