Public Member Functions | List of all members
NodeReference< T > Class Template Reference

Create node references. More...

Inheritance diagram for NodeReference< T >:
ProjectItemReference< T >

Public Member Functions

 NodeReference (string relativePath)
 Creates a node reference using a relative path. More...
 
 NodeReference (T targetNode)
 Creates a node reference. More...
 
GetTarget (Node context)
 Gets the node to which a relative node reference points. More...
 
- Public Member Functions inherited from ProjectItemReference< T >
GetTarget (Node context)
 Gets the node to which a relative node reference points. More...
 

Additional Inherited Members

- Properties inherited from ProjectItemReference< T >
bool IsAbsoluteReference [get]
 Gets whether a project item reference is an absolute reference. More...
 

Detailed Description

Create node references.

For example, use a node reference in a message action to set the target item.

Template Parameters
T
Type Constraints
T :class 
T :Node 

Constructor & Destructor Documentation

NodeReference ( string  relativePath)
inline

Creates a node reference using a relative path.

Parameters
relativePathRelative path to the node to which you want the reference to point.

Examples

To create a node reference using a relative path:

public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootPage node.
var rootPage = studio.ActiveProject.GetProjectItem("Screens/Screen/RootPage");
// In the RootPage node create a Page node named Intro.
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");
// In the RootPage node create a Page node named Main.
studio.ActiveProject.CreateProjectItem<Page>(rootPage.GenerateUniqueChildName("Main"), rootPage);
// In the Intro Page node get the first Page Activated trigger.
var pageActivatedTrigger =
introPage.Triggers.First(trigger => trigger.TriggerProperty == Properties.MessagePageActivated);
// Create a node reference using a relative path from the Intro Page node to the Main Page node.
ProjectItemReference<ExportedPropertyContainerItem> routingTarget = new NodeReference<Page>("../Main");
// In the Page Activated trigger create a Navigate To Page action and set:
// * Item to relative path that points from the Intro Page node to the Main Page node
// * Delay to 2000 ms
pageActivatedTrigger.CreateAction(Properties.MessagePageNavigate, routingTarget, 2000);
}
NodeReference ( targetNode)
inline

Creates a node reference.

Parameters
targetNodeThe node to which you want the reference to point.

Examples

To create a node reference:

public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootPage node.
var rootPage = studio.ActiveProject.GetProjectItem("Screens/Screen/RootPage");
// In the RootPage node create a Page node named Intro.
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");
// In the RootPage node create a Page node named Main.
var mainPage = studio.ActiveProject.CreateProjectItem<Page>(rootPage.GenerateUniqueChildName("Main"), rootPage);
// In the Intro Page node get the first Page Activated trigger.
var pageActivatedTrigger =
introPage.Triggers.First(trigger => trigger.TriggerProperty == Properties.MessagePageActivated);
// Create a node reference that points to the Main Page node.
ProjectItemReference<ExportedPropertyContainerItem> routingTarget = new NodeReference<Page>(mainPage);
// In the Page Activated trigger create a Navigate To Page action and set:
// * Item to absolute path that points to the Main Page node
// * Delay to 2000 ms
pageActivatedTrigger.CreateAction(Properties.MessagePageNavigate, routingTarget, 2000);
}

Member Function Documentation

T GetTarget ( Node  context)
inline

Gets the node to which a relative node reference points.

Parameters
contextThe node that you use to resolve the relative path to the target node.
Returns
The node to which a relative node reference points.

Examples

To get the node to which a relative node reference points:

public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootPage node.
var rootPage = studio.ActiveProject.GetProjectItem("Screens/Screen/RootPage");
// In the RootPage node create a Page node named Intro.
var introPage = studio.ActiveProject.CreateProjectItem<Page>(rootPage.GenerateUniqueChildName("Intro"), rootPage);
// In the RootPage node create a Page node named Main.
studio.ActiveProject.CreateProjectItem<Page>(rootPage.GenerateUniqueChildName("Main"), rootPage);
// Create a node reference using a relative path from the Intro Page node to the Main Page node.
ProjectItemReference<ExportedPropertyContainerItem> routingTarget = new NodeReference<Page>("../Main");
// Get the target node of the node reference that you created.
// Use the Intro Page node as the context for resolving the relative path to the Main Page node.
var target = routingTarget.GetTarget(introPage);
// Print the absolute path to the target node to the Kanzi Studio Log window.
studio.Log(target.Path);
}