This is an old revision of the document!


Sample Applications

Sample applications are prototypical examples of application fragments or simple applications that demonstrate what can be done and how it can be done in SOLoist. They represent typical patterns of application design or use, implemented in SOLoist.

The sample applications have the following purposes:

  • to demo some SOLoist's features, capabilities, expressiveness, and efficiency of development
  • to serve as learning material on how some typical tasks can be done in SOLoist
  • to serve as reusable patterns or fragments for real applications.

The sample applications range from very simple to rather complex ones. They are ordered in a way that gradually introduces new and more complex features. Although the samples can be analyzed in any order, the readers are encouraged to go through them in the presented order, because some samples may use the solutions of their precendents.

Sample Application Structure and Contents

Each sample application demonstrates a specific set of features represented in the web-based UI that may or may not require a backend UML model and domain (business) logic implemented in Java code.

The Wiki page of each sample application has the following sections:

  • a brief introduction and explanation of use,
  • a link to the live demo of the application,
  • the UML class diagram (if any) of the application's domain,
  • the business logic code (if any) that has to be written manually; only the manually written code fragments are given, while the rest of the Java classes is autogenerated by SOLoist,
  • the UI code that has to be manually written, and executed to create the application's UI.

The presented artifacts (the UML model, the business logic Java code, and the UI code) represent all those and only those artifacts that have to be manually produced by the developer to obtain the executable sample application as demonstrated by the live demo.

When the live demo is played with, in case it manipulates the backend object space, the appropriate SOLoist Explorer OQL queries are available in the form of links that can be used to monitor the changes performed in the object space (database) while the user is interacting with the application.

Downloadable Source

The entire source UML model and Java code of all sample applications in one SOLoist project can be downloaded from here.

Database configuration is described here.

Catalogue of Sample Applications

Tabs and Layouts shows the use of the tab component, a few static components (label, link, etc.), and various layout policies supported in SOLoist.
Deck and Layouts shows the use of the deck component, buttons, and bindings (GUIBindingComponent).
Data Input, View, and Edit Controls demonstrates various SOLoist controls for entering, viewing, and editing data from the object space. It is based on a universal Element Component that can be configured and combined in very different ways, as shown in this example. The so-called Service Access Points for fetching objects from the object space into the UI and providing them on output pins are also introduced here.
Create and Submit is a simple, classical form for entering data and creating a new object (of class Person in this example) when the form is submitted. The new object is created upon the Submit command, with the attributes configured from the data entered in the form. Commands are also used here.
Edit Object Details is a form for editing details (attributes and links) of a selected object. It relies on the Element Component as shown in Data Input, View, and Edit Controls.
Grids demonstrates various tabular views of object details.
CRUD is a simple demo of a classical CRUD (Create, Read, Update, Delete) pattern.
Association Editor sample demonstrates distinctive feature, dynamically linking objects.
Bank Advisers sample combines previously introduced features in a simple application.
Search sample is basic example of querying database with some advanced features.
Menus sample introduces menu components and presents different menu styles.
Polymorphic sample demonstrates how GUI can change depending on the class of selected object.
Dynamic Panel sample introduces often used GUIDynamicContentPanel.
Wizard sample demonstrates simple wizard. Introduces dialog component (GUIDialogComponent).
Gallery is standalone application showing one way of using Dynamic Panel.
Google Maps application fully embeds Google Maps.
File System is the most complex sample presented here. It is web based Orthodox File Manager application.
Print/export