XMA Guide

28.06.2009 14:36


Table of Contents

Preface
1 Introduction
2 Versions
1 XMA Boot-Runtime Installation and Client Requirments
1.1 Required System Resources
1.1.1 Platforms
1.1.2 CPU Usage
1.1.3 Disk Usage
1.1.4 Memory
1.2 XMA Boot-Runtime Installation
1.2.1 XMA Boot-Runtime Setup
1.2.2 Windows Registry Keys
1.3 XMA Boot-Runtime Startup
1.3.1 Boot-Runtime Startup - Windows
1.3.2 Boot-Runtime Startup - Windows
1.3.3 Boot-Runtime Startup - Linux / Mac OS X
1.3.4 Boot-Runtime Classpath
1.3.5 Boot-Runtime Java System Properties
1.4 XMA Boot-Runtime Structure
2 Install the XMA Development Environment
2.1 Structure of the XMA Development Environment
2.1.1 Preconditions
2.1.2 openXMA Eclipse plugins
2.2 The Sample Application
2.3 Compiling the sources of openXMA yourself
2.3.1 Release an openXMA Core Library
2.4 sIT Solutions Specifics for Core Development
3 Project Creation
3.1 Create a new XMA Project
3.1.1 Overview
3.1.2 The Project Creation Wizard
3.1.3 The project structure
3.1.4 Running the Generated Project
4 GUIDesigner
4.1 Getting started with the GUIDesigner
4.1.1 Premise
4.1.2 Create a new Component
4.1.3 The Guidesigner's Workbench Outfit
4.1.4 Create a new Page
4.1.5 Create a new Widget
4.1.6 Generate the Component
4.1.7 Generated Classes
4.2 Guidesigner Overview
4.2.1 Overall Functionality
4.2.2 Package View
4.2.3 Outline View
Creating Content
Widget tab order
Widget manipulation
4.2.4 PreView
4.2.5 Property View
4.2.6 Problem View
4.2.7 Task View
4.3 Layouting with the Guidesigner
4.3.1 FormData Dialog
4.3.2 FormData Dialog for multiple widgets selected
4.3.3 Table Layout Manager
Conversion of existing XMATables to use TableLayoutManager
Compatibility with XMA Runtime versions before 2.0.0
4.4 Validators
4.4.1 Bcd Validator
4.4.2 DateValidator
4.4.3 StringValidator
4.4.4 TimeStamp Validator
4.4.5 Custom Validator
4.4.6 Boolean Validator
4.5 XMA CompProperty
4.5.1 XMA CompProperty Views and Childs
4.6 Guidesigner Customization
4.6.1 Customizing Base Classes for generated Classes
4.6.2 Setting all Components as Embeddable
4.6.3 Customizing server side Widget Model Classes
4.7 Reference A: Guidesigner Model
4.7.1 XMA Component
Component Views and Childs
4.7.2 Embedded Page
Embedded Page Views and Childs
4.7.3 Notebook Page
Notebook Page Views and Childs
4.7.4 XMA Dialog Page
Dialog Page Views and Childs
4.7.5 AppShell
4.7.6 Check Button
Check Button Views and Childs
4.7.7 DatePicker
Date Picker Views and Childs
4.7.8 Hidden Widget
XMA Text Views and Childs
4.7.9 Page Composite
XMA Composite Views and Childs
4.7.10 Push Button
Push Button Views and Childs
4.7.11 Radio Button
Radio Button Views and Childs
4.7.12 Simple Combo
Differences between YnReadOnly and YnStrict
Simple Combo Views and Childs
4.7.13 XMA Combo
XMA Combo Views and Childs
4.7.14 XMA Composite
XMA Composite Views and Childs
4.7.15 XMA Container
XMAContainer Views and Childs
4.7.16 XMA Grid
4.7.17 XMA Group
XMA Composite Views and Childs
4.7.18 XMA Label
XMA Label Views and Childs
4.7.19 XMA List
XMA List Views and Childs
4.7.20 XMA Sashform
XMA Sashform Views and Childs
4.7.21 XMA Scrolled Composite
XMA Scrolled Composite Views and Childs
4.7.22 XMA Separator
XMA Separator Views and Childs
4.7.23 XMA Tabfolder
XMA Tabfolder Views and Childs
4.7.24 XMA Table
XMA Table Views and Childs
4.7.25 XMA Text
XMA Text Views and Childs
4.7.26 XMA Tree
XMA Tree Views and Childs
4.7.27 XMA Tablecolumn
XMA Tablecolumn Views and Childs
4.8 Reference B: Guidesigner Properties
5 Mapping widgets to the business logic
5.1 Data Mapping Editor
5.1.1 Drag&Drop widget to Attribute
5.1.2 Drag&Drop attributes to the widget tree
6 Programmer's Guide
6.1 Component
6.1.1 Programming a Component
Component Properties
Old Style Component Properties
Triggering Events
6.1.2 Calling a Component
Calling a Modal Component
Calling a Non Modal Component
Old Style Component Properties
String Representations of Properties
Dispose
6.1.3 Embedded Component
Creating an Embeddable Component
Embedding the Component
Dynamically Embedding a Component
Dynamically Removing a Component
6.1.4 Managed SWT Resources
Images
Colors
Fonts
6.2 Disposing Resources
6.2.1 Disposing SWT-Resources
6.2.2 Disposing Components
Components Created by You
Components Created by the Runtime
6.2.3 Pages
6.3 Page
6.3.1 Programming a Client Side Page
Enter
State Change
Widget Events
Hot Keys
Keyboard Access to Widgets
Closing the Dialog
Optional Life Cycle Methods
Customizing Error Messages
Focus Management
6.3.2 Programming a Server Side Page
Navigation
6.3.3 Calling a Dialog Page
Example Code
6.3.4 Embedded Page
Creating an Embedded Page
Embedding the Page
Embedding a DialogPage
6.3.5 Generated Base Classes of the Page
Client Side
Server Side
6.3.6 Page Life Cycle
Creation of the page
Termination of the Page
Fail Safe Initialization of the Page
6.3.7 Page Types
DialogPage
NotebookPage
EmbeddedPage
Wizard
AppShell
6.3.8 Wizards
Simple wizards
Invoking server calls for a change from one sub page to an other
Complex, non linear wizard flows
6.4 Client Side Application
6.4.1 Application Shell
AppShell
Implementing
AppShell - Implement Abstract Methods
ContextAppShell - Implement Abstract Methods
TreeMenuAppShell - Implement Abstract Methods
MenuAppShell
Life Cycle
Menu (AppShell)
Task
6.4.2 Toolbar
6.4.3 Menu
6.4.4 Integrate Components from different Applications
6.5 Widget Models
6.5.1 What are Widget Models good for?
Generated Code by the UI-designer/generator
What is Programmed Where?
Synchronization Between Client and Server
6.5.2 Widget Model Gallery
6.5.3 Simple Widget Models
6.5.4 Complex Widget Models
Selection Status
Hints
6.5.5 List Widget Models
Short Usage
6.5.6 Table Widget Models
Sorting of Columns
Images
TableWM2UIListenerClient
Performance Considerations
Hints
6.5.7 Tree Widget Models
6.5.8 Lazy Tree Implementation
6.5.9 Grid Widget Models
Excel Features supported by XMA Grid Model
Features not read from the EXCEL file.
Excel Formula elements supported by XMA Grid Model
6.5.10 Dynamically adding Widget Models
6.6 Formatters/Validators
6.6.1 Validation
6.6.2 Formatting
6.6.3 Custom formatters
6.6.4 Writing own custom formatters
6.7 Remote Procedure Calls
6.7.1 Client side API
6.7.2 Server side
6.7.3 User Defined Auxiliary Transport Data
Using Constants for RPC Paramter Indices
6.8 Data Bindings
6.8.1 Generated Transfer-Code for Atomic Widget Models
6.8.2 Generated Transfer-Code for Table-Models
6.9 Data Sources
6.9.1 How data sources work
6.9.2 Specification of data sources
6.9.3 Accessing a tabular data-source
6.9.4 Data binding of a data source
Domain
6.9.5 ResourceBundle data sources
Language dependency
6.9.6 Writing custom data source providers
Providing Table Data
Controlling Caching Behaviour
6.9.7 Configuration of the Data Source Plugin
6.10 Exception Handling
6.10.1 XMA Specific Exception Handling
Implement Exception Handling for All RPCs
6.10.2 System Exceptions
6.10.3 Application Exceptions
6.10.4 App- versus SysExceptions
6.10.5 Notifications
6.10.6 Commonalities
6.10.7 Programming Hints
6.11 Security
6.11.1 Security Overview
Client side Login Plugin
Server side Login Plugin
Authorisation Plugin
Plugin Implementations
6.11.2 User Context
6.11.3 Permissions
Automatic Permission Checks
Programming Permission Checks
Mapping to plugin specific codes
6.11.4 User Change
6.11.5 Encryption
Login
HTTPS
RPC depend encryption
6.11.6 Implementing Security Plugins
User Authentication
User Authorisation
6.12 Plugins
6.12.1 Accessing Plugins
Implementations
Life Cycle Considerations
6.12.2 Dummy Plugin
Usage
6.13 Implementing Help
6.14 Multiple Languages
6.14.1 Translating the GUI
6.14.2 Translating Help Pages
6.15 Statistics
6.15.1 Configuration
6.15.2 Server Side Measurement
6.15.3 Client Side Measurement
6.16 Events
6.16.1 External Events
External Event Client
External Event Processing
External Event Example
6.16.2 Global Events
About the life cycle and the transmission of GlobalEvents:
Global Event Example
6.17 Appendix A: XMA Runtime Properties
6.18 Appendix B: XMA BootRuntime Properties
7 Build, Webapp and Deployment
7.1 Build
7.1.1 XMA Build
7.1.2 XMA Compile
7.1.3 XMA Pack
CommonServer.jar
CommonClient.jar
7.1.4 XMA Deploy
7.2 XMA Webapplication
7.2.1 web.xml
7.3 Application and Plugin Descriptors
7.3.1 Overview
The UML-Model for Application- and Plugin Descriptors:
7.3.2 Application Descriptor
Example
Descriptor Elements; Specific Details:
7.3.3 Plugin Descriptor
Overview
Example Descriptor:
7.4 XMA Plugins
7.4.1 Construction of an Plugins.war file
7.5 Build Process
7.5.1 Ant Targets:
7.6 XMA Debug
7.7 Download to the Client
7.7.1 Delta Download
Using Existing Delta Files
Creating Delta Files
8 XMA Frontend Integration
8.1 Component Identification
8.2 Calling XMA-Components from XMA-Components
8.3 Calling XMA-Components via Browser Links
8.3.1 Browser Integration
8.3.2 Non ASCII Characters in URL Parameters
8.4 Calling XMA by Command-Line
8.4.1 Calling XMA by Java
8.4.2 Calling XMA by the Boot-Runtime's Executable
8.5 Calling XMA via an .xma file
8.6 Reserved Parameters

List of Figures

1 XMA big picture
2 component page widgetmodel
3.1 project wizard main page
3.2 project wizard Java settings source
3.3 project wizard Java settings libraries
3.4 project wizard XMA settings
3.5 project structure
3.6 ant launch configuration
3.7 tomcat console output
3.8 ant dialog
3.9 target deploy in ant dialog
3.10 EmptyDialog launch configuration
3.11 EmptyDialog window
4.1 compont creation wizard
4.2 guidesigner views
4.3 new page menu
4.4 new page dialog
4.5 new page dialog filled
4.6 new page in preview
4.7 dialog properties view
4.8 new widget menu
4.9 new widget wizard
4.10 form data dialog
4.11 new widget in preview
4.12 generator icon
4.13 eclipes views
4.14 context menu
4.15 new child submenu
4.16 new sibling submenu
4.17 tab order in outline
4.18 edit submenu
4.19 preview
4.20 preview context menu
4.21 datamapper icon
4.22 generator icon
4.23 guidesigner menu
4.24 propetsrty view
4.25 task view
4.26 task view
4.27 Composite Properties View
4.28 Start FormData Dialog
4.29 Properties View
4.30 FormData Dialog
4.31 Form Data Attachment group
4.32 layout example 1 in preview
4.33 layout example 1 in FormData dialog
4.34 layout example 2 in preview
4.35 layout example 2 in FormData dialog
4.36 layout example 3 in preview
4.37 layout example 3 label in FormData dialog
4.38 layout example 3 textfield in FormData dialog
4.39 layout example 4 in preview
4.40 layout example 4 label in FormData dialog
4.41 layout example 4 textfield in FormData dialog
4.42 layout example 5 in preview
4.43 layout example 5 seperator in FormData dialog
4.44 layout example 5 label of textfield in FormData dialog
4.45 layout example 5 textfield in FormData dialog
4.46 layout example 5 label of combo in FormData dialog
4.47 layout example 5 combo in FormData dialog
4.48 layout example 6 in preview
4.49 layout example 6 combo in FormData dialog
4.50 layout example 6 middle seperator in FormData dialog
4.51 layout example 6 text area in FormData dialog
4.52 layout example 7 in preview
4.53 layout example 7 text area in FormData dialog
4.54 Composite Properties View
4.55 Composite Properties View
4.56 Table layout calculator dialog
4.57 validator menu
4.58 BCD validator dialog
4.59 date validator dialog
4.60 string validator dialog
4.61 timestamp validator dialog
4.62 custom validator dialog
4.63 boolean validator dialog
4.64 component properties dialog
4.65 component property editor
4.66 object model
4.67 object model validators
4.68 object model business data attachements
4.69 Component child menu
4.70 Composite Children menu
4.71 Children menu
4.72 Children Menu
4.73 Children menu
5.1 Data Mapper Start Button
5.2 Data Mapper Dialog
5.3 Create BD Dialog
5.4 Data Mapper Table Example
5.5 Page 1: Create Widget from Attributes Dialog
5.6 Page 2: Create Widget from Attributes Dialog
6.1 task stack
6.2 XMA client side classloader structure
6.3 old XMA client side classloader structure
6.4 widget models
6.5 formatting/verifieing data flow
6.6 validation event flow
6.7 formatting event flow
6.8 RPC context
6.9 data source overview
6.10 login overview
6.11 sequence diagram of login procedure
6.12 sequence diagram of automatic permission checks
7.1 Build Overview
7.2 Compile
7.3 Pack
7.4 common jars
7.5 component jars
7.6 Deploy
7.7 webapplication structure
7.8 application descriptor struture
7.9 sample application descriptor
7.10 plugin decriptor example
7.11 plugin war file structure
7.12 plugin jar file structure
7.13 build target
7.14 project directory structure
7.15 Run Ant Dialog
7.16 Ant View
7.17 debug icon in eclipse
7.18 debug view in eclipse

List of Tables

4.1 parent child relationships
4.2 BCD validator properties
4.3 date validator properties
4.4 string validator properties
4.5 timestamp validator properties
4.6 custom validator properties
4.7 boolean validator properties
4.8 XMa Component Property Properties
4.9 References
4.10 XMA Component Properties
4.11 XMA Component Children
4.12 Children
4.13 Embedded Page Properties
4.14 Embedded Page Childs
4.15 Notebook Page Properties
4.16 Notebook Page Childs
4.17 XMA Dialog Page Properties
4.18 XMA Dialog Page Childs
4.19 AppShell Properties
4.20 Check Button Properties
4.21 DatePicker Properties
4.22 Hidden Widget Properties
4.23 Page Composite Properties
4.24 Push Button Properties
4.25 Radio Button Properties
4.26 Simple Combo Properties
4.27 XMA Combo Properties
4.28 XMA Composite Properties
4.29 XMA Composite Children
4.30 Children
4.31 XMA Container Properties
4.32 XMA Grid Properties
4.33 XMA Group Properties
4.34 XMA Label Properties
4.35 XMA List Properties
4.36 XMA Sashform Properties
4.37 XMA SashForm Children
4.38 Children
4.39 XMA Scrolled Composite Properties
4.40 XMA Scrolled Composite Children
4.41 Children
4.42 XMA Seperator Properties
4.43 XMA Tabfolder Properties
4.44 XMA Tabfolder Children
4.45 XMA Table Properties
4.46 XMA Table Children
4.47 Children
4.48 XMA Text Properties
4.49 XMA Tree Properties
4.50 XMA TableColumn Properties
4.51 GUIDesigner Properties
6.1 string formats of component properties
6.2 widget model table
6.3 simple types
6.4 simple tasks
6.5 list tasks
6.6 table tasks
6.7 tree tasks
6.8 grid tasks
6.9 FmtFactory patterns
6.10 Predefined Data Source Types
6.11 data source plugin configuration
6.12 INotification properties
6.13 monitor variables
6.14 monitor additional variables
6.15 External Event Classes
6.16 Global Event Classes
6.17 xma runtime properties
6.18 bootcfg.porperties