Namespaces
Variants
Actions
(Difference between revisions)

Archived:Using eSWT FileDialog in Java ME

Jump to: navigation, search
(Skalogir -)
m (Hamishwillee - Adding missing translation link)
(5 intermediate revisions by one user not shown)
Line 1: Line 1:
[[Category:Java ME]][[Category:MIDP 2.0]][[Category:File Connection and PIM API (JSR-75)]][[Category:ESWT API]][[Category:Code Examples]]
+
[[Category:Java ME]][[Category:MIDP 2.0]][[Category:File Connection and PIM API (JSR-75)]][[Category:ESWT API]][[Category:Code Examples]][[Category:S60 3rd Edition FP2]][[Category:S60 5th Edition]][[Category:Symbian^3]][[Category:Symbian Anna]][[Category:Nokia Belle]][[Category:Symbian]][[Category:Files/Data]]
{{ReviewForRemovalFromArchive|user=[[User:Skalogir|Skalogir]] 14:53, 15 August 2012 (EEST)|Fully working article and a useful one. What happened? This should not have been archived. I am updating the categories, uploading source and binaries and adding some screenshots}}
+
 
  {{VersionHint}}
 
  {{VersionHint}}
[[Category:S60 3rd Edition FP2]]
 
[[Category:S60 5th Edition]]
 
[[Category:Symbian^3]] [[Category:Symbian Anna]] [[Category:Nokia Belle]]
 
 
{{Archived|timestamp=20120313130339|user=roy.debjit| }}
 
 
  
 
{{ArticleMetaData <!-- v1.2 -->
 
{{ArticleMetaData <!-- v1.2 -->
 
|sourcecode= [[Media:FileDialogMIDletSource.zip]]
 
|sourcecode= [[Media:FileDialogMIDletSource.zip]]
|installfile= [[Media:FileDialogMIDletBinaries.sis]]) -->
+
|installfile= [[Media:FileDialogMIDletBinaries.zip]]
 
|devices= S60 3rd Ed. FP2 SDK
 
|devices= S60 3rd Ed. FP2 SDK
 
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
 
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
Line 40: Line 33:
  
 
<gallery widths=240px heights=320px>
 
<gallery widths=240px heights=320px>
File:E52ori.jpg|Device A sends an SMS
+
File:E52ori.jpg| Start Screen on E52
File:E52toplevel.jpg|Receiving device B in idle
+
File:E52toplevel.jpg| Selection window
File:E52depth.jpg|Device B is launching
+
File:E52depth.jpg| Root of phone memory on E52
 
</gallery>
 
</gallery>
  
  
 
<gallery widths=180px heights=320px>
 
<gallery widths=180px heights=320px>
File:808toplevel.jpg|Receiving device B in idle
+
File:808toplevel.jpg| Selection window
File:808depth.jpg|Device B is launching
+
File:808depth.jpg|Root of phone memory on PureView 808
 
</gallery>
 
</gallery>
 
==Source code==
 
==Source code==
Line 186: Line 179:
  
 
* [[ESWT|eSWT]]
 
* [[ESWT|eSWT]]
 +
<!-- Translation --> [[pt:Como usar caixas de diálogo eSWT em Java ME]]

Revision as of 10:32, 17 September 2012


SignpostIcon FloppyDisk 52.png
Article Metadata

Code Example
Tested with
Devices(s): S60 3rd Ed. FP2 SDK

Compatibility
Platform(s): S60 3rd Edition, FP2

Article
Keywords: eSWT, FileDialog
Created: jarmlaht (07 May 2008)
Last edited: hamishwillee (17 Sep 2012)

Contents

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 canceled.
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

477 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved