Monday, March 24, 2008

Open the File

I have made a bit more progress with the text editor. I have a browse button in the application to open an existing text file for editing. I have the dialog open up, and limit the user to only open *.txt documents, then have the application open a file stream and read its contents. For binary data, this is done using

var stream = new air.FileStream();
stream.open( file, air.FileMode.READ );
stream.readBytes( header, 0, 0 );
stream.close();


However I need to read flat ASCII files, not binary files, and this is handled differently in javascript and AIR. I am still searching for a good reference book that outlines the AIRAliases script as well as the AIR document object model (DOM).

Sunday, March 16, 2008

Save File As Prompt

I have a basic model working that allows me to write to a and save the file to the document with a specified name "note.txt" (using the AIR air.File.desktopDirectory.resolvePath()).

This functionality is a start, but it is too limited. I want to be able to save a file to a user-specified location, using a user specified name. I am still in search of a good reference for some built-in AIR DOM and methods.

I have come a cross the method browseForOpen(), which I can use later to open an existing note. Unfortunately, my guess of browseForSave() to save a file is not working...

I will continue searching for a more thorough AIR reference online.

Monday, March 10, 2008

Working with the File System

After completing my image resizing and database applications, I am working on creating a simple AIR application that manipulates/creates a file on the local machine. The application will allow a user to browse for an existing file, make edits to the file, and save it to specified directory (essentially a simplified text editor, similar to notepad). I have begun work on the application, with the basic GUI set up and the basic logic working, but I will need to figure out what AIR file methods are available to both read and write from files/filestreams, as well as how to allow the user to browse his system's file system.

I may end up building on this application to use the AIR default menus.

Thursday, March 6, 2008

SQLite + AJAX

After playing with the AIR SQLite Admin (mentioned in the previous post), I created a simple database using the following SQL:

CREATE TABLE contact (
id INTEGER primary key autoincrement,
fname TEXT,
lname TEXT,
email TEXT
);



I also downloaded this large collection of samples for AIR 3 Beta

I began playing with the CRUD example, which is a simplified version of what I wanted to complete for my project. In the example, a simpler database is used, using only two columns (id and name). I wanted to make my own contact management system, so after about an hour's work, I had a fully working example, using four fields (id, first name, last name, and email). This project helped me better learn how to connect to the SQLite DB from AIR, as well as furthered my understanding of basic AJAX, particularly how to use the javascript methods createElement, and appendChild. The adaptation of the CRUD example provided proved to be a bit more difficult, as it was a bit oversimplified, and adding database columns requires a great deal of modification to the example. Below is a screen shot of my project using the more robust database.


After completing the SQLite/AJAX example, I went on to work on the image scaler. Originally, the scaler used a fixed scale ration (25%). I modified the example to use user input to scale the image appropriately, as well as return a success message on completion. The application appears as the following:

For my next project, I hope to use a Map API such as GoogleMaps or Yahoo Maps Beta

I also will be sure to post more blog updates as I do these projects- I have a tendency to play with AIR for 20 minutes at a time, and not post what I have learned until I have completed the projects. Instead, I will keep my blog up to date as to my progress.