Using eSWT Browser in Java ME
hamishwillee
(Talk | contribs) m (Text replace - "Category:S60 3rd Edition, Feature Pack 2" to "Category:S60 3rd Edition FP2") |
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot update) |
||
| Line 1: | Line 1: | ||
| − | [[Category:S60 3rd Edition FP2]][[Category:Java ME]][[Category:MIDP 2.0]][[Category:eSWT]][[Category:Code | + | {{Archived|timestamp=20120313125655|user=roy.debjit| }} |
| − | + | [[Category:S60 3rd Edition FP2]][[Category:Java ME]][[Category:MIDP 2.0]][[Category:eSWT]][[Category:Code Snippet]][[Category:Browser]][[Category:Code Snippet]] | |
| − | + | {{ArticleMetaData <!-- v1.2 --> | |
| − | + | ||
| − | {{ArticleMetaData | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | |sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | ||
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | ||
| − | |sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> | + | |devices= S60 3rd Ed. FP2 SDK |
| − | |devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) --> | + | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> |
| − | |signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | + | |platform= S60 3rd Edition, FP2 |
| − | |capabilities=<!-- Capabilities required (e.g. Location, NetworkServices. --> | + | |devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) --> |
| − | |author=[[User:Jarmlaht]] | + | |dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> |
| + | |signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | ||
| + | |capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> | ||
| + | |keywords= eSWT, Browser, QueryDialog, MobileShell, MessageBox | ||
| + | |language= <!-- Language category code for non-English topics - e.g. Lang-Chinese --> | ||
| + | |translated-by= <!-- [[User:XXXX]] --> | ||
| + | |translated-from-title= <!-- Title only --> | ||
| + | |translated-from-id= <!-- Id of translated revision --> | ||
| + | |review-by= <!-- After re-review: [[User:username]] --> | ||
| + | |review-timestamp= <!-- After re-review: YYYYMMDD --> | ||
| + | |update-by= <!-- After significant update: [[User:username]]--> | ||
| + | |update-timestamp= <!-- After significant update: YYYYMMDD --> | ||
| + | |creationdate= 20080520 | ||
| + | |author= [[User:Jarmlaht]] | ||
| + | <!-- The following are not in current metadata --> | ||
| + | |subcategory= eSWT, Browsing | ||
| + | |id= CS000974 | ||
}} | }} | ||
| − | |||
==Overview== | ==Overview== | ||
| Line 155: | Line 160: | ||
==Postconditions== | ==Postconditions== | ||
| − | When a | + | When a {{Icode|BrowserMIDlet}} is opened, a browser window is shown on the screen. The browser will open the URL http://forumnokia.mobi. |
==See also== | ==See also== | ||
* [[ESWT|eSWT]] | * [[ESWT|eSWT]] | ||
Revision as of 07:08, 10 May 2012
Archived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.
Article Metadata
Tested with
Devices(s): S60 3rd Ed. FP2 SDK
Compatibility
Platform(s): S60 3rd Edition, FP2
Article
Keywords: eSWT, Browser, QueryDialog, MobileShell, MessageBox
Created: jarmlaht
(20 May 2008)
Last edited: hamishwillee
(10 May 2012)
Contents |
Overview
This code snippet demonstrates how to use eSWT's Browser class in Java ME. The Browser class instance implements the browser user interface metaphor and it allows the user to visualize and navigate through HTML documents. This example has also "Back", "Forward", and "Open URL" Commands for navigating to the previous or next session history items and for opening desired html page. The MIDlet uses MobileShell, because it has a possibility to change the status pane size. The following section contains the complete code for compiling and running the example application.
Source code
import javax.microedition.midlet.MIDlet;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ercp.swt.mobile.MobileShell;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.browser.Browser;
import org.eclipse.ercp.swt.mobile.QueryDialog;
import org.eclipse.ercp.swt.mobile.Command;
public class BrowserMIDlet extends MIDlet implements SelectionListener, Runnable {
private Command exitCommand;
private Command backCommand;
private Command openCommand;
private Command forwardCommand;
private Command changeCommand;
private Display display;
private MobileShell shell;
private Thread uiThread;
private Browser browser = null;
private boolean exiting = false;
private int style = 2; //MobileShell.SMALL_STATUS_PANE
private String url = "http://forumnokia.mobi";
public void startApp() {
if(uiThread == null) {
uiThread = new Thread(this);
uiThread.start();
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
exitEventLoop();
try {
uiThread.join();
}
catch(InterruptedException e) {
}
}
void exitEventLoop() {
exiting = true;
Display.getDefault().wake();
}
public void run() {
display = new Display();
shell = new MobileShell(display, SWT.NONE, style);
shell.setLayout(new FillLayout());
exitCommand = new Command(shell, Command.EXIT, 0);
exitCommand.setText("Exit");
exitCommand.addSelectionListener(this);
backCommand = new Command(shell, Command.BACK, 0);
backCommand.setText("Back");
backCommand.addSelectionListener(this);
forwardCommand = new Command(shell, Command.OK, 0);
forwardCommand.setText("Forward");
forwardCommand.addSelectionListener(this);
openCommand = new Command(shell, Command.OK, 1);
openCommand.setText("Enter URL");
openCommand.addSelectionListener(this);
changeCommand = new Command(shell, Command.OK, 2);
changeCommand.setText("Change status pane");
changeCommand.addSelectionListener(this);
try {
browser = new Browser(shell, SWT.NONE);
} catch (SWTError e) {
MessageBox message = new MessageBox(shell, SWT.NONE);
message.setText("SWTError: " + e.getMessage());
message.open();
}
if (browser != null) {
browser.setUrl(url);
}
shell.open();
while(!exiting) {
if(!display.readAndDispatch()) {
display.sleep();
}
}
browser.dispose(); // dispose objects
shell.dispose();
display.dispose();
notifyDestroyed(); // exit MIDlet
}
public void widgetSelected(SelectionEvent e) {
if (e.widget.equals(exitCommand)) {
exitEventLoop();
}
if (e.widget.equals(backCommand)) {
if (browser.isBackEnabled()) browser.back();
}
if (e.widget.equals(forwardCommand)) {
if (browser.isForwardEnabled()) browser.forward();
}
if (e.widget.equals(openCommand)) {
QueryDialog dialog = new QueryDialog(shell, SWT.NONE, QueryDialog.STANDARD);
dialog.setPromptText("Enter URL:", "http://");
url = dialog.open();
if (url != null) {
browser.setUrl(url);
shell.redraw();
} else {}
}
if (e.widget.equals(changeCommand)) {
if (style < 3) style = style + 1;
else if (style == 3) style = 1;
shell.changeTrim(SWT.SHELL_TRIM, style);
}
}
public void widgetDefaultSelected(SelectionEvent arg0) {
}
}
Postconditions
When a BrowserMIDlet is opened, a browser window is shown on the screen. The browser will open the URL http://forumnokia.mobi.

