Kanzi Studio API
TriggerActionItem Interface Reference

Configure trigger actions. More...

Public Member Functions

void SetForwardArguments (IEnumerable< Property > argumentPropertyTypes)
 

Properties

int Delay [get, set]
 Gets or sets the delay in milliseconds after which the trigger sets off the action. More...
 
MessageType DispatchMessageActionMessageType [get, set]
 Gets or sets the Message Type. More...
 
ProjectItemReference< ExportedPropertyContainerItem > RoutingTarget [get, set]
 Gets or sets the Target Item to which the action dispatches the message. More...
 
TriggerActionType TriggerActionType [get]
 Gets the Trigger Action Type. More...
 

Detailed Description

Configure trigger actions.

See also
TriggerNodeComponent, TriggerConditionItem, NodeComponentHost

Examples

To create a dispatch message action and set the Message Type (DispatchMessageActionMessageType), Target Item (RoutingTarget), and Action Delay (Delay) properties:

// This example creates two Page nodes, Intro and Main, in the RootPage node, and sets the Default Subpage
// property of the RootPage node to Intro. It then adds a Navigate to Page action to the Page Activated trigger
// in the Intro Page node. The action is set off after a delay of two seconds and navigates to the Main Page node.
public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootPage node.
var rootPage = studio.ActiveProject.GetProjectItem("Screens/Screen/RootPage");
// Create a Page node named Intro in the RootPage node.
var introPage = studio.ActiveProject.CreateProjectItem<Page>(rootPage.GenerateUniqueChildName("Intro"), rootPage);
// Set the Default Subpage property of the RootPage node to the Intro node.
rootPage.Set(Properties.PageHostDefaultSubPage.Name, "Intro");
// Create a Page node named Main in the RootPage node.
studio.ActiveProject.CreateProjectItem<Page>(rootPage.GenerateUniqueChildName("Main"), rootPage);
// Get the first Page Activated trigger in the Intro Page node.
var pageActivatedTrigger =
introPage.Triggers.First(trigger => trigger.Get(
Properties.TriggerMessageType) == studio.ActiveProject.MessageTypeLibrary.GetItemByName("Message.Page.Activated"));
// In the Page Activated trigger create a trigger action, and set:
// * Trigger Action Type to Dispatch Message Action
// * Message Type to Navigate To Page
var navigateToPageAction = pageActivatedTrigger.CreateAction(studio.ActiveProject.TriggerActionTypeLibrary.GetItemByName("Kanzi.DispatchMessageAction"));
navigateToPageAction.DispatchMessageActionMessageType = studio.ActiveProject.MessageTypeLibrary.GetItemByName("Message.Page.Navigate");
// In the Navigate To Page action use a relative path to set Target Item to the Main Page node.
navigateToPageAction.RoutingTarget = new NodeReference<Page>("../Main");
// In the Navigate To Page action set Action Delay to 2000 ms.
navigateToPageAction.Delay = 2000;
}

Property Documentation

int Delay
getset

Gets or sets the delay in milliseconds after which the trigger sets off the action.

MessageType DispatchMessageActionMessageType
getset

Gets or sets the Message Type.

See also
Project.MessageTypeLibrary
ProjectItemReference<ExportedPropertyContainerItem> RoutingTarget
getset

Gets or sets the Target Item to which the action dispatches the message.

TriggerActionType TriggerActionType
get

Gets the Trigger Action Type.

See also
Project.TriggerActionTypeLibrary