Eclipse RCP in Action

An Editorial CMS Client Based on Eclipse RCP

Use of rich client applications based on Eclipse RCP has increased widely in recent years, both in the open source and in the commercial field. Eclipse RCP is employed more and more in sections where web clients were predominantly in use. One good example of this development is the content management system (CMS) "Sophora" from the German company subshell GmbH (http://www.subshell.com). Sophora has proven itself during the last years at the editorial office of tagesschau.de, Germany's leading news homepage. This article describes the experience of subshell's development team while developing the Sophora Deskclient and the article outlines certain obstacles the team encountered, and their resolutions.

In 2006, when a new content management system for the editorial office of tagesschau.de was in development, the primary goal of the editorial staff was clearly stated: publishing articles must be effective and efficient. Journalists should be supported so that they can focus on content rather than on the website's (or any other channel's) layout when writing news. Images as well as audio and video content need to be placed in or around the text easily and without delay. These challenges led to the development of a desktop application that contains the structured content of each article and that can then be easily extended with additional content via drag and drop.

When using a desktop application, several technical questions need to be posed in advance. Which operating systems will be supported? How will the application be distributed and installed on the different workstations? How will required updates be executed? How will user specific configurations be handled when the user switches workstations? These problems were unique challenges for subshell; they do not often emerge when working with web clients. At last, a solution was found. The Eclipse RCP framework was chosen as the technology for a rich-client, the so-called Sophora Deskclient (see figure 1).

Administrative Point of View

The Eclipse RCP framework already answers some of the needs mentioned above. Installing the rich-client can be omitted since the application only needs to be extracted to a workstation's hard drive. A central update site is used to deliver required updates and to provide the latest software version. Upon the Deskclient's start-up, new updates are automatically installed. Alternatively, the application can be rolled-out by using an existing, internal software deployment system. The individual settings are stored in the central home directories so that they are retained when users change workstations.

In addition, the plug-in framework provides the point of entry for any future product extensions that are not enclosed in the standard version. The manufacturer can assemble the Deskclient with the help of flexible build configurations and can deploy different variants of the same core product, e.g., for different operating systems like Windows, Linux or Mac OS. It is also possible to integrate project specific plug-ins.

The Sophora CMS is a document-oriented system. For a journalist this means that he or she never edits the website as a whole but instead focuses on single documents that are later assembled to form the actual website. Every document has a document type, which can be defined and configured freely. Example document types are homepage, story, breaking-news, image, slide-show, audio, video, link, filter, broadcast, form, download, survey, chronicle and so on. Each document contains the information that is needed to be referenced by another document and to be displayed on the website in the context of this document. For example, all story documents contain a headline and a teaser text, as well as a teaser image, all of which are used to announce them on an index page.

Journalistic Point of View

The Eclipse RCP framework presents a well-arranged user interface by dividing the workspace into views and editors, and therefore allows each journalist to customise their alignment individually. For example, the Sophora Deskclient provides one view that contains the entire search function. Retrieved documents can be opened in the editor section from this view (see box "Sophora Documents" for more information about documents within Sophora). The component structure (deduced from Eclipse's outline view), which displays all documents referenced by the document at hand, is another example of this technology. The modified property sheet page, called component details, consists of detailed information about the component that is selected in the component structure view. It further provides a way to override these details in the context of the current document (see figure 1).

For an editorial journalist it is commonplace to not only edit multiple documents at a time but also to drag and drop documents from other views into the current workspace. Users can rearrange the views to meet their individual requirements and to best support their workflow. For example, they can even detach a view from the parent window and move the preview view to another monitor to revise and view their changes as they would appear on the website. This way of working is more fluid and better supports a busy editorial office.

Sophora Documents

The Sophora CMS is a document-oriented system. For a journalist this means that he or she never edits the website as a whole but instead focuses on single documents that are later assembled to form the actual website. Every document has a document type, which can be defined and configured freely. Example document types are homepage, story, breaking-news, image, slide-show, audio, video, link, filter, broadcast, form, download, survey, chronicle and so on. Each document contains the information that is needed to be referenced by another document and to be displayed on the website in the context of this document. For example, all story documents contain a headline and a teaser text, as well as a teaser image, all of which are used to announce them on an index page.

Document Search Within the Deskclient

The search mechanism is one key element of the Deskclient with which users find documents they want to modify or use. A user has to identify those documents relevant to him or her, based on the displayed information within the search result list. This includes the document's status as well as content information such as document type, headline, thumbnail, last modifier of the document, modification date and other potentially interesting facts which might depend on the document's type. The results of this search query list as a simple SWT list or table would have been confusing and not very user-friendly. Therefore, an ExtendedListViewer, which extends the JFace StructuredViewer, has been added to the Deskclient. The elements of the ExtendedListViewer, i.e. the domain objects provided by the corresponding IContentProvider, are shown as arbitrary SWT controls created by an IControlProvider. The IControlProvider has to be set analogously to an IContentProvider at the ExtendedListViewer. The ExtendedListViewer then manages the generated controls. When list elements need to be updated, the corresponding controls are removed from the internal cache and requested again from the IControlProvider. This way, individual search result entries are updated immediately. For example, a user modifies the headline of the document while it is displayed in the search result list of another user's Deskclient. As a result, the presentation of the search results is interchangeable due to the IControlProvider. Figure 2 illustrates the different display modes: Single line, compact and gallery.

Pages

Torsten Witte
Torsten Witte

What do you think?

JAX Magazine - 2014 - 05 Exclucively for iPad users JAX Magazine on Android

Comments

Latest opinions