================================================================================
eSWT Mobile Extension Status
================================================================================

Implemented
-----------
- org.eclipse.ercp.swt.mobile

Unimplemented functionality
---------------------------

Known issues
------------

- org.eclipse.ercp.swt.mobile.ListBox
	+ dispose(), doesn't removed itself from parent
	+ layout(), when parent use a layout that depends on the number of children, it would lay it out
		wrong because the widget adds an additional widget.
		
-org.eclipse.ercp.swt.mobile.SortedList
	+ same as ListBox
	
	the two classes above will be fixed as soon as internal_removeChild is added in Composite
	
- org.eclipse.ercp.swt.mobile.MultiPageDialog
	+ addSelectionListener(SelectionListener listener), the event.widget is not confirmed yet(still under discussion in newsgroup).
	
- org.eclipse.ercp.swt.mobile.TimedMessageBox
	+ TimedMessageBox(Shell parent, int style), we can't find native API to get system icons, still use several image files as workaround.
	

Limitation (won't fix)
-------------	
- org.eclipse.ercp.swt.mobile.Command
	+ setDefaultCommand(), it makes no visible difference on PPC because lacking of programmable softkey.
	
- org.eclipse.ercp.swt.mobile.Input
	+ getLocation(), it always returns LOCAL
	+ getType(), it always returns LIMITED_KEYBOARD
	
- org.eclipse.ercp.swt.mobile.MobileDevice
	+ addMobileDeviceListener(MobileDeviceListener listener), though listener can be added, however, no event happens on PPC.	
	+ getInputs(), only one Input will be returned, doesn't support external keyboard because of buggy native API.
	+ getMobileDevice(), only one Screen will be returned, since PPC only has one screen.

- org.eclipse.ercp.swt.mobile.MobileShell	
	+ MobileShell(Display display, int style, int statusStyle), statusStyle is not supported since PPC doesn't have status pane.
	+ changeTrim(int style, int statusStyle) not supported, we don't support trim change in top level shell.
	+ getStatusText() not supported, PPC doesn't support status pane.
	+ setStatusText(java.lang.String statusText) not supported, PPC doesn't support status pane.
	
- org.eclipse.ercp.swt.mobile.ScreenEvent
	It doesn't support any ScreenEvent(including orientation change)

- org.eclipse.ercp.swt.mobile.Screen	
	+ setOrientation(int orientation), it only works for WM2003 2nd edition.
	
- org.eclipse.ercp.swt.mobile.HyperLink
	+ HyperLink(Composite parent, int style, int format), system phone dialer can be launched, but phone number argument can't feeded in
	
- org.eclipse.ercp.swt.mobile.TextExtension
	+ setInitialInputMode(int casingModifier, String mode), mode is not supported.	
	
- org.eclipse.ercp.swt.mobile.ListView
	+ showSelection() doesn't work well in "MEDIUM" density mode because of buggy native API.
	
		

================================================================================
Developer and user information
================================================================================

* Based on software	
The eSWT Mobile Extension Win API is based on code is based on the 3.1 release of the 
Eclipse Project.  It is written and compiled against version 1.4 of the Java 2 
Platform APIs, and is targeted to run on version 1.4 of the Java 2 Runtime Environment, 
Standard Edition.

* Based on hardware
The eSWT Mobile Extension code will run on any hardware with the wm2003 window system.  

===================================================================================
If you want to get and setup the binaries of implementation from the Eclipse plugin
===================================================================================

N/A.  The eSWT Mobile Extension code is not setup as a plugin at this time.

================================================================================
If you want to get and setup the binaries of implementation from the Eclipse CVS
================================================================================

The binaries and jar for eSWT Mobile Extension can be found under the build/wm2003.arm 
directories.  The build/wm2003.arm directory contains the eSWT Mobile dll for the 
windows mobile 2003 platform.  The eSWT Mobile java code jar is in the same dirctory.

To run a program that uses the Mobile Extension eSWT code, the appropriate dll must be 
specified on your library path. You can put the dll in a directory that is on 
your library path or you can specify the library path as a VM parameter. For 
example: 

	-Djava.library.path=D:\ws\org.eclipse.ercp.swt.mobile.win\build\wm2003.arm
	
Note that cldc does not support the System.loadLibrary(String) method. Therefore, 
in order to run something that uses the eSWT Mobile win implementation with the 
cldc class libraries, you must specify the dll as a VM parameter. 

================================================================================
If you want to get and compile the source of implementation from the Eclipse CVS
================================================================================

N/A.  The build files for compiling and linking the eSWT Mobile Win code are
not available at this time.

=======================================================================================
If you want to develop an eSWT Mobile Extension Win application using the implementation
=======================================================================================

To develop an eSWT Mobile Win application in Eclipse using this implementation, 
checkout the the project org.eclipse.ercp.swt.mobile.win from HEAD in the Eclipse 
Technology repository. 

The project also includes the dlls that hold the native code for the win32 and 
wm2003 implementations. These dlls are in the build subfolder of the project. 

To run a program that uses the eSWT Core Win code, the appropriate dll must be 
specified on your library path. You can put the dll in a directory that is on 
your library path or you can specify the library path as a VM parameter. 
For example: 

	-Djava.library.path=D:\ws\org.eclipse.ercp.swt.core.win\build\win32.x86

Note that cldc does not support the System.loadLibrary(String) method. Therefore, 
in order to run something that uses the eSWT Mobile Win implementation with the 
cldc class libraries, you must specify the dll as a vm parameter. 

To run with the J9 vm, you must install the J9 VM and the J9 Eclipse Launcher 
plugin. Once these have been installed, go to the Workbench-->Preferences-->
Java-->Installed JREs page and add the J9 vm. The JRE home directory should be 
the root J9 vm directory. Then go to the Workbench / Preferences / Java / 
Build Path / Classpath Variables page. Define the variable IVEHOME and have it 
point to the root J9 vm directory. This variable is referenced in the various 
.classpath configuration files. 

To deploy your eSWT Mobile Win application on wm2003 device, please follow the following steps:
1. Install J9 runtimes on the device, given you've installed your WSDD 5.7.1 at C:\Program Files\IBM\DeviceDeveloper,
   "C:\Program Files\IBM\DeviceDeveloper\wsdd5.0\ive-2.2\runtimes\wm2003\arm\foundation10" contains several files,
   please choose appropriate ones according to your machine locales.
2. eSWT Mobile Win application depends on eSWT core packages, please put these dll and jar files on to your device:
	org.eclipse.ercp.swt.core.win: 
	+ build/eswt-core-win.jar (under \eSWT\ directory)
	+ build/wm2003.arm/ugl.dll (under \Windows\ directory)
	org.eclipse.ercp.swt.mobile.win: 
	+ build/wm2003.arm/mobile.dll (under \Windows\ directory)
	+ build/wm2003.arm/mobile.jar (under \eSWT\ directory)
3. Create a shortcut(xxx.lnk) file like this:
	99#\j9\foun10\bin\j9.exe -Xbootclasspath:\j9\foun10\lib\jclFoundation10\classes.zip -classpath \eSWT\eswt-core-win.jar;\eSWT\mobile.jar;\eSWT\eswttest.jar SWTTest	
	   ^                   ^                 ^                                        ^            ^                     ^ ^              ^ ^                ^    ^
	   +---Java runtime----+                 +------------foundation class------------+            +-------core jar------+ +-----mobile---+ +----test pkg----+    +--- test application
	   
	
   

