By Rakesh Menon on Jul 09, 2009
JavaFX has Storage API which provides functionality similar to read and write from flat file. The API is part of common profile and hence will work across various platforms/devices. The application is not required to be signed to use this API. Also the access of saved data is restricted with in the codebase of the application.
<script src="http://dl.javafx.com/1.2/dtfx.js"></script> <script src="/rakeshmenonp/resource/Draw/Draw.js"></script>
For Applet mode, click on above image
In above sample use PathTransition API to move the car along a path (road). User can create roads by dragging the mouse over the terrain. The path will be saved using storage API, so that it can be retrieved later. Try creating a new path, close the application and reload the application later, the path will be re-created.
The path elements can be represented in xml format as shown below.
Next we will create a Storage instance and open an OutputStream to this as shown below. The API is similar to FileOutputStream. The boolean in
openOutputStream is to specify
overwrite (opposite of
FileOutputStream). Size of resource can be specified using resource.maxLength attribute.
This way we obtain the OutputStream to which we can write the data.
I didn't mention about
storage.properties, wasn't sure whether its a documented feature. Anyway users are trying to find the secrets! Well.. there is no secret as such
, you can de-compile the class files
Configuration file -
storage.properties - is under ~/.javafx/deployment/ in Unix and %HOME%/Sun/JavaFX/Deployment/ on Windows. User can enable/disable the storage using "storage.enabled" attribute by setting it to true/false. The limit can be configured using "storage.limit.domain". This file will be empty by default.
Try it out and let me know feedback