[fleXive]™ 3.1 Reference Documentation

Revision 2920, 2013/12/16 16:32


Johannes Wernig-Pichler <>
Anton Zrzavy <>

Table of Contents

1. Introduction
2. Installing [fleXive]
Using [fleXive]
The [fleXive] Installer
Maven support
Further steps
[fleXive] installation guide for JBoss 4.2.2 GA
Required libraries
System configuration
Database Setup
Starting [fleXive]
Refining your configuration
[fleXive] installation guide for Glassfish 2 and 3
Required libraries
Running the ant task
Database Setup
Setting up and starting Glassfish
Creating the Connection pools
Building [fleXive] from source
Multiple JBoss installations
JBossCache, Linux and IPv6
Apache ANT
3. The [fleXive] Tutorial
Your first [fleXive] application
Defining the data model
Retrieving data from the database
Building the graphical user interface
Deployment descriptor and JSF configuration
Compiling and deploying the application
Preview of the administration GUI
Tutorial 1: The Document Store Application
Defining the data model
The document browser and upload pages
Using <fx:resultValue>
Passing content instances to the editor form
The upload form
Retrieving data from the database
Rendering previews: the ThumbnailServlet
Wiring up the faces configuration
Compiling and deploying the application
4. Writing [fleXive] applications
The [fleXive] distribution
Getting started
IDE integration
IntelliJ IDEA
Programming [fleXive]
Package for distribution
Build file support
Build targets
Building applications with Apache Maven
The [fleXive] Maven repository
Project archetypes
The EAR archetype
The WAR archetype
[fleXive] artifacts
5. The big picture
6. The [fleXive] core components
User Management
Creating a user
Updating a user
Removing a user
Authentication / FxContext / UserTickets
ACLs - Access Control Lists
Role Based Security
Structure Engine
Root Type
Type parameters
Creating a new type
Data types
Handling binary content
Select lists
Select list parameters
Select list item parameters
Select list creation and persistance
Select list item permissions
Properties and property assignments
Conceptual explanation of property assignments
Property parameters
Uniqueness of values
Groups and group assignments
Group parameters
Group modes
Property and group options
The GroovyTypeBuilder
GroovyTypeBuilder Syntax
GroovyTypeBuilder Attributes
Property and Group Creation - Default Values
GroovyTypeBuilder Usage Examples
The GroovyOptionBuilder
Content Engine
Using FxContent
Primary keys and versions
Search Engine
An introduction to FxSQL
Select user-defined columns
Select all columns
Fulltext search
Properties versus assignments
Content permissions
Lock information
Tree Search
Briefcase Search
Date and Time Functions
Type conditions
Select list properties
Resolving system properties
Order by
Operator table
Literal value formatting
SqlQueryBuilder: Building queries in Java
Nested conditions
Search parameters
The Groovy query builder
Working with search results
Accessing result rows
Briefcase Engine
Tree Engine
Edit and Live modes
Scripting Engine
Events and Bindings
Run-Once and Startup Scripts
Workflow Engine
Conceptual Overview
Creating and updating workflows
Configuration Engine
Conceptual Overview
Working with configuration parameters
Object parameters
7. JSF Support
The [fleXive] component library
Using the component library
Content manipulation
Navigation components
Framework components
Form utility components
JSF managed beans
Delivering XHTML pages from the classpath
URI rewriting for contents
Writing reusable [fleXive] components
JSF components
Build file support
EJB components
The JSF plugin API
The plugin registry
Registering plugins at extension points
8. JBoss Seam and [fleXive]
Integration guide
Programming [fleXive] in Seam
Authorization and Authentication
9. The [fleXive] administration GUI
[fleXive] administration GUI basics
Running the administration GUI
Logging in
[fleXive] administration GUI display areas
administration GUI overview
User preferences
The structure editor
The structure editor GUI
Structure tree
Structure tree interaction
View mode vs. edit mode
The type editor
The group editor
The property editor
The options editor
The scripting editor
Saving and deleting
Structure export and import
Structure export GUI
Structure import GUI
The instance editor
Creating contents
Content creation UI elements
Editing contents
Content versioning
Content import and export
Content locking
The content tree
Live and edit tree
The content tree's context menu
The visual query editor
Creating queries with the visual query editor
Query parameters
Query results
Saved queries
[fleXive] administration
User account administration
Creating a user
The user account overview
User group administration
The user group overview
Mandator administration
Creating a mandator
The mandator overview
ACL administration
Creating an ACL
The permission matrix
The ACL overview
Workflow administration
Step definitions
Step definition overview
Creating a workflow
Editing a workflow
The workflow overview
Script administration
Creating a script
The script overview
Run-Once Script Information
The Script Console
Select list administration
Creating a select list
Editing a select list and its select items
Select list overview
Export and Import of Structures and Division
System administration
Search settings
CMIS SQL query
System Configuration
System parameters
Lock administration
History viewer
System information
Language settings
Create random test data for content instances
10. [fleXive] Plugins
Core JSF components
Global Configuration Plugin
Administration GUI Feedback Plugin

List of Figures

3.1. The document store application, version 1

List of Tables

6.1. Account Attributes
6.2. [fleXive] structure elements
6.3. FxTypeEdit parameters
6.4. [fleXive] data types
6.5. FxSelectList parameters
6.6. FxSelectListItem parameters
6.7. Relevant permissions for working with select list items
6.8. FxPropertyEdit/FxPropertyAssignmentEdit shared parameters
6.9. FxPropertyEdit exclusive parameters
6.10. FxPropertyAssignmentEdit exclusive parameters
6.11. FxGroupEdit/FxGroupAssignmentEdit shared parameters
6.12. FxGroupEdit exclusive parameters
6.13. FxGroupAssignmentEdit exclusive parameters
6.14. Supported options
6.15. Type Attributes
6.16. Properties and Groups - Common Attributes (Property / Group Creation)
6.17. Exclusive property attributes (property creation)
6.18. Exclusive group attributes (group creation)
6.19. Property and Group Assignments - common attributes (property / group assignments and changes thereof)
6.20. Exclusive property assignment attributes (assignments and changes thereof)
6.21. Exclusive group assignment attributes (assignments and changes thereof)
6.22. XPath to value mapping
6.23. Date and Time functions provided in FxSQL
6.24. Type conditions in FxSQL
6.25. System property fields provided in FxSQL
6.26. FxSQL operator table
6.27. FxSQL literal value formats
9.1. FxScriptEvent list

List of Examples

6.1. Creating a new user
6.2. Updating a user
6.3. Removing a user
6.4. Creating a new FxType
6.5. Creating a new FxType using the GroovyTypeBuilder
6.6. Handling binary content
6.7. Creating new properties
6.8. Reusing property assignments
6.9. Property assignment concepts
6.10. Creating a new group
6.11. Creating a new group using the GroovyTypeBuilder
6.12. Creating a simple type with one attribute
6.13. Creating a "Person" type in Java
6.14. Creating a "Person" type in Groovy
6.15. Creating "Person" instances
6.16. Creating a nested query
6.17. Specifying a query with the GroovyQueryBuilder
6.18. Iterating over a FxResultSet
6.19. Directly accessing the search results using getRows()
6.20. Working with briefcases and metadata
6.21. Creating a new tree node attached to the root node
6.22. Clear both Live and Edit Tree in the groovy console
6.23. Creating a workflow step definition
6.24. Creating a new workflow with steps and routes
7.1. Render FxContent property values
7.2. Edit an existing FxContent instance
7.3. Create a new FxContent instance
7.4. Add values to properties with multiplicities
7.5. Add a new empty group to a content instance
7.6. Use InputMappers for application-specific properties
7.7. Iterating over property values
7.8. Iterating over group values and nested iterators
7.9. Content Editor simple usage
7.10. Content Editor adding buttons
7.11. Content Editor calling the backing bean
7.12. An input row for editing a FxString value
7.13. An autocomplete handler for user names
7.14. Writing custom autocomplete handlers
7.15. Using fx:resultTable to submit and render FxSQL queries
7.16. Updating a resultTable through an Ajax4jsf update
7.17. Using the color picker with a JSF input component
7.18. Using the color picker for a form input
7.19. A JSF/HTML navigation that selects the clicked node
7.20. Rendering a plain text input row
7.21. A fieldset with two formrow elements
7.22. Making a [fleXive] application extensible
7.23. Writing a plugin for a [fleXive] application
7.24. Specifying a PluginFactory in flexive-plugins-config.xml