Categories: S60 3rd Edition, Feature Pack 2 | Java ME | MIDP 2.0 | ESWT | File Connection and PIM API (JSR-75) | Code Examples
This page was last modified 10:49, 14 May 2008.
CS000946 - Using eSWT FileDialog in Java ME
From Forum Nokia Wiki
(Redirected from How to use eSWT FileDialog in Java ME)
| ID | CS000946 | Creation date | May 14, 2008 |
| Platform | S60 3rd Edition, FP2 | Tested on devices | S60 3rd Ed. FP2 SDK |
| Category | Java | Subcategory | eSWT, UI |
| Keywords (APIs, classes, methods, functions): eSWT, FileDialog |
Overview
This code snippet demonstrates how to use eSWT's FileDialog class in Java ME. A FileDialog can be opened and when a file is selected, its size is shown on the screen. The following section contains the complete code for compiling and running the example application.
Source code
import javax.microedition.midlet.*; import org.eclipse.ercp.swt.mobile.Command; import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.layout.FillLayout; import javax.microedition.io.file.FileConnection; import javax.microedition.io.Connector; import java.io.IOException; public class FileDialogMIDlet extends MIDlet implements Runnable, SelectionListener { private Thread UIThread; private Display display; private Shell formShell; private boolean exiting = false; private Command fileCommand; private Command exitCommand; private Text text; private String textString = "FileDialogMIDlet"; public void startApp() { // Create the eSWT UI thread. if(UIThread == null) { UIThread = new Thread(this); UIThread.start(); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { // Make the event loop exit in the eSWT UI thread. exitEventLoop(); // Wait for the eSWT UI thread to die. try { UIThread.join(); } catch(InterruptedException e) { } } void exitEventLoop() { exiting = true; Display.getDefault().wake(); } // The eSWT UI Thread. public void run() { display = new Display(); FillLayout fillLayout = new FillLayout(); formShell = new Shell(display); formShell.setLayout(fillLayout); formShell.open(); Composite form = new Composite(formShell, SWT.NONE); form.setLayout(fillLayout); text = new Text(form, SWT.READ_ONLY | SWT.WRAP); text.setText(textString); fileCommand = new Command(formShell, Command.SELECT, 0); fileCommand.setText("Open FileDialog"); fileCommand.addSelectionListener(this); exitCommand = new Command(formShell, Command.EXIT, 0); exitCommand.setText("Exit"); exitCommand.addSelectionListener(this); formShell.redraw(); // Execute the eSWT event loop. while(!exiting) { if(!display.readAndDispatch()) { display.sleep(); } } // Clean up and destroy the MIDlet. display.dispose(); notifyDestroyed(); } public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { if (e.widget.equals(fileCommand)) { openFileDialog(); } if (e.widget.equals(exitCommand)) { // Exit command selected, exit the event loop. exitEventLoop(); } } public void openFileDialog() { FileDialog fDialog = new FileDialog(formShell); fDialog.open(); String filterPath = fDialog.getFilterPath(); String temp = filterPath.replace('\\', '/'); // '\‘ characters are replaced with '/' filterPath = temp; String fileName = fDialog.getFileName(); String path = "file:///" + filterPath + fileName; // path is for example: file:///C:/Data/Images/image.png, this can be used as file // URL for FileConnection if (!path.equals("file:///")) { // Path equals "file:///", if file dialog is cancelled. try { FileConnection fc = (FileConnection) Connector.open(path, Connector.READ); if (!fc.isDirectory()) { textString = "File size: " + fc.fileSize() + " bytes"; text.setText(textString); } } catch (IOException ioe) { // Thrown if an I/O error occurs or if the method is invoked on a directory. // Note: It is not possible to select a directory in FileDialog. textString = "IOException: " + ioe.getMessage(); text.setText(textString); } catch (SecurityException se) { // Thrown if the security of the application does not have read access for // the file. textString = "SecurityException: " + se.getMessage(); text.setText(textString); } formShell.redraw(); } } }
Postconditions
When a FileDialog is opened and a file is selected in it, the file size is shown on the screen.
See also
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| J2ME emulator | WYSINAWYG | Mobile Java Tools & SDKs | 1 | 2003-11-26 01:54 |
| Avoiding the Location capability | storsjo | Symbian Signing, Certification and Security | 12 | 2008-03-18 16:18 |
| How to enable Diagonistics in S60 2nd FP3 | gigglie | Symbian Tools & SDKs | 1 | 2008-02-21 10:16 |
| UNABLE to uninstall Nokia Multimedia Converter 2.0 /error/ | martin555 | Audio | 9 | 2008-03-24 14:15 |
| Preverify Exception | dvus | Mobile Java Tools & SDKs | 0 | 2002-09-25 01:36 |

