XForms Everywhere

6/8/2009

The state of Orbeon Forms, Part 4

Filed under: News — Erik Bruchez @ 9:11 pm

Bookshelf Form

Here is a summary of the Orbeon Forms developments for April/May 2009:

1. Orbeon Forms release

2. Form Builder and Form Runner

  • Improved Form Builder layout. Form Builder now uses a top/left/bottom/center layout and has better WYSIWYG support.

  • Form Builder toolbox. Controls are now grouped better and their configuration in groups is more flexible.

  • Form Runner summary page improvements. The summary page includes checkboxes for document selection. You simply click on a document to open it.

  • Form Runner TYPO3 extension. The TYPO3 extension for Form Runner is now available on typo3.org.

  • Documentation. We are actively working on the Form Builder User Guide!

3. XForms engine improvements

  • HTML area control. It now does server-side HTML cleanup which improves security and avoids tag soup HTML.

  • Date control. The date parsing algorithm to convert a two-digits year into a full year is improved. There is now a property to setup the date picker to show two months at a time. Finally, <xforms:input> bound to an xs:date or xs:dateTime now supports entering dates in the European format.

  • Sorting. exforms:sort() now properly supports XForms XPath functions and variables within the sorting expression.

  • “In-place input” XBL component. This new XBL component can be used like a regular input simply by writing <fr:inplace-input> instead of <xforms:input>. See how the component is written.

  • XBL support. We added xbl:handler, xbl:implementation, fixed bugs, and improved the documentation.

4. XForms tips from our scratchpad

5. Testing

  • Client-side tests. See all the client-side unit tests run in this screencast. It uses the great YUI Test framework.

  • More and better tests. We have more client- and server-side unit tests, and all client-side unit tests are running on IE6 as well!

That’s it for today. Enjoy!

6/1/2009

Announcing Orbeon Forms 3.7.1

Filed under: News — Erik Bruchez @ 6:12 pm

Orbeon Form Builder

We are glad to announce that Orbeon Forms 3.7.1 is now available for download.

Orbeon Forms 3.7.1 includes over 400 improvements since version 3.6, notably:

  • New Form Builder preview. Orbeon Form Builder is the visual form designer which allows you to build and deploy forms in minutes right from your web browser.
  • Form Runner. Form Runner is the Orbeon Forms runtime environment, which manages form definitions and form data, handles search, validation, and takes care of the plumbing necessary to capture, save, import and export form data.
  • Noscript mode. The “noscript mode” provides enhanced accessibility for certain screen readers and allows you to target browser that have JavaScript disabled.
  • Enhanced user interface controls. Improvements include reusable components based on XBL 2, improved date and time controls, and much more.
  • Enhanced XForms 1.1 support. Standards matter to us and we continue to improve our support for the XForms 1.1 specification.
  • Bug-fixes, performance, and stability improvements. As always, we are working hard on making Orbeon Forms a robust platform!

For more details on these changes and more, please see the full list of changes.

Also visit our online examples, which include the preview of Orbeon Forms Builder.

Please report problems with this build to the mailing-list.

5/31/2009

Come see us at JavaOne 2009

Filed under: News — Erik Bruchez @ 5:45 pm


JavaOne Logo

Orbeon will be at JavaOne this week on the OW2 booth.

We will be demoing Orbeon Form Builder and Form Runner so don’t miss us!

4/13/2009

Setup IntelliJ to Resolve XInclude Paths

Filed under: General — Alessandro Vernet @ 9:59 am

If you are using XInclude in IntelliJ, you might have seen errors like this:

An XInclude errors reported by IntelliJ 8.1

IntelliJ attempts to resolve paths in XInclude relative to the paths you defined as source folders in your Project Structure. You might have defined paths like src/java as a source folder; that is: folders in which you have Java code. But if you keep you resources separate from your Java files (i.e. in src/resources and src/resource-packaged like we do in Orbeon Forms), you will get the error above as IntelliJ fails to find a file src/java/foo/bar.xhtml.

As of IntelliJ 8.1, you can’t disable this behavior so rather than become numb to errors reported by IntelliJ, you can setup it up to look for those files in your resources folder by adding resources a Source Folder or Test Source Folder.


Adding resource paths as source folders in Project Structure (screenshot in IntelliJ 8.1)

A negative side-effect of this configuration is that when compiling your source with IntelliJ as described earlier, it will copy all the files that it considers to be resources in the output path. Mostly, this means that compiling will start taking more time than it should. You can disable this behavior by editing the pattern that describes what IntelliJ considers to be a resource. You can change this pattern under Settings, Compiler, Resource patterns. Entirely removing the pattern will do.


Removing the resource pattern under Settings, Compiler (screenshot in IntelliJ 8.1)

4/6/2009

The state of Orbeon Forms, Part 3

Filed under: General — Erik Bruchez @ 6:53 am

Bookshelf Form

Here is a summary of the Orbeon Forms developments for March 2009:

1. Form Builder and Form Runner

  • Form Runner L&F improvements. The Form Runner look and feel is improved! We got rid of the overwhelming orange color in favor of a more appealing blue theme, put nicer-looking buttons, and reworked the positioning of the logo, title and description areas. Let us know how you like it! Form Builder is next in line for UI improvements.

  • Form Runner and Form Builder packaging. In order to facilitate Orbeon Forms updates as well as modularity, Form Runner and Form Builder are now packaged in separate JAR files in the distribution. For development, they are still under RESOURCES/apps/fr and RESOURCES/forms/orbeon/builder.

  • More flexibility with sections. Form Runner now has a bit more flexibility with sections: you can disable open/close in Ajax mode, or just disable animations.

2. XForms engine improvements

  • XBL support is maturing. We put in lots of XBL bug-fixes last month. We have also setup a consistent directory hierarchy for XBL components.

  • Map component. Nightly builds now feature a new map component written in XBL.

  • More AVTs on controls. xforms:textarea supports xxforms:cols and xxforms:rows attributes as AVTs. All controls support the style attribute as AVT.

3. XForms tips from our scratchpad

4. Testing

That’s it for today. Enjoy!

3/31/2009

OW2 Annual Conference, April 1-2, 2009.

Filed under: News — Erik Bruchez @ 12:15 pm


OW2 Annual Conference

It is a last minute announcement but consider making it to the first OW2 Annual Conference in Paris over the next two days:

Open Source for the Computing Infrastructure

MAKE A DATE TO ATTEND THE FIRST OW2 ANNUAL CONFERENCE

Two days at no cost to you to discover the enterprise software that will set you free and boost your efficiency: come and take part in the first OW2 Annual Conference, April 1-2, in Paris, held during the Solutions Linux trade show.

Optimize your time: attending the first OW2 Annual Conference will also offer you the opportunity to visit the Solution Linux trade show, discover the latest developments in the OW2’s leading projects and get to talk with the developers themselves.

Anticipate the future: come and discover how Ruby is evolving with lead Ruby language designer Yukihiro Matsumoto, and what comes next in Java for the enterprise with Java EE 6 specification lead Roberto Chinnici.

Broaden your knowledge: this year’s program features over 30 presentations, speakers from Europe, Asia and the Americas, seven thematic sessions, four poster sessions and of course the “Best Use Case Award”.

And it’s all free! Thanks to our sponsors and partners, ANR, Bull, EBMWebsourcing, Engineering, eXo Platform, Ingres, INRIA, IPA, Orange Labs, and Xwiki, the conference is free of charge and open to all.

Just one condition, you must register at http://www.solutionslinux.fr. More information on the OW2 Annual Conference website at http://www.ow2.org/view/Events2009AnnualConference/.

Founded in January 2007 OW2 is an independent industry community dedicated to developing open source code middleware and to fostering a vibrant community and business ecosystem. The OW2 Consortium hosts some one hundred technology Projects, including Acceleo, ASM, Bonita, eXo Platorm, Funambol, JOnAS, Lomboz, Orbeon Forms, PetALS, SpagoBI and XWiki. Visit www.ow2.org

3/1/2009

The state of Orbeon Forms, Part 2

Filed under: General — Erik Bruchez @ 9:20 pm

Bookshelf Form

Here is a summary of the recent Orbeon Forms developments:

1. Form Builder and Form Runner

We keep polishing Form Runner and Form Builder. In addition to the usual bug-fixes:

  • Form attachments are attached to emails, and Form Runner is able to include values from form controls in email subjects.

  • The Form Runner summary page is more configurable: there are new properties to hide the Created and Last Modified columns, values of type xs:dayTimeDuration have been added (eg “10 min 25 sec”), and documents that use namespaces are better supported.

  • In noscript (accessible) mode, Form Runner properly shows all existing errors when the user presses the Save or Review buttons.

  • Form Builder’s dialogs are all internationalized and localized in English and French.

  • Form Builder has a clearer mechanism to enter an “application name” and “form name”.

  • Form Builder supports a global components library as well as a library per application.

  • Our Bookcast example form based on Form Runner is now called Bookshelf. It supports image uploads too!

2. Performance

  • Local, optimized submissions, i.e. submissions to local pages/services without actually using HTTP, are improved and work better in separate deployment. A new property also allows optimized local submission using the servlet include mechanism. This is useful for submissions with replace="instance|text|none". See the new Documentation on local submissions.

  • Orbeon Forms supports two different client-side event modes, including a new “deferred” mode which reduces the number of Ajax requests.

  • In some situations where multiple Ajax requests were sent, we now just send one and avoid duplication of events in the request.

2. Notable features and bug-fixes

  • Orbeon Forms deploys on Liferay 5 in addition to Liferay 4. We fixed lots of Liferay-related issues, and Orbeon Forms even supports running Form Runner and Form Builder within a portlet. Support has been added for Portlet 2 (JSR-268) resources (use OrbeonPortlet2Delegate portlet to enable JSR-268 mode).

  • XBL components with local models and instances work within xforms:repeat, better handle HTML directly within XBL templates, and support xbl:script and xbl:style.

  • xforms:input bound to a node of type xs:boolean works within xforms:repeat.

  • xforms:submission supports submitting form values and uploaded files as multipart/form-data.

  • File uploads, as well as xs:date, xs:time and xs:dateTime input controls work properly in noscript mode.

  • xforms:output supports a new appearance, xxforms:download, which displays a link for, well, downloading the data pointed to by the control.

  • xforms:input’s extension attributes (xxforms:maxlength, xxforms:size, xxforms:autocomplete) can be dynamic using AVTs.

  • xforms:input supports changes to the type of the bound node (xs:string, xs:date, xs:time, xs:dateTime, xs:boolean).

  • xxforms:modal="true" on triggers is improved to prevent double submissions using the keyboard.

  • xforms:message actions are executed during page initialization.

  • A new configuration property allows you to enable the XForms Inspector without having to change your page.

2. Other

That’s it for this time. Enjoy, and don’t forget to follow our updates on Twitter.

2/12/2009

A Gmail-like UI to Select Multiple Items

Filed under: General — Alessandro Vernet @ 5:32 am

It is common to see, in web applications, Gmail-like UIs, where you show a list of items (emails in the case of Gmail), and where you’d like users to be able to perform actions on multiple items at a time. For this, users need to be able to select items. This can be done by adding a checkbox at the beginning of each line. It is easy enough to list your items in XForms with an <xforms:repeat>, but developers often wonder how to add that checkbox at the beginning of every line.

Let’s consider a practical case:

  • You have an instance with a list of countries. Each country has a code, which can be used as a key to identify the country.
  • You’d like the selected countries to be stored in a separate instance, as a space separated list of country codes.
  • You don’t want to change the instance that contains the list of countries in any way (no adding of an attribute or element “selected” for each country).
  • You want to generate a UI like the one shown along this text.

The trick here is to have:

  • One <xforms:select appearance="full"> control per line.
  • All the <xforms:select appearance="full"> have exactly one item, each with a different value (the country code) and they are all bound to the same node.

Show me the code! The space separated list of country codes will go in the root element of the selected instance:

<xforms:instance id="selected">
    <selected />
</xforms>

And finally the <xforms:repeat> which iterates over the countries and generates the <xforms:select appearance="full"> looks like:

<xforms:repeat nodeset="instance('countries')/country">
    <xxforms:variable name="country" select="."/>
    <xhtml:tr>
        <xhtml:td>
            <xforms:select appearance="full" ref="instance('selected')">
                <xforms:item>
                    <xforms:label/>
                    <xforms:value value="$country/us-code"/>
                </xforms:item>
            </xforms:select>
        </xhtml:td>
        <xhtml:td>
            <xforms:output value="name"/>
        </xhtml:td>
        <xhtml:td>
            <xforms:output value="us-code"/>
        </xhtml:td>
    </xhtml:tr>
</xforms:repeat>

This works because the XForms select is non-destructive: when you uncheck a a checkbox from a specific XForms select, the engine will only remove the value corresponding to the checkbox you unchecked, and will leave other values in the space separated list unchanged. Job done!

12/7/2008

The state of Orbeon Forms, Part 1

Filed under: General — Erik Bruchez @ 8:32 am

Rotor

For those of you who don’t yet follow our updates on Twitter, here is a summary of some of the new developments since our last post:

1. Form Builder and Form Runner

Work on Form Builder and Form Runner is ongoing. We have added important features:

  • Support for custom components in the toolbox, which allows for supporting small components like phone numbers or reusing entire form sections.

  • Options to control form submission in Form Runner (directly saving into a database, taking you to a confirmation page, showing a confirmation dialog, etc.).

  • Support for sending emails with XML and/or PDF attachments.

At this point we don’t plan to add any new major feature for Form Builder version 1.0. We are working on a couple of deployments, which means that we are concentrating on bug-fixes and performance.

We have lots of ideas for Form Builder past version 1.0. Feel free to send your suggestions to the ops-users mailing-list, and keep in mind the various ways features get into Orbeon Forms.

2. XForms engine features and bug-fixes

Our focus has been on Form Builder and Form Runner, but we have also worked hard on the XForms engine, including:

  • Improvements to the XBL-based component system, which is getting more solid.

  • New extension XPath functions, including xxforms:is-user-in-role(), xxforms:get-remote-user(), xxforms:invalid-binds(), xxforms:encode-iso9075-14(), xxforms:decode-iso9075-14(), xxforms:doc-base64().

  • Localized date picker (English, French, Spanish).

  • Split the good old properties.xml file into several files, including properties-local.xml which facilitates upgrades.

  • Label, help, hint, alert for a control can be located anywhere on a page with the @for attribute.

  • Upgraded YUI to version 2.6.0 and integrated the YUI Rich Text Editor (RTE).

  • Added support for the xforms:email and other XForms 1.1 datatypes.

Check out the latest change list to get an idea of how much has happened in the XForms engine since version 3.6.

3. When is the next release of Orbeon Forms coming out?

As always the answer is “when it is ready”, but we understand this is not enough for our users! The immediate plan is to release a second beta of 3.7 if not in December, then in January. Hopefully that can be the last beta before a 3.7 release candidate.

Nightly builds are quite stable now as we use them on various deployments. We don’t know yet if the next release of Orbeon Forms will coincide with Form Builder version 1.0. That certainly would be nice, provided it happens soon!

That’s it for this time. Enjoy!

8/27/2008

A round of XForms engine performance improvements

Filed under: General — Erik Bruchez @ 8:31 am

Rotor

Now that Orbeon Forms 3.7 beta 1 is out, we have committed a series of changes that intend to improve the performance of the XForms engine. These particular changes initially focused on <xforms:insert> and <xforms:delete>, but they ended up requesting a fairly major refactoring of the XForms controls code on the server. Some (probably obscure) developer information is available on our wiki.

In short, we used to duplicate the tree of controls on the server at every possible turn. Now we:

  • never do it during page initialization

  • do it at most once per Ajax request

Instead we update the tree of controls incrementally upon insert/delete and upon refresh.

The result is that the performance has in fact improved quite a bit for large forms, especially those that use <xforms:insert> and <xforms:delete> heavily. In particular, one of the main goals of this work was to make Form Builder faster. There is still work to do there, but performance has already improved quite a bit!

This is a good step forward: both the code and the processing model for the controls are now much clearer. We are also more XForms 1.1 compliant (in particular regarding repeat index updates). This also fixed along the way a few bugs related to insert/delete/repeat and UI events dispatching.

What’s even better, this lays down a healthy foundation for further improvements, including at some point implementing a dependency mechanism for the controls which should yield even better performance, especially for large forms.

Next Page »

Powered by WordPress