Lafros GUI-Libs 1.0r2 (GUI-Cmds, GUI-Alerts and GUI-App)

Last updated: 2010-Oct-05

This is a complete rewrite of JUICe in Scala.

Please see this talk, these slides, this paper and the GUI-Libs API (scaladoc) documentation for further details.


The following demonstrates all features, and displays the corresponding source:

application (using Java Web Start)


The following allows an array of MonFields to be configured, and includes a database of alert sounds:

application (using Java Web Start)


How to generate a complete GUI-App Maven project instantly

The following instructions are for creating an instant Maven project that builds a sample GUI-App app.

It will be assumed that you already have (at least version 5 of) the Java runtime environment (JRE) installed, together with an up-to-date version of Maven. This may be ascertained as follows:

$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-06 20:16:01+0100)
Java version: 1.6.0_15
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.6" arch: "i386" Family: "mac"
Note that all resources required for compiling Scala code using Maven will be downloaded on demand.

  1. Tell Maven to prompt you for parameter values when creating new projects, by adding the following to your settings:
  2. Add the following entry to your ~/.m2/archetype-catalog.xml:
    <?xml version="1.0" encoding="UTF-8"?>
          <description>Lafros GUI-App archetype</description>
  3. Create a new Maven project using the above catalogue entry, as follows:
    $ mvn archetype:generate -DarchetypeCatalog=local
    Supply the following or appropriate values when prompted:
    Choose archetype:
    1: local -> gui-archetype (Lafros GUI-App archetype)
    Choose a number:  (1): 1
    Define value for groupId: : org.myorg.myapp
    Define value for artifactId: : myorg-myapp
    Define value for version:  1.0-SNAPSHOT: : 
    Define value for package:  org.myorg.myapp: :
  4. Build and run the app:
    $ cd myorg-myapp
    $ mvn test

To stay up to date and share your experiences, please join the lafros-gui Google group.

This is an open-source project, hosted at GitHub, complete with issue tracker.

Purchasing an exception from the GPL

These libraries are released under the GNU General Public Licence (version 3), which requires that any app which links to them (and which is not for your own private use) must be released under the same licence. If you do not wish to be bound by these terms, exceptions may be purchased on a per-app basis. If doing so, please give details identifying the app for which the exception is required.



Change log

2010-Oct -05:missing <repository> element added in step 2. of 'How to generate ...' instructions!
2010-May-25:1.0r1=>1.0r2: GUI-App 1.0r1=>1.0r2: fixed problem which caused 'Using Lafros GUI-App ...' to be printed twice in the applet case; archetype 1.0=>1.1
2010-May-09:Tabs Demo now with syntax-highlighting!
2010-May-01:purchasing exceptions now possible
2010-Apr-30:link to Scala Days talk added
2010-Apr-27:links to Google group, GitHub and Assembla space added
2010-Apr-22:links to slides and paper enabled
2010-Apr-16:first created