Nexacro Platform creates and manages "Projects," which are stored as files with the extension xprj. Projects are generally managed as ADL (Application Definition Language), Type Definition, Global Variables, and FDL (Form Definition Language), as discussed in this chapter.
New Project Wizard
New projects can be created by using the New Project Wizard.
Menu File [New – Project]
The wizard walks you through naming the project and its location, defining its type definition, and defining the screen.
Step 1: Location
The first step is to enter the Frame Template, the path to the project and the name of the project. The project name is mandatory.
The project name cannot be used in the path.
Properties | Description | |
---|---|---|
1 | Frame Template | Selects the default frame for the project |
2 | Project Template | Select previous Project Template |
3 | List Style | Select the list style for the templates |
4 | Project Information | Display selected template |
5 | Objective | Specify whether to add the new project to the current project or to create a completely new project |
6 | Name | Enter the project name |
7 | Location | Specify path |
Projects in the same folder must have unique names.
The following special characters cannot be used for IDs of projects, forms and objects.
tab new-line return \ / : ‘ * ? “ < > | ! @ # $ % ^ & ( ) - + = ~ [ ] { } , `
The following characters cannot be used as well and will display error message.
Null character strings, .(Dot), character strings starting with numbers, two-byte characters
As with any Windows environment, certain file names cannot be used with the Nexacro Platform.
The following site identifies names that cannot be used.
http://msdn.microsoft.com/en-us/library/aa365247.aspx#naming_conventions
Step 2 Definition
The next step is to set up the project's TypeDefinition.
The default character set is specified in UTF-8.
Properties | Description | |
---|---|---|
1 | TypeDefinition XML | Specify either • Create new TypeDefinition from default, or • Apply existing TypeDefinition |
2 | TypeDefinition XML Path | TypeDefinition XML Path |
Step 3 Screen
Set up the screen information for running applications.
Description | |
---|---|
1 | Edits screen information |
2 | Fetches screen information from the template list |
3 | Adds screen |
4 | Deletes screen |
5 | Generates an ADL file that contains screen information |
Screen Properties | Description |
---|---|
name | Screen name (unique identifier) |
type | type of a device - Many options including 'desktop', 'phone', and 'tablet' |
screenwidth | Screen width (valid range: 0~65536) |
sizeorientation | Specifies the direction of processing the screenwidth property - Selects either 'landscape' or 'portrait' - Default 'landscape' (when the type property includes 'desktop' or 'tablet') - Default 'portrait' (when the type property is 'phone') |
autozoom | Specifies whether to use the auto-zoom function - Selects either true or false (default is false) - If type property is 'desktop,' autozoom is not applicable. |
zoommin | Specifies the minimum value for autozoom - Unlimited if the value is a negative number. Default is -1. |
zoommax | Specifies the maximum value for autozoom - Unlimited if the value is a negative number. Default is -1. |
systemos | Information on an OS for the screen - Many options including 'windows', 'android', and 'ios' - The default values includes all the OS property values. |
systemlocale | Information on locales used in the screen - Many options including 'af_ZA' and "zh_TW"' - The default values includes all the locale property values. |
formlayoutwidth | Specifies the width of a form layout used in the screen |
formlayoutheight | Specifies the height of a form layout used in the screen |
themeid property is an application property for each screen. You can specify values after an ADL file is generated.
Application Definition Language (ADL)
ADL manages styles, themes, and main frames that are generally applied to projects when launching applications.
Menu | Function |
---|---|
Edit Source | Opens the Source Editing window to allow editing the XML of the selected ADL |
Edit Script | Opens the Script Editing window to allow editing of the script of the selected ADL |
Insert ADL Item | • Style - Add Style CSS file • Tray - Add Tray • Theme - Add Xtheme file • Screen - Add screen information |
Set as Active ADL | Activates a selected ADL This menu function becomes inactive in the active ADL. |
Copy | Function not supported in ADL menu |
Cut | Function not supported in ADL menu |
Paste | Function not supported in ADL menu |
Collapse All | Hides ADL detail |
Expand All | Displays ADL detail |
Screen Template | Edits the screen template list |
Copy Full Path | Copies the path where a selected ADL file is stored to the clipboard |
Open Containing Folder | Opens and displays the location containing a selected ADL file in Windows Explorer |
Close | Function not supported in ADL menu |
Save | Saves the selected ADL |
Save As… | Saves the selected ADL using a different name |
Rename | Renames the selected ADL |
Generate | Builds the selected project: • Generate Application • Generate Themes • Generate File |
Refresh | Reloads ADL XML |
Delete | Deletes the selected ADL |
MainFrame
The MainFrame is an element composing Nexacro Platform application's basic screen. It has ChildFrame as a subordinate element and by default is created when a project is created.
Menu | Icon | Function |
---|---|---|
Edit | Edit MainFrame details | |
Insert Frame | Adds frame objects to the selected MainFrame | |
Copy | Function not supported in MainFrame menu | |
Cut | Function not supported in MainFrame menu | |
Paste | Function not supported in MainFrame menu | |
Collapse All | Hides MainFrame detail | |
Expand All | Displays MainFrame detail | |
Copy Full Path | Copies the path to the selected MainFrame to the clipboard | |
Open Containing Folder | Opens and displays the folder containing the selected MainFrame in Windows Explorer | |
Close | Function not supported in MainFrame menu | |
Save | Saves the MainFrame | |
Save As… | Function not supported in MainFrame menu | |
Rename | Function not supported in MainFrame menu | |
Generate | Generates either the application or themes | |
Refresh | Function not supported in MainFrame menu | |
Delete | Delete the selected MainFrame |
ChildFrame, a frame that can come at the lower level of MainFrame, has form information in the shape of URL and shows the form on the screen. It implies the basic unit screen for loading a form.
Theme
You can change the style of project by selecting a user-developed Theme.
Theme Functions
Access the Themes menu and select the function you want to perform.
Menu Function | Description |
---|---|
Edit | Accesses the Theme Editor |
New Theme | Adds a new theme |
Insert Theme | Inserts a theme |
Copy | Function not supported by Themes menu |
Cut | Function not supported by Themes menu |
Paste | Function not supported by Themes menu |
Collapse All | Hide theme detail |
Expand All | Display theme detail |
Copy Full Path | Copies the path to the selected theme to the clipboard |
Open Containing Folder | Opens and displays the folder containing the selected theme file in Windows Explorer |
Close | Function not supported by Themes menu |
Save | Function not supported by Themes menu |
Save As… | Function not supported by Themes menu |
Rename | Function not supported by Themes menu |
Generate | Generates either the application or themes |
Refresh | Function not supported by Themes menu |
Manage an Existing Theme
To manage an existing theme, select the theme from the tree and the function you want to perform.
Menu Function | Icon | Description |
---|---|---|
Edit | Opens the Theme Editor | |
Set as Active Theme | Indicates that the selected theme should be applied to the project when the project is opened. | |
Copy | Function not supported by Themes menu | |
Cut | Function not supported by Themes menu | |
Paste | Function not supported by Themes menu | |
Collapse All | Function not supported by Themes menu | |
Expand All | Function not supported by Themes menu | |
Copy Full Path | Copies the path the the selected theme to the clipboard | |
Open Containing Folder | Opens and displays the folder containing the theme in Windows Explorer | |
Close | Closes the Theme Editor | |
Save | Saves the theme | |
Save As… | Saves the theme being edited under another name | |
Rename | Changes the theme name | |
Generate | Generates either the application or themes | |
Refresh | Function not supported by Themes menu | |
Delete | Deletes the selected theme |
Working with Image and CSS Files
When checking image files, you can see image file information at the bottom of image preview window.
Manage image and CSS files using the following functions.
Menu Functions | Description |
---|---|
Edit | Opens the CSS Editor (For details of CSS Editor, refer to descriptions in Style) |
New Folder | Create new folder in Theme |
Insert File | Add image file or CSS file |
Remove File | Delete selected file in tree from the list |
Rename | Edit name of selected file in tree |
Set Extern | Select image file to be saved at Extern File in deploy theme function. CheckBox will be set to uncheck state. When you select the built-in Theme (default.theme) this function does not appear. |
Unset Extern | Set Extern File from the menu to off. CheckBox will be set to check state. When you select the built-in Theme (default.theme) this function does not appear.) |
ScreenInfo
Access the Popup menu associated with the ADL item in the Project Explorer window to add new screen information.
To edit screen information, select ScreenInfo under the ADL item.
Menu Function | Description |
---|---|
Edit | Accesses the Screen Editor |
Insert Screen | Adds a new screen |
Copy | Function not supported by ScreenInfo menu |
Cut | Function not supported by ScreenInfo menu |
Paste | Function not supported by ScreenInfo menu |
Collapse All | Hides ScreenInfo detail |
Expand All | Displays ScreenInfo detail |
Copy Full Path | Copies the selected ADL file path to the clipboard (ScreenInfo information in included in the ADL file.) |
Open Containing Folder | Opens and displays the folder containing the ADL file in the Windows Explorer |
Close | Function not supported by ScreenInfo menu |
Save | Saves the ScreenInfo |
Save As… | Function not supported by ScreenInfo menu |
Rename | Function not supported by ScreenInfo menu |
Generate | Generates either the application or themes |
Refresh | Function not supported by ScreenInfo menu |
The ScreenInfo Editor provides the same editing functions as the previously mentioned Variable Editor.
Properties | Description | |
---|---|---|
1 | Add | Button that adds new screen information |
2 | Del | Button that deletes selected screen information on ScreenInfo Grid |
3 | Screen Information Grid | Grid that displays the screen information of project that will be used |
4 | Properties window | Screen information selected in the ScreenInfo Grid is displayed in windows the same way, and can be edited |
5 | Add Application Property | Button that adds application property information to the screen information |
Add Application Property
Selecting Add Application Property in the Properties window displays a dialog window for inputting application property information.
Item | Description | |
---|---|---|
1 | Screen name | Displays a selected screen name |
2 | Align | Chooses how to align the property list (Group/Alphabet) |
3 | Application property list | Displays available application property information to be added to the screen information. When you input a value, click the OK button. The Application group is created in the Properties window and the designated property item is added. When you delete a value from the property list, the associated property item is removed from the Properties window. |
You can delete the added application property information by using the context menu.
Tray
You can add applications' icons to the system tray of Windows. Then, you can control applications through the tray-related features such as a pop-up menu opened from the tray.
Adding Icons
You can add a tray icon by accessing [Inset ADL Item > Tray] from the context menu of an ADL file. Then, you can see a new tray icon under the created "Trays" group. If you want to add another tray icon, select "Insert Tray" from the context menu of the Trays group or press "Add" button on the tray editor panel.
Added icons will be displayed on the system tray of Windows when the relevant application is launched.
Adding Pop-up Menu Items
You can assign only one action for clicking an application icon on the system tray. However, you can set multiple features by using a pop-up menu.
Access items on the Properties window of a tray icon. Then, open the tray pop-up menu editor by clicking the button placed on the right-hand side of items. In the editor, you can create a pop-up menu and add items by setting an innerdataset.
The process of adding items is the same with the ones applied to a Menu component or PopupMenu component. The value of levelcolumn begins with 0. You can set a shortcut by applying "&" to a certain item of captioncolumn.
Executing Tray
Added icons will be displayed on the system tray of Windows when the relevant application runs on the runtime environment. You should add the below event script to allow users to open the registered pop-up menu by clicking the relevant icon on the system tray.
this.Tray0_onlbuttonup = function(obj:Tray, e:nexacro.MouseEventInfo) { obj.items['item00'].trackPopup(); }
Managing TypeDefinition
In Nexacro Studio, you can register and update Components in TypeDefinition and use them as prefixes.
Access the TypeDefinition context menu for different functions you can use.
Menu Function | Description |
---|---|
Edit | Opens the TypeDefinition Editor |
Insert Typedefinition Item | Opens the wizard to add a new protocol to the Protocols tab of TypeDefinition |
Copy | Function not supported by TypeDefinition menu |
Cut | Function not supported by TypeDefinition menu |
Paste | Function not supported by TypeDefinition menu |
Collapse All | Hides TypeDefinition detail |
Expand All | Displays TypeDefinition detail |
Copy Full Path | Copies the path to the selected TypeDefinition to the clipboard |
Open Containing Folder | Opens and displays the folder containing the selected TypeDefinition file in Windows Explorer |
Close | Function not supported by TypeDefinition menu |
Save | Function not supported by TypeDefinition menu |
Save As… | Function not supported by TypeDefinition menu |
Rename | Function not supported by TypeDefinition menu |
Generate | Generates the selected component, one of: • Application • Themes • Service • File |
Refresh | Reload TypeDefinition XML |
Editing TypeDefinition Items
Open the Edit TypeDefinition window to add, edit, or delete an item by selecting Edit from the context menu or by double-clicking the TypeDefinition item.
Objects
Column | Description |
---|---|
Type | Type of component |
ID | Component ID |
ClassName | ClassName of component |
Image | Image that will be used in the toolbar of component |
Default Width | Default width of component |
Default Height | Default height of component |
Modules
To use additionally developed components, you must register (add) related modules on the Modules tab.
Design components used in Nexacro Platform, such as Button and Checkbox, and invisible components such as Dataset, are managed in the library registered on the Modules tab. For applications to work properly, make sure that the library folder in use is set up in an accessible path.
Protocols
In Protocols, you can register/delete protocols as well as manage the device types to which each protocol is applied. Moreover, you can register information of modules and classes for each device type.
Device type | Column | Description |
---|---|---|
Runtime | ModuleName | This is the name of a binary module, which is a DLL file located in the target path. You can register the module by specifying the name of the DLL file. |
TargetPath | This is the path from which a binary module is obtained. | |
HTML5 | Classname | This is the class name of a protocol used in the HTML5 environment. |
Android | Classname | This is the class name of a protocol used in the Android environment. |
iOS | Classname | This is the class name of a protocol used in the iOS environment. |
Services
Access the Services tab for managing service definitions, and the folder path or Internet URL.
Use the Add and Delete button to add new services or delete selected services.
Column | Description |
---|---|
PrefixID | PrefixID of Service |
Type | Service Type |
Url | Path of a service |
CacheLevel | Whether and what type of caching to use |
Codepage | Codepage name |
Language | Language to use |
Version | Service version information |
Communication version | Communication version information |
ServiceList | Path for calling a service list (This item will be activated if you specify a service type as "bs" or "metadata.") |
DatasetLayout | Path for calling a model service layout (This item will be activated if you specify a service type as "bs" or "metadata.") |
ExecuteUrl | Path for executing a business service (This item will be activated if you specify a service type as "bs.") |
File Extension | List of file extensions that are managed in a service (This item will be activated if you specify a service type as "file.") You can specify multiple extensions by dividing them with semicolons. (eg. js;txt;xfdl;xml) |
Include Sub-directory | Determines whether to include sub-directories. (This item will be activated if you specify a service type as "file.") |
Search Column | Specifies the columns to search when you handle data in the metadata editor (This item will be activated if you specify a service type as "metadata.") You can specify multiple extensions by dividing them with semicolons. If you specify no value, all columns will be searched. |
The following types of strings should not be used in specifying a PrefixID as they may cause an error.
- An empty string
- A string beginning with a number
- A string that overlaps an existing PrefixID
- A string that includes a special character as below
space(' '), \t, \n, \r, \, /, :, ;, *, ?, ', ", <, >, |, !, @, #, $, %, ^, &, (, ) , -, +, =, ~, [, ], {, }, `, comma(,), dot(.)
The file types allowed in the Project Explorer differ according to service types.
Service Type | File extension |
---|---|
form | *.xfdl, *.xjs, *.js |
js | *.js, *.xjs |
file | Any file types. If you specify certain file extensions when creating a service, only the relevant types are allowed. |
css | *.css |
JSP | The service is used only as a prefix ID and not displayed in the Project Explorer. |
ASP | The service is used only as a prefix ID and not displayed in the Project Explorer. |
SAP | The service is used only as a prefix ID and not displayed in the Project Explorer. |
bs | business service dataset |
metadata | metadata service dataset |
Each service manages only the files whose types are acceptable to the types of the relevant services. Unacceptable files will not displayed in the Project Explorer.
Unacceptable files will not be copied in the process of generation or deployment. For instance, a JSON file will not be copied if it is located in a service whose type is "form."
As for the JSP, ASP and SAP types, even their directories will not be copied.
JSP, ASP and SAP services are used only as prefix IDs, and their files do not appear in Nexacro Studio.
Update Tab
The Update Definition manages the file distribution and version information. You can add and delete updates using Add and Delete buttons.
Column | Description |
---|---|
SystemType | Select system type (Windows, Android, iOS) |
OS | Select OS type |
Device | Select device type |
UpdateUrl | Path in the server for updating components |
EngineUrl | URL for installing the engine |
EngineSetupKey | Key for installing the engine |
EngineVersion | Version of the engine |
Timeout | Allowed waiting time (This item will be activated if you specify SystemType as "Android" or "iOS.") |
Retry | Number of retries (This item will be activated if you specify SystemType as "Android" or "iOS.") |
AutoUpdate | Select "auto" or "manual" (This item will be activated if you specify SystemType as "Android" or "iOS.") |
Description | Additional memos (This item does not affect system operation) |
Resource | |
Type | Resource file type (Object, Theme, File, Engine) |
File | File name (including an extension) |
TargetPath | Path for update (Destination) |
Version | Version of the update file |
If the domain specified as UpdateUrl does not match the path of the relevant XADL file, the update will not be conducted.
If the XADL file is stored in your local computer, an update will be conducted regardless of domain information.
For explanation on options needed to develop mobile device apps, please refer to the Administrator Guide documents.
The below restrictions have been added since the version 14.0.1.3200 as part of countermeasures against security threats.
• An update will be conducted only when an alias path is designated as a target path.
• An update will not be allowed when the start menu folder is designated as a target path.
• You cannot specify a relative path (e.g. "../") as a target path.
Service Refactoring
When changing the Prefix ID of a service being used in a TypeDefinition, the refactoring function is automatically performed.
This figure shows all of the Prefix ID before it is changed in the current project list. When you click the Rename button, the checked items are changed automatically.
Metadata
This is a feature designed to connect matadata to Nexacro Studio. The metadata will be used in the form of a dataset, or used to specify the value of the id or text property.
Metadata Registration
Metadata can be registered through the Services tab in the TypeDefinition editor.
You can register only one metadata service in a project. If you try to register more than one, an error will stop you by showing the below message.
To create a metadata service, you need further settings: specifying "Service List" and "DatasetLayout."
Service List
This item is used to designate a dataset file. The below script contains exemplary source codes of a file that can be specified as ServiceList. To employ a dataset as metadata, you must enter the fixed value "metadata" to the "DOMAIN" and "MODEL" columns.
Column ID | Description (fixed value in red) | |
---|---|---|
1 | DOMAIN | metadata |
2 | MODEL | metadata |
3 | DESCRIPTION | description |
4 | DATASOURCE | used data source |
<?xml version="1.0" encoding="utf-8"?> <Root xmlns='http://www.nexacroplatform.com/platform/Dataset' ver='4000'> <Parameters> <Parameter id="ErrorCode" type="int">0</Parameter> <Parameter id="ErrorMsg" type="string">success</Parameter> </Parameters> <Dataset id="termService"> <ColumnInfo> <Column id="DOMAIN" type="string" size="255"/> <Column id="MODEL" type="string" size="255"/> <Column id="DESCRIPTION" type="string" size="255"/> <Column id="DATASOURCE" type="string" size="255"/> </ColumnInfo> <Rows> <Row> <Col id="DOMAIN">metadata</Col> <Col id="MODEL">metadata</Col> <Col id="DESCRIPTION">description</Col> <Col id="DATASOURCE">DB</Col> </Row> </Rows> </Dataset> </Root>
DatasetLayout
This item is used to designate information to include in the dataset. The below script contains exemplary source codes of a file that can be specified as DatasetLayout. The dataset layout includes the information on an output dataset and metadata dataset. You must enter the fixed value "metadata" to the "name" column of the output dataset. You also must specify the ID of the metadata dataset as "metadata."
Column ID | Description (fixed value in red) | |
---|---|---|
1 | name | metadata |
2 | type | dataset |
3 | description | Description about the data |
<?xml version='1.0' encoding='utf-8'?> <Root xmlns='http://www.nexacroplatform.com/platform/Dataset' ver='4000'> <Parameters> <Parameter id='svcid' type='string'></Parameter> <Parameter id='ErrorCode' type='int'>0</Parameter> </Parameters> <Dataset id='output'> <ColumnInfo> <Column id='name' type='STRING' size='50'/> <Column id='type' type='STRING' size='50'/> <Column id='description' type='STRING' size='256'/> </ColumnInfo> <Rows> <Row> <Col id='name'>metadata</Col> <Col id='type'>dataset</Col> <Col id='description'>Color code</Col> </Row> </Rows> </Dataset> <Dataset id='metadata'> <ColumnInfo> <Column id='CODE' type='STRING' size='50'/> <Column id='NAME' type='STRING' size='50'/> </ColumnInfo> <Rows> <Row> <Col id='CODE'>0048BA</Col> <Col id='NAME'>Absolute Zero</Col> </Row> <Row> <Col id='CODE'>4C2F27</Col> <Col id='NAME'>Acajou</Col> </Row> <Row> <Col id='CODE'>B0BF1A</Col> <Col id='NAME'>Acid green</Col> </Row> <Row> <Col id='CODE'>C9FFE5</Col> <Col id='NAME'>Aero</Col> </Row> </Rows> </Dataset> </Root>
A dataset layout is called with the below format.
"Service URL" + "Service List" + &domain=domain name&model=model name
If you employ an unchageable XML file as metadata, you should specify a dataset layout as the below exemplary format.
ServiceModelData.xml?service=serviceInfo
Option Setting
If you want to use metadata in specifying the value of the id or text property, you must configure a separate option. Access the menu [Tools > Options > Environment > Business Service] and select the checkbox in front of "Use user-defined metadata."
If you check the above option "Load business service layout information on Startup," Nexacro Studio loads the information on metadata whenever it opens a project. If it is unselected, you need to load metadata information manually by right-clicking the metadata in the Project Explorer and selecting the "Refresh" menu.
Metadata Used as a Property Value
If you check the "Use user-defined metadata" option, you can find a button to call metadata information in the id or text property box. Click the button and select an item to apply as the property value.
If there are too many data pieces in the metadata, you can filter them. Through the "Search Column" item in the TypeDefinition editor, you can specify which column to filter.
An applied data piece will serve as an actual property value. The property value will not be influenced by the change in the metadata since the metadata is not bound to the property value.
Metadata Used as a Dataset
To derive a dataset from metadata, select the metadata in the Project Explorer, and then drag and drop it onto the "Invisible Objects" pane.
Global Variables
The GlobalVariables object contains items used in overall projects but not included in ADL or the Form. Using any of the editors, you can add or edit these global variable items. An item can be a dataset, variable, or image.
Menu Function | Description |
---|---|
Edit Source | Edits Global Variables directly in the XML edit window |
Insert Global Variables Item | • Dataset - Adds a new dataset and opens the Dataset Editor • Variable - Adds a new variable and opens the Variable Editor • Image - Adds an image |
Copy | Function not supported by GlobalVariables menu |
Cut | Function not supported by GlobalVariables menu |
Paste | Function not supported by GlobalVariables menu |
Collapse All | Hides GlobalVariable detail |
Expand All | Displays GlobalVariable detail |
Copy Full Path | Copies the GlobalVariables file path to the clipboard |
Open Containing Folder | Opens and displays the folder containing the selected GlobalVariables file in Windows Explorer |
Close | Function not supported by GlobalVariables menu |
Save | Saves the Global Variables |
Save As… | Function not supported by GlobalVariables menu |
Rename | Function not supported by GlobalVariables menu |
Generate | Generates the selected component, one of: • Application • Themes • File |
Refresh | Reload GlobalVariables XML |
Datasets
A dataset is a memory location in a table form used to process data. When a dataset is bound with components for presentation, automatic synchronization to relevant the component function is provided also.
Menu Function | Icon | Description |
---|---|---|
Edit | Opens the Dataset Editor | |
Insert Dataset | Adds a new dataset to the project | |
Copy | Function not supported by the Datasets menu | |
Cut | Function not supported by the Datasets menu | |
Paste | Function not supported by the Datasets menu | |
Collapse All | Hides datasets detail | |
Expand All | Displays datasets detail | |
Copy Full Path | Copies the path to the GlobalVariables file to the clipboard | |
Open Containing Folder | Opens and displays the folder containing the selected GlobalVariables file in Windows Explorer | |
Close | Function not supported by the Datasets menu | |
Save | Saves the dataset being edited | |
Save As… | Function not supported by the Datasets menu | |
Rename | Function not supported by the Datasets menu | |
Generate | Generates the selected component, one of: • Application • Themes | |
Refresh | Function not supported by the Datasets menu |
You can add, delete or change the construction of dataset items in the Dataset Edit Window.
Properties | Description | |
---|---|---|
1 | Import Datasets | Loads a Dataset from a saved file |
2 | Export Datasets | Saves the current dataset as a file |
3 | Add a New Dataset | Adds a Dataset |
4 | Delete selected Datasets | Deletes the selected Dataset |
5 | Const | Sets up columns of constant data |
6 | Add a new Const Column | Adds a new constant column |
7 | Insert a new Const Column | Inserts a new constant column above the cursor location |
8 | Delete selected Const Columns | Deletes the selected Constant column |
9 | Columns | Defines Dataset columns |
10 | Add a new Column | Adds a new Dataset Column |
11 | Insert a new Column | Inserts a new Dataset column above the cursor location |
12 | Delete selected Columns | Deletes the selected Dataset Column |
13 | Rows | Defines Dataset rows |
14 | Add a new Row | Adds a Dataset row |
15 | Insert a new Row | Inserts a new Dataset row above the cursor location |
16 | Delete selected Rows | Delete the selected Dataset rows |
Variables
Variables are used widely in a project. Manage the variables from the Variables context menu.
Menu Function | Description |
---|---|
Edit | Opens the Variable Editor |
Insert Variable | Adds a new variable and opens the Variable Editor |
Copy | Function not supported by the Variables menu |
Cut | Function not supported by the Variables menu |
Paste | Function not supported by the Variables menu |
Collapse All | Hides Variables detail |
Expand All | Displays Variables detail |
Copy Full Path | Copies the path to the GlobalVariables file to the clipboard |
Open Containing Folder | Opens and displays the folder containing the selected GlobalVariables file in Windows Explorer |
Close | Function not supported by the Variables menu |
Save | Saves Variables |
Save As… | Function not supported by the Variables menu |
Rename | Function not supported by the Variables menu |
Generate | Generates the selected component, one of: • Application • Themes |
Refresh | Function not supported by the Variables menu |
You can add, delete, or change the construction of the variable items in the Variable Edit Window.
Properties | Description | |
---|---|---|
1 | ID | Variable Name |
2 | Initval | Initial value |
3 | Usecookie | Whether to use a cookie |
4 | Add Variable | Adds a variable |
5 | Delete Variable | Deletes the selected variable |
Images
You can add or delete images used in the Project.
Add a new image by selecting Insert Image from the context menu.
Manage individual images by expanding the Images group.
Menu Function | Description |
---|---|
Edit | Function not supported by the Image menu |
Insert Image | Opens a file dialog where you can select an image file |
Copy | Function not supported by the Image menu |
Cut | Function not supported by the Image menu |
Paste | Function not supported by the Image menu |
Collapse All | Hides Images detail |
Expand All | Displays Images detail |
Copy Full Path | Copies the path to the GlobalVariables file to the clipboard |
Open Containing Folder | Opens and displays the folder containing the selected GlobalVariables file in Windows Explorer |
Close | Function not supported by the Image menu |
Save | Saves the Image definition |
Save As… | Function not supported by the Image menu |
Rename | Function not supported by the Image menu |
Generate | Generates the selected component, one of: • Application • Themes |
Refresh | Function not supported by the Image menu |
Delete | When an individual image file is selected, deletes the selected image from the Image group When the images group is selected, this function is not available |
When an image item is selected in the Project Explorer, Image Preview is summoned automatically.
If you try to bring an image file that is stored not in the same drive as the project, errors can occur with respect to the path.
For instance, if you try to bring an image stored in the C drive to the project in the D drive, the relative path cannot be specified properly.
An image file is not copied in the process of generation unless the file is saved in the Services group in TypeDefinition.
Therefore, users should copy the image file into the same path in the server, plus access should be allowed to the file.
Form Creation Wizard
A new form can be created using the New Form Wizard, which is launched using Menu File [New – Form]
Step 1 Location
Enter the path and name of the form to be created. Entering the form name is mandatory, and must be unique among forms in the path.
Properties | Description |
---|---|
Name | Name of the form |
Location | Location of the form |
Step 2 Dimension
Set up the width and height of form in pixels. Menu Tool [Options] displays the default values.
Step 3 Position
Set up the units for measuring the position when generating a component in a form. The default is the value specified in options.
After setting up the units, click the checkbox beside 'Save position in options' on the bottom left corner to save the designated units in options.
Step 4 Layout
Set up the form layouts, indicating which screens are supported by which layout.
Automatically compose a layout according to the screen designated when a project is generated. If a form is generated by clicking 'Finish' in the previous step, a default layout is composed without any additional information.
Description | |
---|---|
1 | Edits layout information |
2 | Fetches layout information form Screen Template |
3 | Adds layout information used in a form |
4 | Deletes the selected layout information |
Layout Properties | Description |
---|---|
name | Layout name (unique identifier) |
screenid | Name of the screen that a layout is applied to - Multiple screens can be selected from the list of ADL screens. |
width | Layout width |
height | Layout height |
description | Layout description |
Click 'Template' button to open the Screen Template window.
Description | |
---|---|
1 | Select screens to use among User/Basic templates designated in Screen Template. Multiple screens can be selected. |
2 | Open the window for adding, modifying, and deleting user templates. Modifications are immediately applied to relevant user templates |
You can compose a layout with items selected in Screen Template. In the process, the name and width of the layout are automatically determined according to the name and screenwidth properties of the relevant screen.
FDL (Form Definition Language)
FDL Drag and Drop
Forms may be moved in service group units in a project, in a group, and between groups by using drag-and-drop or <Ctrl> + drag-and-drop.
FDL Items
Form items contain subordinate items including: Layout, Objects, Script, and Bind elements.
Icon | Name | Explanation |
---|---|---|
Layout | Display components created in a form as lower item | |
Objects | Display invisible components without design | |
Script | Display form function lists | |
Bind | Display information bound on form |
The context menu displayed for a form in Nexacro Studio varies based upon whether the form is open for editing. When form is open for editing, menu items such as BindItem and Layout List are enabled. When not being edited, other menus such as Edit, Insert Style, and Rename are enabbled.
Menu Function | Description |
---|---|
Edit | Opens the Design Window for WYSIWYG (What You See Is What You Get) form editing |
Insert Style | Adds a CSS file, applied only to forms that are not loaded |
BindItem | Opens the Bind Items editing window |
Copy | Copies the selected form |
Cut | Cuts the selected form |
Paste | Pastes a copied or cut form |
Collapse All | Hides form detail |
Expand All | Displays form detail |
Layout List | Open the Layout List editing window |
Copy Full Path | Copies the path to the selected form file to the clipboard |
Open Containing Folder | Opens and displays the folder containing the selected form file in Windows Explorer |
Close | Closes the form (only enabled when a form is open for editing) |
Save | Saves the form being edited |
Save As… | Saves the form being edited under another name |
Rename | Changes the name of the selected form |
Generate | Generates the selected component, one of: • Application • Themes • File |
Refresh | Reloads the selected form |
Delete | Deletes the selected form |
QuickView | Launches the selected form in the QuickView viewer |
Using a Template
Make a Project Template
The Project Template function saves the current project as a template. In Project Explorer, right-click on Project and select Project Template to display the Make Project Template window.
Properties | Description | |
---|---|---|
1 | Project Template Name | Name of the template to create |
2 | Select ADL to include | Select the ADL to be included in the template |
3 | Select a Service Group and Files to include | Select files to include in the template |
Saved templates can be selected and used to create new projects in the New Project Wizard.
Screen Template
You can use ready-made templates. You can register pieces of screen infomation you frequently use as user templates in Screen Template.
The Layout Template function has been removed since Version 14.0.0.40 due to changes in function.
Description | |
---|---|
1 | Button to add user-defined screen information |
2 | Button to delete user-defined screen information |
3 | Panel to edit user-defined screen information |
The information in Basic Template is default values, so users cannot edit them. The information is managed in the "nexacro_os_device.xml" file located within the directory of setup files.
Creating Other Files
Style files (CSS), XML files, script files, and theme files may be created using menu option File > New > File.
Create an XML File
Properties | Description |
---|---|
File name | Name of XML file to create |
Location | Location of XML file to create |
Create a JavaScript File
Properties | Description |
---|---|
File name | Name of the Javascript file to create |
Location | Location of JavaScript file to create |
Auto Recover
When you set up the Auto Recover function from the Tools > Options menu, Nexacro Studio will periodically save backups of files being edited.
With Auto Recover configured, when you open a project that was closed abnormally, Nexacro Studio will check the temporary file and prompt you to recover the file from the most recent backup.
Auto Recover displays the target recovery list and recovers the work in process using the saved backup file.
New Protocol Wizard
You can add a new protocol in TypeDefinition through New Protocol Wizard. There are two ways to start the wizard.
In the Project Explorer, right-click TypeDefinition and access [Insert Typedefinition Item > Protocol]
In the Project Explorer, right-click Protocols under TypeDefinition and select Insert Protocol.
You can choose either way to launch New Protocol Wizard.
Step 1. Protocol
In this step, you can register/delete protocols as well as select the device types to which each protocol is applied. Moreover, you can register information of modules and classes for each device type.
Item | Description | |
---|---|---|
1 | Add | Adds a protocol |
2 | Delete | Delete a selected protocol |
3 | Protocol ID | Protocol ID, which is also used as a service URL ([Protocol ID]://) |
4 | Device Type | In this section, you can determine device types to which each protocol is applied. You can apply one protocol to multiple device types. You can designate different class names for each device type that includes HTML5, Android, and iOS. |
5 | Runtime: ModuleName | This is the name of a binary module. You can register a DLL file with a module name (module name.dll) after finding it in the target path. A module name will be added to start.json. |
6 | Runtime; TargetPath | This is the path from which a binary module is obtained. A target path will be added to start.json. |
7 | HTML5: Classname | This is the class name of a protocol used in the HTML5 environment. The class name will be registered to the registerclass array of adl.js, and the protocol will be loaded with other components. |
8 | Android: Classname | This is the class name of a protocol used in the Android environment. The protocol ID and class name will be registered to the start_android.json file. |
9 | iOS: Classname | This is the class name of a protocol used in the iOS environment. The protocol ID and class name will be registered to the start_ios.json file. |
The following examples show how each device type constructs protocol information.
$r_title(start.json) "version" : "15.0.0.1", "runtime" : { "target" : { "os" : "windows" }, "framework" : [ [framework js path] ], "component" : [ [component js path] ], "form" : [ ], "xadl" : { }, "protocol" : { "adaptors" : [ { "protocolname" : "[Protocol ID]", "modulename" : "[modulename].dll", "targetpath" : "[Target Path]" }, { } ] } "resource" : { },
$r_title(adl.xadl.js)
// load components
var registerclass = [
{"id":"Div", "classname":"nexacro.Div", "type":"JavaScript"},
{"id":"Button", "classname":"nexacro.Button", "type":"JavaScript"},
{"id":"PopupDiv", "classname":"nexacro.PopupDiv", "type":"JavaScript"},
{"id":"Combo", "classname":"nexacro.Combo", "type":"JavaScript"},
{"id":"CheckBox", "classname":"nexacro.CheckBox", "type":"JavaScript"},
{"id":"ListBox", "classname":"nexacro.ListBox", "type":"JavaScript"},
{"id":"Edit", "classname":"nexacro.Edit", "type":"JavaScript"},
{"id":"MaskEdit", "classname":"nexacro.MaskEdit", "type":"JavaScript"},
{"id":"TextArea", "classname":"nexacro.TextArea", "type":"JavaScript"},
{"id":"Menu", "classname":"nexacro.Menu", "type":"JavaScript"},
{"id":"Tab", "classname":"nexacro.Tab", "type":"JavaScript"},
{"id":"ImageViewer", "classname":"nexacro.ImageViewer", "type":"JavaScript"},
{"id":"Radio", "classname":"nexacro.Radio", "type":"JavaScript"},
{"id":"Calendar", "classname":"nexacro.Calendar", "type":"JavaScript"},
{"id":"Static", "classname":"nexacro.Static", "type":"JavaScript"},
{"id":"Grid", "classname":"nexacro.Grid", "type":"JavaScript"},
{"id":"Spin", "classname":"nexacro.Spin", "type":"JavaScript"},
{"id":"PopupMenu", "classname":"nexacro.PopupMenu", "type":"JavaScript"},
{"id":"GroupBox", "classname":"nexacro.GroupBox", "type":"JavaScript"},
{"id":"ProgressBar", "classname":"nexacro.ProgressBar", "type":"JavaScript"},
{"id":"Plugin", "classname":"nexacro.Plugin", "type":"JavaScript"},
{"id":"Dataset", "classname":"nexacro.NormalDataset", "type":"JavaScript"},
{"id":"Protocol00", "classname":"test_HTML5", "type":"Protocol"},
{"id":"Protocol01", "classname":"Protocol01", "type":"Protocol"}
];
$r_title(start_android.json) "version" : "15.0.0.1", "runtime" : { "target" : { "os" : "android" }, "framework" : [ [framework js path] ], "component" : [ [component js path] ], "form" : [ ], "xadl" : { }, "protocol" : { "adaptors" : [ { "protocolname" : "[Protocol ID]", "classname" : "[Android_ClassName]", }, { } ] } "resource" : { },
$r_title(start_ios.json) "version" : "15.0.0.1", "runtime" : { "target" : { "os" : "ios" }, "framework" : [ [framework js path] ], "component" : [ [component js path] ], "form" : [ ], "xadl" : { }, "protocol" : { "adaptors" : [ { "protocolname" : "[Protocol ID]", "classname" : "[iOS_ClassName]", }, { } ] } "resource" : { },
Step 2. Service
In this step, a service will be created automatically for the registered protocol.
Item | Description | |
---|---|---|
1 | PrefixID | Service prefix ID |
2 | Type | This indicates the type of a service. You can select either JSP or ASP. |
3 | Url | This is a service URL. The protocol ID defined in the Step 1 will be used such as ‘[Protocol ID]://’, and this format is uneditable. |
Step 3. Resource
This step automatically adds a resource to start.json, which was generated as a result of applying the protocol to the Runtime device type.
Item | Description | |
---|---|---|
1 | File | The protocol automatically designates the DLL file in the Step 1 as a resource—the DLL file refers to the one whose name was used as the module name. The resource file is a crucial element, so you cannot finish the protocol creation process unless the file is designated. |
2 | TargetPath | The target path mentioned in the Step 1 will be automatically designated. |
You can change the values set automatically in the Resource step. However, you are advised not to do so because those values are used for start.json.
Step 4. Finish
After clicking the Finish button shown in the Step 3, you will see a new protocol, service, and resource (update) added to TypeDefinition.
The below picture show you how the protocol information entered in the Step 1 has been applied to Protocols in TypeDefinition.
The below picture show you how the service information entered in the Step 2 has been applied to Services in TypeDefinition.
The below picture show you how the resource (update) information entered in the Step 3 has been applied to Update in TypeDefinition.
The below code is a sample of TypeDefinition updated after completing New Protocol Wizard. The portions in red color represent the protocol, service and resource added through the wizard.
$r_title(default_typedef.xml) <?xml version="1.0" encoding="utf-8"?> <TypeDefinition version="1.2"> <Modules> <Module url="CompBase.json"/> <Module url="ComComp.json"/> <Module url="Grid.json"/> <Module url="DeviceAPI.json"/> </Modules> <Components> <Component type="JavaScript" id="Div" classname="nexacro.Div"/> <Component type="JavaScript" id="Button" classname="nexacro.Button"/> <Component type="JavaScript" id="PopupDiv" classname="nexacro.PopupDiv"/> <Component type="JavaScript" id="Combo" classname="nexacro.Combo"/> <Component type="JavaScript" id="CheckBox" classname="nexacro.CheckBox"/> <Component type="JavaScript" id="ListBox" classname="nexacro.ListBox"/> <Component type="JavaScript" id="Edit" classname="nexacro.Edit"/> <Component type="JavaScript" id="MaskEdit" classname="nexacro.MaskEdit"/> <Component type="JavaScript" id="TextArea" classname="nexacro.TextArea"/> <Component type="JavaScript" id="Menu" classname="nexacro.Menu"/> <Component type="JavaScript" id="Tab" classname="nexacro.Tab"/> <Component type="JavaScript" id="ImageViewer" classname="nexacro.ImageViewer"/> <Component type="JavaScript" id="Radio" classname="nexacro.Radio"/> <Component type="JavaScript" id="Calendar" classname="nexacro.Calendar"/> <Component type="JavaScript" id="Static" classname="nexacro.Static"/> <Component type="JavaScript" id="Grid" classname="nexacro.Grid"/> <Component type="JavaScript" id="Spin" classname="nexacro.Spin"/> <Component type="JavaScript" id="PopupMenu" classname="nexacro.PopupMenu"/> <Component type="JavaScript" id="GroupBox" classname="nexacro.GroupBox"/> <Component type="JavaScript" id="ProgressBar" classname="nexacro.ProgressBar"/> <Component type="JavaScript" id="Plugin" classname="nexacro.Plugin"/> <Component type="JavaScript" id="Dataset" classname="nexacro.NormalDataset"/> </Components> <Services> <Service prefixid="Base" type="form" url="./Base/" version="0" communicationversion="0"/> <Service prefixid="Service00" type="JSP" url="Protocol00://" version="0" communicationversion="0"/> <Service prefixid="Service01" type="JSP" url="Protocol01://" version="0" communicationversion="0"/> <Service prefixid="Service02" type="JSP" url="Protocol02://" version="0" communicationversion="0"/> </Services> <Update> <Item systemtype="Windows" url=""> <Os type="default" url="" engineurl="" enginesetupkey="" engineversion=""> <Device type="default" url="" engineurl="" enginesetupkey="" engineversion="" desc=""> <Resource type="Object" file="aa" failpass="false"/> <Resource type="File" file="test.dll" targetpath="" version="" failpass="false" desc=""/> <Resource type="File" file="protocolAdp.dll" targetpath="C:\Base" version="" failpass="false" desc=""/> </Device> </Os> </Item> <Item systemtype="Android" url=""> <Os type="default" url="" engineurl="" enginesetupkey="" engineversion=""> <Device type="default" url="" engineurl="" enginesetupkey="" engineversion="" desc=""> <Resource type="File" file="default.zip" targetpath="C:\Users\user\Documents\nexacro\outputs" failpass="false"/> </Device> </Os> </Item> <Item systemtype="iOS" url=""> <Os type="default" url="" engineurl="" enginesetupkey="" engineversion=""> <Device type="default" url="" engineurl="" enginesetupkey="" engineversion="" desc=""> <Resource type="File" file="Archive00.xzip" failpass="false"/> </Device> </Os> </Item> </Update> <Protocols> <Protocol id="Protocol00" classname="test_HTML5" targetpath="C:\apache-tomcat-6.0.36\webapps" devicetype="Runtime,HTML5,Android,iOS" modulename="test_runtime" android_classname="test_android" ios_classname="test_ios"/> <Protocol id="Protocol01" classname="Protocol01" devicetype="HTML5,iOS" file=""/> <Protocol id="Protocol02" devicetype="Runtime,HTML5,Android,iOS" modulename="protocolAdp" targetpath="C:\Base" classname="nexacro.Protocol02" android_classname="test_android" ios_classname="test_ios"/> </Protocols> </TypeDefinition>