[fleXive]™ 3.0 Reference Documentation

Revision 2172, 2010/04/14 10:12


Johannes Wernig-Pichler <>
Anton Zrzavy <>

Table of Contents

1. Introduction
2. Installing [fleXive]
To run [fleXive] and develop [fleXive] applications you need...
To develop [fleXive] you need...
[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 V2
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 Backend Administration
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
[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
Property parameters
Uniqueness of values
Groups and group assignments
Group parameters
Group modes
Property and group options
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
Tree Search
Date and Time Functions
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
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
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
Running the administration GUI
The structure editor
The structure editor GUI
Structure tree items
Structure tree interaction
View mode vs. edit mode
The type editor
The group editor
The property editor
The script assignment Editor
The instance editor
Creating and editing contents
The content tree
Modes of the content tree
The content tree's context menu
The query editor
Creating queries with the visual query editor
Query results
Saved queries and briefcases
The FxSQL Search
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
Creating a workflow
The workflow overview
Script administration
Creating a script
The script overview
The Script Console
System information and language settings
The System Information
Language settings
Select list administration
Creating a select list
Editing a select list
10. [fleXive] Plugins
Core JSF components
Global Configuration Plugin
Backend 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. XPath to value mapping
6.16. Date and Time functions provided in FxSQL
6.17. System property fields provided in FxSQL
6.18. FxSQL operator table
6.19. 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. Creating a new group
6.10. Creating a new group using the GroovyTypeBuilder
6.11. Creating a "Person" type
6.12. Creating "Person" instances
6.13. Creating a nested query
6.14. Specifying a query with the GroovyQueryBuilder
6.15. Iterating over a FxResultSet
6.16. Directly accessing the search results using getRows()
6.17. Creating a new tree node attached to the root node
6.18. Clear both Live and Edit Tree in the groovy console
6.19. Creating a workflow step definition
6.20. 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. An input row for editing a FxString value
7.10. An autocomplete handler for user names
7.11. Writing custom autocomplete handlers
7.12. Using fx:resultTable to submit and render FxSQL queries
7.13. Updating a resultTable through an Ajax4jsf update
7.14. Using the color picker with a JSF input component
7.15. Using the color picker for a form input
7.16. Rendering a plain text input row
7.17. A fieldset with two formrow elements
7.18. Making a [fleXive] application extensible
7.19. Writing a plugin for a [fleXive] application
7.20. Specifying a PluginFactory in flexive-plugins-config.xml