Use a DataTrigger to apply an action to either set a property value of a target node or activate an Activity node. More...
#include <kanzi/ui/node_component/trigger/data_trigger.hpp>
Public Member Functions | |
bool | areActionsForced () const |
Returns whether a DataTrigger applies its Actions regardless of the ConditionExpression in that DataTrigger. | |
void | forceApplyActions () |
Applies the Actions in a DataTrigger, regardless of the ConditionExpression in that DataTrigger. | |
void | revokeForceApplyActions () |
Sets a DataTrigger to apply its Actions only when the ConditionExpression in that DataTrigger evaluates to True. | |
~DataTrigger () override | |
Destructor. | |
Public Member Functions inherited from kanzi::DataTriggerComponent | |
void | addAction (ApplyActionSharedPtr action) |
Adds an ApplyAction to the DataTriggerComponent. | |
ApplyActionIterator | beginActions () const |
Returns an iterator at the beginning of the stored ApplyActions. | |
ApplyActionIterator | endActions () const |
Returns an iterator at the end of the stored ApplyActions. | |
ExpressionBindingSharedPtr | getConditionExpression () const |
Gets the input condition of a DataTriggerComponent. | |
string | getConditionExpressionString () const |
Gets the value of the ConditionExpressionProperty. | |
void | setConditionExpression (ExpressionBindingSharedPtr binding) |
Sets the input condition for a DataTriggerComponent. | |
void | setConditionExpressionString (string_view expression) |
Sets the value of the ConditionExpressionProperty. | |
Public Member Functions inherited from kanzi::NodeComponent | |
void | attach (NodeWeakPtr node) |
Attaches node component to node. | |
void | detach () |
Detaches node component from the node it was attached to. | |
string | getName () const |
Gets the name of node component. | |
NodeSharedPtr | getNode () const |
Returns the node the node component is attached to or null pointer if node component is not attached to a node. | |
State | getState () const |
Gets the state of node component indicating if component is attached to a node, detached from any node or in process of attaching/detaching. | |
bool | isAttached () const |
Indicates whether node component is attached to a node. | |
bool | isAttaching () const |
Indicates whether node component is in the process of attaching to a node. | |
bool | isAttachingOrAttached () const |
Indicates whether node component is in the process of attaching to a node or already attached. | |
bool | isDetached () const |
Indicates whether node component is detached from any node. | |
bool | isDetaching () const |
Indicates whether node component currently detaching from the node. | |
bool | isDetachingOrDetached () const |
Indicates whether node component is in the process of detaching from the node or already detached. | |
void | setName (string_view name) |
Sets the name of node component. | |
~NodeComponent () override | |
Destructor. | |
Public Member Functions inherited from kanzi::Object | |
AppliedStyleEntrySharedPtr | applyObjectStyle (kanzi::StyleSharedPtr style) |
Applies a style to an object. | |
void | applyObjectStyles () |
Apply all styles for an object node. | |
Domain * | getDomain () const |
Returns the domain the object belongs to. | |
const Metaclass * | getDynamicMetaclass () const override |
Returns the metaclass of the dynamic type of the object. | |
MainLoopScheduler * | getMainLoopScheduler () const |
Returns the MainLoopScheduler instance of the associated Domain. | |
detail::MessageDispatcher * | getMessageDispatcher () const |
Returns the message dispatcher of the object. | |
ResourceManager * | getResourceManager () const |
Returns the resource manager of the object. | |
ScriptingContextSharedPtr | getScriptingContext () const |
Gets the scripting context of the object. | |
Object (Domain *domain) | |
void | setScriptingContext (ScriptingContextSharedPtr context) |
Sets the scripting context of the object. | |
void | unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry) |
void | unapplyObjectStyles () |
Unapplies and removes all applied styles. | |
~Object () override | |
Public Member Functions inherited from kanzi::MetaObject | |
bool | isTypeOf (const Metaclass *objectType) const |
Determines if the type of this object is the given type or derived from it. | |
virtual | ~MetaObject () |
Public Member Functions inherited from kanzi::PropertyObject | |
template<typename DataType > | |
void | addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyModifierWithoutNotifyingHandlers (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
Adds a property modifier without notifying handlers. | |
template<typename DataType > | |
void | addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner) |
template<typename DataType > | |
void | addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer) |
PropertyStorageContainer::iterator | beginPropertyStorage () |
Returns the begin iterator to the internal property storage container. | |
PropertyStorageContainer::const_iterator | beginPropertyStorage () const |
Returns the begin iterator to the internal property storage container. | |
void | clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
void | copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType) |
Copies local value of single property from another object. | |
void | copyLocalValues (const PropertyObject &other) |
Copies all local values from another object. | |
PropertyStorageContainer::iterator | endPropertyStorage () |
Returns the end iterator to the internal property storage container. | |
PropertyStorageContainer::const_iterator | endPropertyStorage () const |
Returns the end iterator to the internal property storage container. | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalProperty (const PropertyType< DataType > &propertyType) const |
Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value. | |
template<typename DataType > | |
optional< typename PropertyType< DataType >::Traits::ReturnType > | getOptionalPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value. | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getProperty (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property type. | |
template<typename DataType > | |
PropertyType< DataType >::Traits::ReturnType | getPropertyBase (const PropertyType< DataType > &propertyType) const |
Returns the current value of a property disregarding modifiers. | |
template<typename DataType > | |
size_t | getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) const |
Gets number of current notification handlers for given property type. | |
bool | hasBaseValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value, disregarding modifiers. | |
bool | hasLocalValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a local value set for the property. | |
bool | hasNonClassValue (AbstractPropertyType propertyType) const |
Evaluates whether there is a value of any precedence higher than class default value set for the property. | |
bool | hasValue (AbstractPropertyType propertyType) const |
Evaluates whether there are any inputs into the property value. | |
bool | isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const |
virtual void | onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) |
Virtual function to handle property change notifications. | |
PropertyObject () | |
void | removeKzbProperties () |
Remove all KZB properties. | |
void | removeKzbProperties (flat_set< AbstractPropertyType > *keepProperties) |
Remove all KZB properties that are not included in a given set. | |
template<typename DataType > | |
void | removeLocalPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
void | removeLocalValue (AbstractPropertyType propertyType) |
Removes the local value associated with the property. | |
template<typename DataType > | |
void | removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner) |
template<typename DataType > | |
void | removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer) |
template<typename DataType > | |
void | setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
template<typename DataType > | |
void | setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value) |
Sets the local value of a property type. | |
void | setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag) |
KZ_DEPRECATED void | validatePropertyModifiers (AbstractPropertyType propertyType) |
Validates property modifiers and notifies handlers. | |
void | validatePropertyModifiersAndNotifyHandlers (AbstractPropertyType propertyType) |
Validates property modifiers and notifies handlers. | |
virtual | ~PropertyObject () |
Static Public Member Functions | |
static auto | create (Domain *domain, string_view name) |
Constructor. | |
static kanzi::PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Static Public Member Functions inherited from kanzi::DataTriggerComponent | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Provides the Kanzi Studio editor metadata for the DataTriggerComponent. | |
Static Public Member Functions inherited from kanzi::NodeComponent | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Static Public Member Functions inherited from kanzi::Object | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. | |
Static Public Member Functions inherited from kanzi::MetaObject | |
static const Metaclass * | getStaticMetaclass () |
Returns the metaclass of Object class. | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Default implementation that returns empty editor info. | |
Additional Inherited Members | |
Public Types inherited from kanzi::DataTriggerComponent | |
using | ApplyActionContainer |
using | ApplyActionIterator |
Public Types inherited from kanzi::NodeComponent | |
using | NodeComponentMessageArguments |
Legacy name for NodeComponentTargetMessageArguments. | |
enum | State { StateDetached , StateDetaching , StateAttaching , StateAttached } |
State indicating if component is attached to a node, detached from any node or in process of attaching/detaching. More... | |
Public Types inherited from kanzi::PropertyObject | |
typedef PropertyStorageContainer::const_iterator | PropertyStorageConstIterator |
typedef vector< PropertyStoragePtr > | PropertyStorageContainer |
typedef PropertyStorageContainer::iterator | PropertyStorageIterator |
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStorage > | PropertyStoragePtr |
typedef PropertyStorageContainer::reverse_iterator | PropertyStorageReverseIterator |
Static Public Attributes inherited from kanzi::DataTriggerComponent | |
static PropertyType< string > | ConditionExpressionProperty |
The Binding expression that defines the condition for this DataTrigger. | |
Static Public Attributes inherited from kanzi::NodeComponent | |
static PropertyType< string > | NameProperty |
Name property specifies the name of node component. | |
Protected Types inherited from kanzi::Object | |
typedef vector< AppliedStyleEntrySharedPtr > | AppliedStyleContainer |
Applied style container. | |
Static Protected Member Functions inherited from kanzi::NodeComponent | |
template<typename TMessageType > | |
static void | nodeComponentMessageHandler (const NodeComponent *nodeComponent, const typename TMessageType::FunctionType &function, typename TMessageType::ArgumentsType &messageArguments) |
Handler function for node component messages. | |
Protected Attributes inherited from kanzi::Object | |
AppliedStyleContainer | m_appliedStyles |
Listing of applied styles applied to this object. | |
Use a DataTrigger to apply an action to either set a property value of a target node or activate an Activity node.
A DataTrigger keeps that action applied for as long as the condition in that DataTrigger is met. When the condition in that DataTrigger is no longer met, Kanzi reverts the changes that it applied using that DataTrigger. Note that in a DataTrigger you can use only ApplyAction actions: ApplyActivationAction and ApplyPropertyAction.
You set the condition in a DataTrigger in the form of a binding expression that evaluates to either true or false. In the condition you can use as an input either a property or a data source.
For example, you can use a DataTrigger to control the logic and activation state of Activity nodes in Activity Host nodes using ApplyAction actions.
ApplyAction actions of a DataTrigger have higher priority than the actions of any other Trigger. For example, if you use a DataTrigger with an ApplyPropertyAction that sets the DataDrivenExclusiveActivityHostConcept::ActiveActivityIndexProperty to some value and any other Trigger with a SetPropertyAction that sets that same property to a different value, the effect of the SetPropertyAction becomes visible only after Kanzi unapplies the ApplyPropertyAction.
To use a DataTrigger to control the activation of an Activity node with an ApplyActivationAction:
To use a DataTrigger to set the value of a property with an ApplyPropertyAction when a condition in a DataTrigger is met:
|
override |
Destructor.
|
explicitprotected |
Constructor.
domain | The UI domain the new trigger belongs to. |
name | The name of the trigger. |
Constructor.
domain | The UI domain the new trigger belongs to. |
name | The name of the trigger. |
|
static |
void kanzi::DataTrigger::forceApplyActions | ( | ) |
Applies the Actions in a DataTrigger, regardless of the ConditionExpression in that DataTrigger.
void kanzi::DataTrigger::revokeForceApplyActions | ( | ) |
Sets a DataTrigger to apply its Actions only when the ConditionExpression in that DataTrigger evaluates to True.
bool kanzi::DataTrigger::areActionsForced | ( | ) | const |
Returns whether a DataTrigger applies its Actions regardless of the ConditionExpression in that DataTrigger.
|
protected |
Applies the ApplyAction actions associated with this Data Trigger.
|
protected |
Unapplies the ApplyAction actions associated with this Data Trigger.
This method restores the state of the target to its previous value, that is, to the value before applying the actions.
|
overrideprotectedvirtual |
NodeComponent::attachOverride implementation.
Reimplemented from kanzi::NodeComponent.
|
overrideprotectedvirtual |
NodeComponent::detachOverride implementation.
Reimplemented from kanzi::NodeComponent.