NaturalONE Version 8.3.7
 —  Natural for Ajax  —

Creating Your Own Workplace Application

This document covers the following topics:


General Information

When you create your own workplace application, it consists of several different elements:

Depending on the application needs, it might be convenient to use the default implementation of the workplace framework as it is. Other applications might want to adapt the look-and-feel of the default workplace frames, standard pop-up dialogs and/or texts to their own needs. The topics below describe both approaches.

Top of page

Using the Default Workplace Framework

The default workplace framework is the workplace implementation as used in the development workplace itself. Standard dialogs and frames used in this implementation are not part of your project. They reside in the central project HTMLBasedGUI and are simply used from within your project.

To create a workplace application with the default look-and-feel, proceed as follows:

  1. Use the Layout Painter to create a new layout which uses the "Multi Frame Workplace" layout template (this template is located on the Workplace tab).

    Customize all required properties to your needs. However, leave the workplaceproject property of the MFWPFUNCTIONS control empty.

  2. Create an MFWPBOOTSTRAPINFO XML file. See Filling the MFWPFUNCTIONS Frame Initially: MFWPBOOTSTRAPINFO.

    As the value for the mfworkplaceeventlistener property, specify "com.softwareag.cis.workplace.MFCustomEventListener". This is a ready-to-use default implementation. You can also add your own event listener, see Customizing the MFWPFUNCTIONS Behavior.

Top of page

Customizing the Frames, Dialogs and Messages of the Default Workplace Framework

As shown in the section Framework Overview, the workplace framework contains the following predefined frames which can be customized slightly via the corresponding properties:

In addition, the workplace framework uses own messages and standard dialogs from the central HTMLBasedGUI project. The files of the HTMLBasedGUI project are not intended to be modified because any modifications will be lost during the next product upgrade. Instead, you can use your own "Active Functions" frame and/or your own standard pop-up dialogs and standard messages as described below.

Top of page

Using Your Own Standard Pop-up Dialogs and Messages

Open your "Multi Frame Workplace" page layout in the Layout Painter. Set the value of the property workplaceproject to the name of your project. When saving the page layout, the following files will be generated into your project:

The workplace.csv files in the multilanguage directory contain standard messages used in the workplace framework for English and German. Be careful not to change the text IDs. However, you can adapt the texts and you can also add additional languages.

The names of the popups.csv files in the multilanguage directory are defined by the translationreference property. See the sample layout below.

The popupok.xml and popupyesno.xml files are the layouts for the used standard pop-up dialogs. Be sure not to change the names of the layouts, the corresponding adapter classes or the properties/methods. You can adapt the layouts but you must keep the following parts that are shown in bold below:

<page ispopup="true"
      model="com.softwareag.cis.popups.PopupOKModel" 
      popupheight="170" popupwidth="310"  
      translationreference="popups">
  <pagebody takefullheight="true">
    <itr height="100%" width="100%">
      <textout align="center" valign="middle" 
               valueprop="question" width="100%">
      </textout>
    </itr>
    <vdist height="5">
    </vdist>
    <itr align="center">
      <button method="reactOnOK" textid="popupok.button0" 
              withtd="false">
      </button>
    </itr>
    <vdist height="8">
    </vdist>
  </pagebody>
</page> 
<page model="com.softwareag.cis.popups.PopupYesNoModel" 
      translationreference="popups" popupwidth="310" 
      popupheight="200">
  <pagebody takefullheight="true">
    <vdist height="5">
    </vdist>
    <itr width="100%" align="center">
    <textout valueprop="question" width="100%" height="100" 
             align="center">
    </textout>
    </itr>
    <vdist height="5">
    </vdist>
    <itr align="center">
      <button textid="btnYes" method="reactOnYes">
      </button>
      <hdist width="10">
      </hdist>
      <button textid="btnNo" method="reactOnNo">
      </button>
    </itr>
    <vdist height="5">
    </vdist>
  </pagebody>
</page>

Top of page

Using Your Own "Active Functions" Frame

To create and use your own "Active Functions" frame, proceed as follows:

  1. Use the Layout Painter to create a new layout which uses one of the following layout templates (these templates are located on the Workplace tab):

    Workplace Activities Frame
    Workplace Activities Frame 2
    Workplace Stripsel Activities Frame
    Workplace Stripsel Activities Frame 2

    The layout templates either use a TABSTRIP2 or a STRIPSEL control to render the activities. Both variants are available with and without navigation frame icons ("Close All Windows", "Reopen Navigation Frame", "Close Navigation Frame"). The layout templates which contain the number 2 in their names include the additional navigation frame icons.

  2. You can modify the generated layout, but you must keep the parts that are shown in bold below.

    <page 
      model="com.softwareag.cis.workplace.MFActivitiesAdapter" 
      translationreference="workplace"      
      ...
      <tabstrip2 tabstripprop="activities2"
      ...

    For controlling the navigation frame, you can use the following method names:

    Note that the generated layout is implemented by the Java adapter com.softwareag.cis.workplace.MFActivitiesAdapter. This Java adapter will handle these events. The "Active Function" frame cannot be implemented by a NATPAGE control. Also note that the events listed above are not passed to the Natural application.

  3. In the MFWPFUNCTIONS control of your "Multi Frame Workplace" layout, set the activefunctionsvariant property to the URL of your own "Active Functions" frame layout. Example:

    activefunctionsvariant="/myproject/myactiveFunctionsFrame.html"

Top of page