NAU Capstone Design Sequence

Sponsor Project Description

"Java Syrup" - A GUI Markup Language

Plasma Works

Sponsor Information
Abe Pralle
Development Coordinator, Plasma Works
(928) 523-8882 (work)
Abe.Pralle@nau.edu (email)

2700 Woodlands Village Blvd #300-413
Flagstaff, AZ 86001

Project Description
The goal is to create a Java 1.1 implementation of Plasma Works' proprietary GUI Markup Language, "Syrup" - henceforth called "Java Syrup." Necessitated by the relative clunkiness of the AWT system in Java 1.1, Java Syrup will give programmers the ability to quickly and easily implement a GUI interface for their program.

Java 1.1 is the base requirement - as opposed to versions 1.2 or higher, which include "Swing" - because most applets written for the web are still written in 1.1 to provide maximum compatibility with typical browsers.

Java Syrup is to Java what HTML Forms are to JavaScript: a definition language that depends upon another language to provide true functionality. It is patterned loosely after a combination of HTML Form tags, JavaScript objects, and the existing GUI markup language "XUL" (pronounced "zool;" XUL is only implemented in a Mozilla/XML/JavaScript environment).

The Java Syrup deliverable will include a set of classes that:

  • Parse plain-text GUI definition strings.
  • Create, draw, and maintain the required controls on-screen.
  • Provide centralized access and modification of those controls and their associated events from Java.

The final requirement is to create a GUI Builder application with Java 1.1 and Java Syrup, both as a tool in itself and as a showcase for the project. It should allow the user to dynamically create and position windows, menus, tabs, etc. - relying on the core Syrup routines - and then save the finished layout as an ASCII definition file.

Knowledge, Skills, and Expertise Requirements
Team members should have:
  • Solid Java programming skills.
  • Some knowledge of existing GUI APIs.
  • Experience with parsing or simple compilers.
  • The ability to program Java Interfaces, callbacks, methods, and dynamic (string-based) class loading and method invocation.
  • Some experience with low-level graphics and drawing on bitmaps.
  • An understanding of Java Packages.

Equipment Requirements
The development team must provide their own access to a Java development environment (version 1.1.8 or higher). This can be as simple as a command-line compiler or as elaborate as a Visual J++ project.

The team will have full access to Plasma Works' library of fast bitmap drawing routines. These may be integrated as required into the Java Syrup project.

No other materials are required. The sponsor will be available on a daily basis for assistance with any questions or problems.

Deliverables
  • A Java package that implements the core Java Syrup requirements.
  • A working GUI Builder application.
  • Fully commented source code.
  • A list of any missing features or known bugs.