Difference between revisions of "Custom Delegates"

From Lianjapedia
Jump to: navigation, search
Line 306: Line 306:
 
The delegate for the column Sort event fired when the header is clicked.  This is called with two arguments: nColumn, nDirection.
 
The delegate for the column Sort event fired when the header is clicked.  This is called with two arguments: nColumn, nDirection.
  
Grid Section and Grid Gadget delegate.
+
===Supported by===
 +
[[Grid Section Attributes|Grid Section]] and [[Grid Gadget|Grid Gadget Attributes]].
  
 
==Swipe down gesture==
 
==Swipe down gesture==

Revision as of 11:55, 14 March 2016

Under Construction

Contents

Scripting Language

The scripting language for custom code.

Supported by

App, Page, all Sections (except Page Center).

Notes

Available choices are:

Scripting Language Notes
Inherit This is the default. The scripting language is inherited from the parent container, i.e. Section inherits from Page, Page from App. For the App, the scripting language must be specified.
Recital Desktop Apps only.
Visual FoxPro Desktop Apps only.
Python Desktop Apps only.
JavaScript Desktop and Web/Mobile Apps.
PHP Desktop Apps only.

Custom Library

The name of the custom library containing the delegate code. This library is loaded when the App is opened.

Supported by

App, Page, all Sections (except Page Center).

Notes

A filename can be entered.

Clicking the [...] button will automatically create a file. The file is created with a name based on the name of the current container and with a file extension to match the selected scripting language, e.g. lib_page1_section1.js for section1 in page1 with JavaScript selected. The file is automatically opened in the Script Editor in the Apps workspace.

There is no need to specify a Custom Library. When the [...] is clicked next to a Custom Delegate, e.g. Activate, the hierarchy is checked for an existing Custom Library: Section, Page, App and a file automatically created for the current container if none exists. As before, the file is automatically opened in the Script Editor in the Apps workspace.

Custom Delegates

Activate

The delegate for the Activate event.

Supported by

App, Page, all Sections (except Page Center), Checklistview Gadget, Grid Gadget, Listview Gadget, Treeview Gadget, Form Section Fields, Canvas Section Advanced Controls.

Notes

  • Activate is the fourth of the four key events to be called when an App is opened:
  1. Init
  2. Load
  3. Ready
  4. Activate

See Opening an App for more details.

  • Activate is also called when moving between Pages.

See Navigating between Pages for more details.

After Data Changed

The delegate for the Changed event (after data is read).

After Data Create

The delegate for the AfterCreated event.

After Data Delete

The delegate for the AfterDelete event.

After Data Update

The delegate for the AfterUpdate event.

After Row Change

The delegate for the AfterRowChange event.

Advanced Canvas Controls delegate.

Before Data Create

The delegate for the BeforeCreated event.

Before Data Delete

The delegate for the BeforeDelete event.

Before Data Update

The delegate for the BeforeUpdate event.

Change

The delegate for the Change event.

Click

The delegate for the Click event.

Collapsed

The delegate for the Collapsed event.

Supported by

All Sections (except Page Center).

Notes

  • The Collapsed delegate is called when a collapsible Section is collapsed by clicking/tapping on its header.
  • The Collapsed delegate is not called in Development View in the Lianja App Builder.
  • When a Section is collapsed programmatically, the Collapsed delegate is not called. Sections can be collapsed using any of the following:
Lianja.get("pageid.sectionid").collapse()
Lianja.showDocument("page:pageid.sectionid?action=collapse")
Lianja.showDocument("section:sectionid?action=collapse")
  • The Collapsable attribute determines whether a Section can be collapsed or whether it is always expanded. This is overridden in these cases:
    • The last Section on a Page with the 'Stretch last section' attribute set to True cannot be collapsed (desktop).
    • The last Section on a Page cannot be collapsed (Web/Mobile).
    • Sections with the 'Hide header' attribute set to True cannot be collapsed.

Context Menu

The delegate for the Context Menu event.

Custom footer menu

The delegate for the footer menu event.

See Section Footers

Custom search command

The delegate for the search event.

Custom section menu

The delegate for the section menu event.

See Section Menus

Data Changed

The delegate for the DataChanged event. This is called when navigating between records.

Deactivate

The delegate for the Deactivate event.

Default Action

The default action for this control. For CommandButtons this will be performed on a Click event. For all other controls, it will be performed on the Change event.

  • Advanced Canvas Controls delegate.
  • Lianja/VFP scripting in Desktop Client only.

Destroy

The delegate for the Destroy event.

Dialog button delegate

The delegate for the DialogButtonClicked event. If a dialogbutton on a Field has no delegate, the Section delegate will be called. If the section has no delegate, then the Page delegate will be called.

Double click

The delegate for the row DoubleClicked event.

Enabled When

The delegate for the EnabledWhen event.

Expanded

The delegate for the Expanded event.

Supported by

All Sections (except Page Center).

Notes

  • The Expanded delegate is called when a collapsed collapsible Section is expanded by clicking/tapping on its header.
  • The Expanded delegate is not called in Development View in the Lianja App Builder.
  • When a Section is expanded programmatically, the Expanded delegate is not called. Sections can be expanded using any of the following:
Lianja.get("pageid.sectionid").expand()
Lianja.showDocument("page:pageid.sectionid?action=expand")
Lianja.showDocument("section:sectionid?action=expand")
  • The Collapsable attribute determines whether a Section can be collapsed or whether it is always expanded. This is overridden in these cases:
    • The last Section on a Page with the 'Stretch last section' attribute set to True cannot be collapsed (desktop).
    • The last Section on a Page cannot be collapsed (Web/Mobile).
    • Sections with the 'Hide header' attribute set to True cannot be collapsed.

Gestures

The catch all delegate for the Gestures event.

Got Focus

The delegate for the GotFocus event.

Hotkey

The delegate for the Hotkey event, e.g. F1 - F10, Ctrl+F1.

The key is passed as a parameter, e.g. "F1".

Inactive

The delegate for the Inactive event.

App delegate.

Inactive interval

The interval in seconds that the Inactive delegate will be called at runtime.

Init

The delegate for the Init event.

Supported by

App, Page, all Sections (except Page Center), Checklistview Gadget, Grid Gadget, Listview Gadget, Treeview Gadget, Form Section Fields, Canvas Section Advanced Controls.

Notes

  • Init is the first of the four key events to be called when an App is opened:
  1. Init
  2. Load
  3. Ready
  4. Activate

See Opening an App for more details.

Interactive Change

The delegate for the InteractiveChange event. This is called after each key is pressed.

Instant Search

The delegate for the Instant Search event. The text typed in the searchbox is passed as a parameter.

Page delegate.

Link Click

The delegate for the Hyperlink/Button Click event.

This is called with two arguments: functionname(controlsource,text).

Load

The delegate for the Load event.

Supported by

App, Page, all Sections (except Page Center), Checklistview Gadget, Grid Gadget, Listview Gadget, Treeview Gadget, Form Section Fields, Canvas Section Advanced Controls.

Notes

  • Load is the second of the four key events to be called when an App is opened:
  1. Init
  2. Load
  3. Ready
  4. Activate

See Opening an App for more details.

Lost Focus

The delegate for the LostFocus event.

Middle Click

The delegate for the MiddleClick event.

Mouse Down

The delegate for the MouseDown event.

Mouse Enter

The delegate for the MouseEnter event.

Mouse Leave

The delegate for the MouseLeave event.

Mouse Move

The delegate for the MouseMove event.

Mouse Up

The delegate for the MouseUp event.

Pan gesture

The Pan gesture delegate.

Parent data changed

The delegate for the ParentDataChanged event.

Pinch gesture

The Pinch gesture delegate.

Ready

The delegate for the Ready event.

Supported by

App, Page, all Sections (except Page Center), Checklistview Gadget, Grid Gadget, Listview Gadget, Treeview Gadget, Form Section Fields, Canvas Section Advanced Controls.

Notes

  • Ready is the third of the four key events to be called when an App is loaded:
  1. Init
  2. Load
  3. Ready
  4. Activate

See Opening an App for more details.

Refresh

The delegate for the Refresh event.

Resize

The delegate for the Resize event.

Supported by

Advanced Canvas Controls

Resized

The delegate for the Resized event.

Supported by

Canvas Section and Custom Section.

Selection Changed

The delegate for the Selection Changed event (for multi row selection).

Sort

The delegate for the column Sort event fired when the header is clicked. This is called with two arguments: nColumn, nDirection.

Supported by

Grid Section and Grid Gadget Attributes.

Swipe down gesture

The Swipe Down gesture delegate.

Swipe left gesture

The Swipe Left gesture delegate.

Swipe right gesture

The Swipe Right gesture delegate.

Swipe up gesture

The Swipe Up gesture delegate.

Tap gesture

The Tap gesture delegate.

Tap and hold gesture

The Tap and Hold gesture delegate.

Timer

The delegate for the Timer event.

Timer interval

The timer interval in seconds that the Timer event will be called at runtime.

Unload

The delegate for the Unload event.

Valid When

The delegate for the ValidWhen event.

Visible When

The delegate for the VisibleWhen event.


Event Sequences

Loading an App

  • Init
  • Load
  • DataChanged
  • ParentDataChanged
  • Refresh
  • VisibleWhen (Runtime only)
  • EnabledWhen (Runtime only)
  • Ready
  • Resized (Canvas and Custom Sections)
  • Activate

For more details see Event Delegate Sequences: Opening an App

Closing an App

  • Unload
  • Destroy

For more details see Event Delegate Sequences: Closing an App

Navigating

Data Operations

Other Delegates

App

Dynamic tile producer

The dynamic tile producer used to update the dynamic tile in the App Center. This can be a procedure or a URL.

Session data changed

The delegate for the Session Data Changed event

Page

Custom Actions

Add action

Delegate called when the 'Add New Record' button is clicked in the Page actionbar.

Cancel action

Delegate called when the 'Undo Changes' button is clicked in the Page actionbar.

Delete action

Delegate called when the 'Delete Record' button is clicked in the Page actionbar.

Edit action

Delegate called when the 'Edit Record' button is clicked in the Page actionbar.

First action

Delegate called when the 'First Record' button is clicked in the Page actionbar.

Last action

Delegate called when the 'Last Record' button is clicked in the Page actionbar.

Next action

Delegate called when the 'Next Record' button is clicked in the Page actionbar.

Previous action

Delegate called when the 'Previous Record' button is clicked in the Page actionbar.

Refresh action

Delegate called when the 'Refresh Page' button is clicked in the Page actionbar.

Save action

Delegate called when the 'Save Changes' button is clicked in the Page actionbar.

Calendar Section

Click delegate

Delegate to call when a calendar event is clicked.

See Calendar Section Options: Click delegate.

Custom delegate library

Custom library containing the day and event dynamic color delegates.

See Calendar Section Options: Custom delegate library.

Dynamic day backcolor

Delegate to return the background colors and dates. You should return this as a comma separated list. The delegate is called with one parameter: 'dates' or 'colors'. The currently selected cursor contains the selected records.

See Calendar Section Options: Dynamic day backcolor.

Dynamic event backcolor

Delegate to return the background color of the event for the specified event type, which is passed as a parameter.

See Calendar Section Options: Dynamic event backcolor.

Dynamic event forecolor

Delegate to return the foreground color of the event for the specified event type, which is passed as a parameter.

See Calendar Section Options: Dynamic event forecolor.

CatalogView Section

Caption delegate

The inline delegate to invoke when the caption is clicked.

See Caption Attributes

Custom library

Custom library containing the Tile producer delegate.

See Extension Attributes

Read more delegate

The inline delegate to invoke when the 'Read more' link is clicked. Alternatively, the 'Click' delegate can be used.

See Details Attributes

Tile producer

Delegate to call to render a custom tile. This should just output the HTML.

See Extension Attributes

Charts Section and Charts Gadget

Delegate

An optional delegate to be called when segments of the chart are selected. By default the 'tooltip' for the segment selected will be used as a search key in any child sections.

GalleryView Section

Custom library

Custom library containing the Tile producer and Content producer delegates.

See GalleryView Section: Custom library

Content producer

Delegate to call to render the content. This should just output the HTML.

See GalleryView Section: Content producer

Tile producer

Delegate to call to render a custom tile. This should just output the HTML.

See GalleryView Section: Tile producer

Navigation Panel

Add delegate

Specify a delegate to call when the 'Add' icon is clicked.

Note that you can use an 'inline' delegate like this: $("section:yoursectionid?action=add")

Delete delegate

Specify a delegate to call when the 'Delete' icon is clicked.

Note that you can use an 'inline' delegate like this: $("section:yoursectionid?action=delete")

Selection delegate

Specify a delegate to call when a row is clicked.

Note that you can use an 'inline' delegate like this: $("section:yoursectionid?action=search&text={}").

Notice how {} is used to substitute the value of the item selected.

Org Chart Section

Custom delegate library

Custom library containing the dynamic color delegates.

See Org Chart Options: Custom delegate library

Search Panel

Custom search panel

The delegate used to create the custom search panel.

See Custom search panel

WebView Section

Also applies to Report Sections.

Delegate script

Delegate script name to be called when hyperlink is clicked (URL is passed as character string).

Fields and Columns

Validation

The Validation expression for editable Form Section fields, Grid Section columns and Canvas Section controls can be a call to a user defined function.

Inline Delegates

Inline Delegates - a single command - must be used for the Default Action, but they can also be used for other delegates in place of a function or procedure call.

Desktop

! Prefix

Prefix the command with a !:

Lianja/VFP

!? "Hello World"

JavaScript

!print("Hello World")

PHP

!echo "Hello World"

Python

!print "Hello World"

Lianja Methods

Call supported Lianja methods with no prefix:

All

Lianja.writeLog("Hello World")

PHP

Lianja::writeLog("Hello World")

$ Prefix

Prefix Lianja.showdocument() actions with a $:

$("page:page2")

is the equivalent of:

Lianja.showDocument("page:page2")

|| Chaining

As with the full Lianja.showDocument() method or the SHOWDOCUMENT() function, multiple actions can be chained by separating them with ||, e.g.

$("section:section3?action=hide||section:section2?action=hide")

Web App

Inline delegates must be written in JavaScript.

Commands and supported Lianja methods can be written without any prefix:

window.alert("Hello World")
Lianja.writeLog("Hello World")
Lianja.getElementByID("page1.section1").hide()

$ Prefix

Prefix Lianja.showdocument() actions with a $:

$("page:page2")

is the equivalent of:

Lianja.showDocument("page:page2")

|| Chaining

As with the full Lianja.showDocument() method or the SHOWDOCUMENT() function, multiple actions can be chained by separating them with ||, e.g.

$("section:section3?action=show||section:section2?action=show")