Created
January 29, 2013 15:35
-
-
Save chrisalexander/4665145 to your computer and use it in GitHub Desktop.
Demo SWT + XULrunner app which fails on tooltips on OS X
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* Copyright (c) 2000, 2004 IBM Corporation and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v1.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/epl-v10.html | |
* | |
* Contributors: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.swt.snippets; | |
/* | |
* Browser example snippet: bring up a browser | |
* | |
* For a list of all SWT example snippets see | |
* http://www.eclipse.org/swt/snippets/ | |
* | |
* @since 3.0 | |
*/ | |
import org.eclipse.swt.*; | |
import org.eclipse.swt.layout.*; | |
import org.eclipse.swt.widgets.*; | |
import org.eclipse.swt.browser.*; | |
public class Snippet128 { | |
public static void main(String [] args) { | |
System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "/Users/dev/xulrunner"); | |
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.MOZILLA); | |
} 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() { | |
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() { | |
public void changed(ProgressEvent event) { | |
if (event.total == 0) return; | |
int ratio = event.current * 100 / event.total; | |
progressBar.setSelection(ratio); | |
} | |
public void completed(ProgressEvent event) { | |
progressBar.setSelection(0); | |
} | |
}); | |
browser.addStatusTextListener(new StatusTextListener() { | |
public void changed(StatusTextEvent event) { | |
status.setText(event.text); | |
} | |
}); | |
browser.addLocationListener(new LocationListener() { | |
public void changed(LocationEvent event) { | |
if (event.top) location.setText(event.location); | |
} | |
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() { | |
public void handleEvent(Event e) { | |
browser.setUrl(location.getText()); | |
} | |
}); | |
shell.open(); | |
browser.setUrl("http://twitter.github.com/bootstrap/javascript.html#tooltips"); | |
while (!shell.isDisposed()) { | |
if (!display.readAndDispatch()) | |
display.sleep(); | |
} | |
display.dispose(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Please change /Users/dev/xulrunner to the installation location on your machine of XULrunner 10.0.4esr.
Note it opens the Bootstrap tooltips docs section - hovering over the blue links in the example should bring up the popups, but you need to click on and off to show/hide respectively.