loading table of contents...

2.2. Technologies

This section gives you a brief overview of CoreMedia Studio's underlying technologies. These are the ActionScript to JavaScript framework Jangaroo, including its declarative language EXML, the JavaScript UI framework Ext JS, and the CKEditor for richtext editing.

Jangaroo

Jangaroo is CoreMedia's open source JavaScript framework, supporting ActionScript as a source language, which is then compiled down to JavaScript.

A detailed description of the Jangaroo compiler jooc is given on the Jangaroo website https://github.com/CoreMedia/jangaroo-tools/wiki/Compiler. The compiler is integrated into the Maven build process of the CoreMedia CMS distribution, so in a Maven-based project you should never need to invoke the compiler directly.

EXML

EXML is an XML dialect developed by CoreMedia that supports the declarative development of complex Ext JS components. It is Jangaroo's equivalent to Adobe Flex MXML. Jangaroo compiles EXML down to ActionScript.

The rationale behind this is to benefit from static typing (provided by XML) when developing dynamically typed Ext JS components. To this end, Jangaroo provides an IntelliJ IDEA plugin supporting documentation lookup of EXML tags, navigation between EXML components, and compilation of EXML to ActionScript. See Section 5.2, “Ext JS with ActionScript and EXML” for details.

Ext JS

Ext JS is a cross-browser rich internet application framework developed by Sencha Inc. It offers JavaScript UI widgets and client side MVC. To this end, Ext JS provides components, actions and data abstractions. Components can be customized by plugins. Component trees are described in JSON notation. Ext JS defines the JavaScript properties xtype and ptype to distinguish between components and plugins.

In short, Ext JS has the following features:

  • clean object-oriented design,

  • hierarchical component architecture (component tree),

  • large UI library with mature widgets, especially mature business components (Store abstraction, DataGrid),

  • built-in layout management,

  • good drag and drop support with sophisticated visual feedback,

  • declarative UI description language (JSON).

Ext JS also provides a rich set of utility functions to deal with components or plain JavaScript objects and functions. The complete Ext JS documentation can be found on http://www.sencha.com/learn/Learn_About_the_Ext_JavaScript_Library.

The CoreMedia Studio builds on Ext JS 3: http://www.sencha.com/products/extjs3/.

CKEditor

The CKEditor is a browser based open source WYSIWYG text editor (http://ckeditor.com/). Common editing features found on desktop editing applications like Microsoft Word and OpenOffice are brought to the web browser by using CKEditor.

The CKEditor is the default editor for richTextPropertyField in a document form. Thereby the CKEditor is encapsulated by the wrapper richTextArea, making it possible to use the CKEditor with the same look and feel as the rest of the Ext JS based CoreMedia Studio. The wrapper takes the editing area of the CKEditor and adds Ext JS based dialogs.

The CKEditor can be extended by custom plugins. CoreMedia Studio comes with several extra plugins supporting CoreMedia richtext specific formats and operations. Likewise, you can add more plugins to integrate your own functionality. See Section 7.4.5, “Customizing RichText Property Fields” for more on this topic.