Studio Developer Manual / Version 2101
Table Of ContentsThis section gives you a brief overview of CoreMedia Studio's underlying technologies. These are the ActionScript to JavaScript framework Jangaroo, including the declarative language MXML, 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.
MXML
MXML is the XML dialect of Apache Flex that supports the declarative development of complex components. Jangaroo reuses MXML for Ext JS components. Using Jangaroo for Ext JS development, MXML replaces Ext JS JSON Config objects.
The rationale behind this is to benefit from static typing (provided by MXML) when developing dynamically typed Ext JS components. To this end, Jangaroo integrates with IntelliJ IDEA to support Jangaroo's MXML and ActionScript dialects and compile them to JavaScript. See Section 5.2, “Ext JS with ActionScript and MXML” 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 6: https://www.sencha.com/products/extjs/#overview.
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.