2020 August Release

Predefined GUI ControlsPermanent link for this heading

The following chapters describe predefined GUI controls.

COOATTREDIT@1.1:CTRLAclPermanent link for this heading

This control is used to display and edit access control lists.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLAcl

COOATTREDIT@1.1:CTRLAttrpathPermanent link for this heading

This control is used to display an attribute path and its icon.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLAttrpath

COOATTREDIT@1.1:CTRLBasePermanent link for this heading

This control is used for basic data types like integer, float, string and object pointer.

Example

app.ducx User Interface Language

layout {
  row {
    // the branch with branch ID "next" gets executed on change
    // radio buttons are displayed

    CTRLBase("Change=\"vapp('next')\" UseRadio=true") ctrlsampleboolean {
      colspan = 4;
      labelposition = left;
    }
  }
}

COOATTREDIT@1.1:CTRLBaseListPermanent link for this heading

This control is used to display a list of simple values (e.g. Integer, String, Date).

For object or aggregate lists use COOATTREDIT@1.1:CTRLList (see chapter “COOATTREDIT@1.1:CTRLList”).

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLBaseList

COOATTREDIT@1.1:CTRLContPermanent link for this heading

This control is used to upload content.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLCont

COOATTREDIT@1.1:CTRLCurrPermanent link for this heading

This control is used to display and edit currency properties.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLCurr

COOATTREDIT@1.1:CTRLDateTimePermanent link for this heading

This control is used to display datetime properties including a calendar.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLDateTime

Example

app.ducx User Interface Language

layout {
  row {
    // no arguments
    CTRLDateTime ctrlsampledatetime {
      colspan = 4;
      labelposition = left;
    }
  }
}

layout {
  row {
    // only the date with no calendar symbol is displayed
    CTRLDateTime("dateonly=true NoCalendar=true") ctrlsampledatetime {
      colspan = 4;
      labelposition = left;
    }
  }
}

COOATTREDIT@1.1:CTRLDictSelPermanent link for this heading

This control is used to enable the selection of a value out of a list of key/value pairs.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLDictSel

COOATTREDIT@1.1:CTRLDisplayStringPermanent link for this heading

This control is used to truncate a string list, object list or content.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLDisplayString

Example

app.ducx User Interface Language

layout {
  row {
    // no arguments
    CTRLDisplayString ctrlsamplestringlist {
      colspan = 4;
      labelposition = left;
    }
  }
}

COOATTREDIT@1.1:CTRLInstantiatePermanent link for this heading

This control is used to display the creatable objects and templates in the “Object” > “New” dialog.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLInstantiate

COOATTREDIT@1.1:CTRLListPermanent link for this heading

This control is used to display an object or aggregate list.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLList

COOATTREDIT@1.1:CTRLMLNamePermanent link for this heading

This control is used to display and edit a List of Language Strings (COOSYSTEM@1.1:LanguageStringList).

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLMLName

Example

app.ducx User Interface Language

layout {
  row {
    // multi-langual input is enforced, three languages are displayed
    CTRLMLName("multlanginp=true
      multlanginplangs=LANG_ENGLISH,LANG_GERMAN,LANG_ITALIAN") mlname {
      colspan = 4;
      labelposition = left;
    }
  }
}

COOATTREDIT@1.1:CTRLObjNavPermanent link for this heading

This control is used to display and edit an object pointer including a “Hierarchy” button. It cannot be used for compound properties or compound property lists.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLObjNav

COOATTREDIT@1.1:CTRLPasswordPermanent link for this heading

This control is used for entering passwords.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLPassword

Example

app.ducx User Interface Language

layout {
  row {
    // no arguments
    CTRLPassword ctrlsamplestring
      colspan = 4;
      labelposition = left;
    }
  }
}

COOATTREDIT@1.1:CTRLPDFLinkPermanent link for this heading

This control is used to display links within a PDF overview.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLPDFLink

COOATTREDIT@1.1:CTRLPhonePermanent link for this heading

This control is used to display and edit telephone numbers.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLPhone

Example

app.ducx User Interface Language

layout {
  row {
    // no arguments
    CTRLPhone ctrlsamplestring
      colspan = 4;
      labelposition = left;
    }
  }
}

COOATTREDIT@1.1:CTRLPickPermanent link for this heading

This control is used to display a list of enumeration entries or a list of objects.

Example

app.ducx User Interface Language

layout {
  row {
    // the references of the enumeration entries are shown in one column
    CTRLPick("ShowReference=true Columns=1") ctrlsampleenum {
      colspan = 4;
      labelposition = left;
    }
  }
}

dataset {
  field ctrlsampleobjects {
    get = expression {
      // <reference>_hint is used to define the displayed entries
      this.ctrlsampleobjects_hint = [#SymbolAndroid, #SymboliOS, #SymbolLinux,
                                      #SymbolWindows, #SymbolMacOS];
      return null;
    }
  }

}

layout {
  row {
    // only thumbnails should be displayed
    // 110px spacing between the columns

    CTRLPick("ShowThumbnail='COODESK_1_1_symbolimages(3)content(0)
               contcontent(0)' Width=110px"
) ctrlsampleobjects {
      rowspan = 2;
      colspan = 4;
      labelposition = left;
    }
  }
}

COOATTREDIT@1.1:CTRLPictPermanent link for this heading

This control is used to display, upload and edit pictures. The control uses as basis FSCIMAGE@1.1001:CTRLEditImage (only for internal use). Cannot be used in aggregates.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLPict

COOATTREDIT@1.1:CTRLProgressPermanent link for this heading

This control is used to display a progress bar.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLProgress

COOATTREDIT@1.1:CTRLRatingPermanent link for this heading

This control is used to display a star rating.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLRating

COOATTREDIT@1.1:CTRLRawTextPermanent link for this heading

This control is used to transfer the contents of script component objects to the web browser.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLRawText

COOATTREDIT@1.1:CTRLResearchPermanent link for this heading

This control is used to display the input field for a research term.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLResearch

COOATTREDIT@1.1:CTRLStaticPermanent link for this heading

This control is used to display static text, a horizontal rule or a picture. This control ignores the parameter COOATTREDIT@1.1:formdisplaypropertiesonce per design.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLStatic

COOATTREDIT@1.1:CTRLStrListPermanent link for this heading

This control is used to enter a string value that may be chosen from a dropdown box.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLStrList

In the Fabasoft app.ducx Expression defined in Values the following input/output values will be provided:

Values expression

app.ducx Object Model Language

instance Expression GetStreetList {
  exprtext =
expression {
    
string ::value; // the value the user has entered, autocomplete only
    
object ::attribute; // the attribute definition this control is used for
    boolean ::isvalue; // false if the control is used in search mode

    
// set to true means that this expression has provide all possible
    //   entries for ::value, the expression will not be called again
    // set to false means that the values cannot be returned as a complete
    //   list since there are too many entries available. In that case
    //   the expression is subsequently called when the user continuous typing.
    
boolean ::iscomplete = true;

    string @pattern = (::value) ? ::value + "%" : "%";
    
string[] @streets = cooobj.GetStreets();
    
return @streets[this like @pattern];
  }

}

Example:

Define autocomplete in control options of a form

app.ducx User Interface Language

row {
  CTRLStrList street {

    
colspan = 4;
    
controloptions = expression {
      

      
dictionary dict = {
        Autocomplete:
true,
        WildcardSearch:
true,
        Values:
#GetStreetList
      };

      
return dict;
    }

  }

}

COOATTREDIT@1.1:CTRLTextPermanent link for this heading

This control is used to enable a multiline text input.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLText

Example

app.ducx User Interface Language

layout {
  row {
    // 5 rows, 40 characters, evaluate HTML tags and no resize possibility
    CTRLText("Rows=5 Cols=40 HTMLStringDef=true ShowResizebar=false") strlist {
      colspan = 4;
      labelposition = left;
    }
  }
}

Read mode:

FSCTIMELINE@1.1001:CTRLTimelinePermanent link for this heading

This control is used to display a timeline of events.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_FSCTIMELINE_1_1001.htm#CTRLTimeline

The list of events must be built up of entries of type FSCTIMELINE@1.1001:EventData.

EventData

app.ducx Obejct Model Language

public struct EventData {
  
string id; // event id (e.g. object address)
  
string title; // event title
  string icon; // event icon (hyperlink)
  string category; // ID matching with IDs defined in argument categories
  
string start; // datetime string
}

The list of categories must be built up of entries of type FSCTIMELINE@1.1001:EventCategory.

EventCategory

app.ducx Object Model Language

public struct EventCategory {
  
string id; // category id (e.g. category object address)
  
string title; // category title
  string icon; // object address of an appropriate category icon object
}

Supported interval units are defined in FSCTIMELINE@1.1001:IntervalUnit.

IntervalUnit

app.ducx Object Model Language

enum IntervalUnit {
  INTERVALUNIT_MILLISECOND = 0,

  INTERVALUNIT_SECOND = 1,

  INTERVALUNIT_MINUTE = 2,

  INTERVALUNIT_HOUR = 3,

  INTERVALUNIT_DAY = 4,

  INTERVALUNIT_WEEK = 5,

  INTERVALUNIT_MONTH = 6,

  INTERVALUNIT_YEAR = 7,

  INTERVALUNIT_DECADE = 8,

  INTERVALUNIT_CENTURY = 9,

  INTERVALUNIT_MILLENIUM = 10

}

COOATTREDIT@1.1:CTRLTimespanPermanent link for this heading

This control is used to display and edit a time span in days, hours, minutes and seconds.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLTimespan

Example

app.ducx User Interface Language

layout {
  row {
    // omit days and seconds
    CTRLTimespan("omitdays=true omitseconds=true") ctrlsampletimespan {
      colspan = 4;
      labelposition = left;
    }
  }
}

Note: It is not possible to omit all the fields. In that case the argument omitseconds=true is ignored. If the value that should be displayed requires a certain field to be available, the corresponding argument is ignored. This means for example that omitseconds=true is ignored if the value is 1 (meaning 1 second), since it is not possible to display 1 second using the days, hours, or minutes fields. On the other hand, omitdays=true is not ignored if the value is 90000 (25*60*60 or 25 hours) since it is not necessary to show the days field for that.

COOATTREDIT@1.1:CTRLTimestampPermanent link for this heading

This control is used to display and edit a time stamp in hours, minutes and seconds.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLTimestamp

COOATTREDIT@1.1:CTRLTreePermanent link for this heading

This control is used to display the tree.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLTree

COOATTREDIT@1.1:CTRLURLNavPermanent link for this heading

This control is used to display and edit an URL in a text field including a button, which opens the URL in a new web browser window.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLURLNav

COOATTREDIT@1.1:CTRLViewContPermanent link for this heading

This control is used to display a content in place.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLViewCont

COOATTREDIT@1.1:CTRLXMLAttrPermanent link for this heading

This control is used to display attributes from a XML document.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOATTREDIT_1_1.htm#CTRLXMLAttr

COOWF@1.1:CTRLWfParticipantPermanent link for this heading

This control is used to display the workflow participant compound property.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_COOWF_1_1.htm#CTRLWfParticipant

FSCAGGRLIST@1.1:CTRLAggrListPermanent link for this heading

This control is used to display an aggregated list of objects.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_FSCAGGRLIST_1_1001.htm#CTRLAggrList

FSCTEAMROOM@1.1001:CTRLTeamPermanent link for this heading

This control is used to view and manage team members of rooms.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_FSCTEAMROOM_1_1001.htm#CTRLTeam

FSCSIMLIST@1.1001:CTRLSimListPermanent link for this heading

This control is used to display a simple object list, comparable to the Microsoft Outlook mail-add field. The edit mode of the control is only available in the property editor. If the control is used in an explore form (e.g. when browsing the desk), the values of the object list cannot be changed.

For more information see: https://help.appducx.fabasoft.com/doc/Reference-Documentation/CONTROL_FSCSIMLIST_1_1001.htm#CTRLSimList

FSCCODEEDITOR@1.1001:ControlStdCodeEditorPermanent link for this heading

This control is used to display and edit source code, like Fabasoft app.ducx Expressions, Fabasoft app.ducx Queries, JavaScript, HTML or XML.

The following arguments are supported:

  • mode (string)
    Defines the mode, i.e. the language support, for the editor. The following modes are supported:
    • "application/x-fscexpression"
    • "application/x-fscquery"
    • "text/xml"
    • "application/xml"
    • "text/html"
    • "text/css"
    • "text/javascript"
    • "text/ecmascript"
    • "application/javascript"
    • "application/ecmascript"
    • "application/json"
    • "text/typescript"
    • "application/typescript"

The default mode is "application/x-fscexpression"

  • indentUnit (integer)
    Defines the indentation unit for the editor.
    The default value is 2.
  • smartIndent (Boolean)
    Defines whether the editor uses smart indentation i.e. on pressing the <Enter> key.
    The default value is true.
  • tabSize (integer)
    Defines the tab size i.e. the number of characters when pressing the <Tab> key.
    The default value is 2.
  • indentWithTabs (Boolean)
    Defines whether the editor uses tabs for indentation.
    The default value is false.
  • lineWrapping (Boolean)
    Defines whether the editor should wrap lines.
    The default value is false.
  • lineNumbers (Boolean)
    Defines whether the editor should show line numbers.
    The default value is true.
  • firstLineNumber (integer)
    If specified (and together with lineNumbers) this setting defines the number of the first line in the editor.
    If a Fabasoft app.ducx Expression is used with the editor and the code contains a %%LINE directive, this number is used to determine the number of the first line automatically.
    To leverage this automatic determination, the argument firstLineNumber must not be used.
  • showCursorWhenSelecting (Boolean)
    Defines whether the editor shows a cursor when selecting text.
    The default value is false.
  • matchTags (Boolean)
    Defines whether the editor highlights matching tags during editing.
    The default value is true with HTML or XML files.
  • matchBrackets (Boolean)
    Defines whether the editor highlights matching brackets during editing.
    The default value is true.
  • autoCloseTags (Boolean)
    Defines whether the editor automatically closes HTML or XML tags during editing.
    The default value is true with HTML or XML files.
  • autoCloseBrackets (Boolean)
    Defines whether the editor automatically inserts closing brackets during editing.
    The default value is true.
  • scrollbarStyle (string)
    Defines the style for the scroll bars of the editor.
    The default value is "simple".
  • extraKeys (JSON object)
    Defines the keyboard shortcuts of the editor.
    The following default assignments are used:
    • <Strg>+F: Search (Regular Expressions)
    • <Shift><Strg>+F: Search and replace (Regular Expressions)
    • <Shift><Strg>+R: Search and replace all occurrences (Regular Expressions)
    • <Strg>+G: Find next
    • <Shift><Strg>+G: Find previous
    • <Strg>+T: Transpose characters
    • <Strg>+<Space>: Auto Completion
    • <Strg>+Q: Fold or unfold code
    • <Strg>+L: Add comment to selection
    • <Shift>+<Strg>+L: Remove commenting of selection
    • <Strg>+I: Increase indent of selection
    • <Shift>+<Strg>+I: Decrease intent of selection
    • <F11>: Toggle full screen mode

See http://codemirror.net/doc/manual.html for more details on parameters and keyboard assignments.

Example

app.ducx User Interface Language

layout {
  row {
    FSCCODEEDITOR@1.1001:ControlStdCodeEditor(
      "mode: 'text/html', lineNumbers: false") myeditor {
      ...
    }
  }
}

This control supports the controloptions expression in the layout of a form page.