Using eSWT Browser in Java ME
m (Lpvalente -) |
|||
| (16 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | [[Category:Java ME]][[Category:MIDP 2.0]][[Category:Browser]][[Category:ESWT API]][[Category:Code Examples]][[Category:Symbian]][[Category:S60 3rd Edition FP2]][[Category:S60 5th Edition]][[Category:Symbian^3]][[Category:Symbian Anna]][[Category:Nokia Belle]] | |
| − | + | {{Abstract|This code snippet demonstrates how to use eSWT's Browser class in Java ME.}} | |
| − | {{ | + | {{ArticleMetaData <!-- v1.2 --> |
| − | {| | + | |sourcecode= [[Media:BrowserMIDletSource.zip]] |
| − | | | + | |installfile= [[Media:BrowserMIDletBinaries.zip]] |
| − | | | + | |devices= S60 3rd Ed. FP2 SDK |
| − | + | |sdk= [http://www.developer.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html S60 SDK 3rd Edition FP2 v1.1] | |
| − | |- | + | |platform= S60 3rd Edition, FP2 or later |
| − | | | + | |devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) --> |
| − | | | + | |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= [[User:skalogir]] |
| − | | | + | |review-timestamp= 20120820 |
| − | |} | + | |update-by= [[User:skalogir]] |
| − | + | |update-timestamp= 20120820 | |
| + | |creationdate= 20080520 | ||
| + | |author= [[User:Jarmlaht]] | ||
| + | <!-- The following are not in current metadata --> | ||
| + | |id= CS000974 | ||
| + | }} | ||
| + | |||
==Overview== | ==Overview== | ||
| + | {{Abstract|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 HMTL 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. | ||
| − | + | <gallery widths=240px heights=320px> | |
| + | File:BrowserMIDlet.jpg|A Browser-MIDlet integration | ||
| + | File:BrowserMIDletOptions.jpg|The custom Browser with the Option menu expanded | ||
| + | </gallery> | ||
==Source code== | ==Source code== | ||
| Line 39: | Line 49: | ||
import org.eclipse.ercp.swt.mobile.QueryDialog; | import org.eclipse.ercp.swt.mobile.QueryDialog; | ||
import org.eclipse.ercp.swt.mobile.Command; | import org.eclipse.ercp.swt.mobile.Command; | ||
| − | + | ||
| − | + | ||
public class BrowserMIDlet extends MIDlet implements SelectionListener, Runnable { | public class BrowserMIDlet extends MIDlet implements SelectionListener, Runnable { | ||
private Command exitCommand; | private Command exitCommand; | ||
| Line 53: | Line 63: | ||
private boolean exiting = false; | private boolean exiting = false; | ||
private int style = 2; //MobileShell.SMALL_STATUS_PANE | private int style = 2; //MobileShell.SMALL_STATUS_PANE | ||
| − | private String url = "http:// | + | private String url = "http://www.google.com"; |
| − | + | ||
public void startApp() { | public void startApp() { | ||
if(uiThread == null) { | if(uiThread == null) { | ||
| Line 61: | Line 71: | ||
} | } | ||
} | } | ||
| − | + | ||
public void pauseApp() { | public void pauseApp() { | ||
| + | //To do | ||
} | } | ||
| − | + | ||
public void destroyApp(boolean unconditional) { | public void destroyApp(boolean unconditional) { | ||
exitEventLoop(); | exitEventLoop(); | ||
| Line 71: | Line 82: | ||
} | } | ||
catch(InterruptedException e) { | catch(InterruptedException e) { | ||
| + | //To do | ||
} | } | ||
} | } | ||
| − | + | ||
void exitEventLoop() { | void exitEventLoop() { | ||
exiting = true; | exiting = true; | ||
Display.getDefault().wake(); | Display.getDefault().wake(); | ||
} | } | ||
| − | + | ||
public void run() { | public void run() { | ||
display = new Display(); | display = new Display(); | ||
| Line 119: | Line 131: | ||
notifyDestroyed(); // exit MIDlet | notifyDestroyed(); // exit MIDlet | ||
} | } | ||
| − | + | ||
public void widgetSelected(SelectionEvent e) { | public void widgetSelected(SelectionEvent e) { | ||
if (e.widget.equals(exitCommand)) { | if (e.widget.equals(exitCommand)) { | ||
| Line 145: | Line 157: | ||
} | } | ||
} | } | ||
| − | + | ||
public void widgetDefaultSelected(SelectionEvent arg0) { | public void widgetDefaultSelected(SelectionEvent arg0) { | ||
| + | //To do | ||
} | } | ||
} | } | ||
| Line 153: | Line 166: | ||
==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://www.google.com. |
==See also== | ==See also== | ||
| − | * [ | + | * [[ESWT|eSWT]] |
| − | + | ||
| − | + | ||
Latest revision as of 02:26, 17 September 2012
This code snippet demonstrates how to use eSWT's Browser class in Java ME.
Article Metadata
Code Example
Source file: Media:BrowserMIDletSource.zip
Installation file: Media:BrowserMIDletBinaries.zip
Tested with
Devices(s): S60 3rd Ed. FP2 SDK
Compatibility
Platform(s): S60 3rd Edition, FP2 or later
Article
Keywords: eSWT, Browser, QueryDialog, MobileShell, MessageBox
Created: jarmlaht
(20 May 2008)
Updated: skalogir
(20 Aug 2012)
Reviewed: skalogir
(20 Aug 2012)
Last edited: lpvalente
(17 Sep 2012)
Contents |
Overview
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 HMTL 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://www.google.com";
public void startApp() {
if(uiThread == null) {
uiThread = new Thread(this);
uiThread.start();
}
}
public void pauseApp() {
//To do
}
public void destroyApp(boolean unconditional) {
exitEventLoop();
try {
uiThread.join();
}
catch(InterruptedException e) {
//To do
}
}
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) {
//To do
}
}
Postconditions
When a BrowserMIDlet is opened, a browser window is shown on the screen. The browser will open the URL http://www.google.com.



