2017 June Release

Creating Fabasoft app.ducx projects using EclipsePermanent link for this heading

With Eclipse, you can also either create a new Fabasoft app.ducx project from scratch or create a project from an existing software component.

Before creating your first Fabasoft app.ducx project, it is recommended that you define a default web service in the Eclipse preferences.

Fabasoft app.ducx-specific settings in the Eclipse preferencesPermanent link for this heading

Fabasoft app.ducx allows you to define several Fabasoft app.ducx-specific settings in the Eclipse preferences dialog box. To configure these settings, click Preferences on the Window menu, and select “Fabasoft app.ducx” in the dialog box (see next figure).

Figure 3: app.ducx-specific preferences in Eclipse

It is recommended that you define a Default Web Service for Fabasoft app.ducx in the Eclipse preferences before you create your first Fabasoft app.ducx project.

In the preferences dialog box, you can also set the threshold for compressed uploads. When running a Fabasoft app.ducx project, a software component is automatically generated from the output of the Fabasoft app.ducx compiler, and uploaded to the development web service. If the file size of the software component to be uploaded exceeds the threshold defined in the Compressed Upload Threshold field, the software component is automatically compressed to minimize the upload time.

You can also activate code signing and customize the colors used for syntax coloring in the preferences dialog box.

Creating a new Fabasoft app.ducx projectPermanent link for this heading

On the File menu, point to New, and then click Project to invoke the “New Project” dialog box (see next figure). In this dialog box, select “Fabasoft app.ducx project” from the “Fabasoft app.ducx” folder and click Next.

Figure 4: Eclipse New Project wizard

In the “Create a Fabasoft app.ducx project” dialog box (see next figure), enter a Project Name for your project.

If you clear the Use default location check box, you can enter a path for your new Fabasoft app.ducx project. Otherwise, the default location defined in the Eclipse preferences is used.

By default, the web service configured in the Eclipse preferences is used for connecting to your Fabasoft app.ducx domain. However, you may also define a project-specific web service by clearing the Use default web service check box.

In the Software component field, you have to provide the reference of the software component created for your new Fabasoft  app.ducx project. Additionally select the domain ID the software component should belong to.

During the development process component objects are created. Each component object gets a unique address that contains a major and minor domain ID and a subsequent number. The domain ID is defined in the license file for Fabasoft app.ducx and cannot be changed.

Note: To decide which domain ID should be used, open the Fabasoft app.ducx license file with an editor and search for COOSWCLM@1.1:domainmajorid and COOSWCLM@1.1:domainminorid. The file name of the license file usually contains the domain ID, too.

For productive development additionally a personal address range file and an address range has to be entered in the Address file and Address ranges field to ensure unique addresses. Select a start address and an end address. The natural numbers within the range are used for the created component objects. If all addresses are used, an error is generated. In this case an additional range for the Fabasoft app.ducx project has to be provided.

Attention: All addresses have to be world-wide unique. On the one hand this is assured by Fabasoft, providing each major and minor domain ID combination only once. On the other hand the address ranges have to be managed by the customers themselves. If several developers work within a domain ID, each developer is only allowed to use defined address ranges such that no address can be assigned twice.

The current domain cannot be ranged and must not be used for productive development.

Note: Later on the address range file and the defined address ranges can be modified in the Fabasoft app.ducx project settings. An address range file can be added or changed and additional address ranges can be defined.

Figure 5: Fabasoft app.ducx project wizard in Eclipse

After clicking Next, you are taken to the dialog box pictured in the next figure, where you can add software component references to your Fabasoft app.ducx project. For detailed information on software component references, please refer to chapter “Adding a software component reference”.

Figure 6: Defining the software component references for your project

Click Next for the wizard to take you to the next step, where you need to provide a Name and a Version for your software component along with a Copyright file. Confirm your choices by clicking Next.

This will take you to the dialog box shown in the next figure. In this dialog box, select Enable Java support if you want to use Java to implement use cases in your Fabasoft app.ducx project. If you select Generate only for shortcuts, Java classes are only generated for software components that are defined as shortcuts. Shortcuts for COOSYSTEM@1.1 and the own software component are mandatory and created automatically. This way the compiling performance can be improved. Strip unused symbols from output should be used for a release build to reduce the size of the JAR file. No stripping of unused symbols is an advantage in the development process because the project compiles faster.

For detailed information on how to implement use cases in Java, please refer to chapter “Permanent link for this heading

Implementing a stand alone virtual applicationBy using the keyword application it is possible to create a cirtual application without use case. All features described for applications used as implementations for use cases are available. This is implemented for backward compatibility and generally should not be used.Exampleapplication ShowUserSettings () {
  epression {    UserEnvironment ue = cooenv;    EditObjectAttributesApp(ue);  }
}Implementing a use case in Java

Figure 7: Enabling Java support for a Fabasoft app.ducx project

Click Next to get to the dialog box depicted in the next figure. In the dialog box, you may select template files that you want the wizard to automatically generate for your Fabasoft app.ducx project. For instance, as your Fabasoft app.ducx project will most likely contain object model elements, you may want to consider checking the .ducx-om template for the wizard to add an object model file to your app.ducx project for you. However, you can also add files to your Fabasoft app.ducx project later.

Click Finish for the wizard to create your new Fabasoft app.ducx project.

The Fabasoft app.ducx feature for Eclipse also includes a predefined perspective that is optimized for working with Fabasoft app.ducx. After clicking Finish, you are asked whether you want to activate the Fabasoft app.ducx perspective.

Figure 8: Selecting template files

Creating an Fabasoft app.ducx project from an existing software componentPermanent link for this heading

Fabasoft app.ducx allows you to create a Fabasoft app.ducx project from an existing software component. To do so, click Import on the context menu in Eclipse Project Explorer. Select “Existing Component as Fabasoft app.ducx Project” and click Next.

This will take you to the dialog box depicted in the next figure where you can select the source for creating the new Fabasoft app.ducx project. You may either select a container object (.coo) file from the file system or a software component from your development domain. Enter a Project name and the reference of your new software component in the Component field, and click Next to proceed.

Figure 9: Creating a Fabasoft app.ducx project from an existing software component

The remaining steps of the wizard are similar to the steps when creating a new Fabasoft app.ducx project from scratch.

After completing the remaining steps, the wizard creates a Fabasoft app.ducx project based on the software component you selected as source, and transforms the component objects belonging to the software component into domain specific language source code.

Note: A full transformation of all elements of the software component used as source might not be possible. For a detailed overview of how each language construct transformed is please refer to chapter “Not translated object classes”.