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). | |
Menus demonstrates menu components and different menu styles. | |
Wizard is a classical wizard pattern. Introduces the dialog component (GUIDialogComponent). | |
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 for objects of a class. | |
Selection List shows how persistent selections of a subset of objects linked over an association can be implemented by means of another (subsetting) association and the appropriate configuration of the Element Component. | |
Bank Advisers is a simple application that combines several features presented in the previous samples. | |
Search is a prototypical search form for searching the object space according to the user's input criteria. | |
Polymorhpic Form demonstrates how a form can change depending on the type of the selected object that is provided on the form's input pin. | |
Dynamic Panel demonstrates a panel with dynamic contents that are programmatically created by the backend UI code triggered from the client, using GUIDynamicContentPanel. | |
Gallery is a small application for a classical editable picture gallery. | |
Google Maps fully embeds Google Maps that interacts with the enclosing application by exhanging geo-coordinates. | |
File System is a web-based Orthodox File Manager, with a personalized directory structure and standard file operations. It shows how a traditional concept of a file system can be implemented using the object paradigm with UML modeling and SOLoist UI. |