File

projects/wms-framework/src/lib/basecomponentmodel/RuntimeStyleInfo.ts

Description

Class representing a collection of property setters

Extends

DependencyObject

Index

Properties
Methods

Constructor

constructor(type?: RuntimeTypeInfo)

Creates an instance of RuntimeStyleInfo.

Parameters :
Name Type Optional
type RuntimeTypeInfo Yes

Properties

Public BasedOn
Type : RuntimeStyleInfo

BaseOn property

Public IsSealed
Type : boolean

IsSealed property

Public Name
Type : string
Default value : null

The runtime style name

Setters
Type : SimpleList<Setter>
Default value : new SimpleList()

A collection of setters

Public TargetType
Type : RuntimeTypeInfo
Protected bindingExpressions
Default value : new SimpleDictionary< string, BindingExpression >()
Inherited from DependencyObject
Public BindingValidationError
Default value : new SubscriptionEvent< (sender: any, e: BindingValidationErrorEventArgs) => void >()
Inherited from DependencyObject

Event for validation errors

Public change
Type : SubscriptionEvent<void>
Default value : new SubscriptionEvent()
Inherited from DependencyObject

Infrastructure event for notifying event changes

Public Dispatcher
Type : Dispatcher
Default value : Dispatcher.GetDispatcher()
Inherited from DependencyObject
isEnableSetPropertiesRegistry
Type : boolean
Default value : true
Inherited from DependencyObject

Flag which indicates if the dependency property set mechanism is enable

Public IsInitializingBindings
Type : boolean
Default value : false
Inherited from DependencyObject

Property to determine if bindings are being initialized

previousValidationMessage
Type : string
Default value : ''
Inherited from DependencyObject
Protected properties
Type : object
Default value : {}
Inherited from DependencyObject
Private setPropertiesRegistry
Type : Map<string | boolean>
Default value : new Map()
Inherited from DependencyObject

Registry with dependencies properties which has been set

validationerr
Default value : false
Inherited from DependencyObject
validationMessagesStack
Type : Array<>
Default value : []
Inherited from DependencyObject

Keeps a queue of validation messages registered on the current Dependency Object

Methods

Public withName
withName(name: string)
Parameters :
Name Type Optional
name string No
Returns : RuntimeStyleInfo
Private addRelatedSubscriptionIfRequired
addRelatedSubscriptionIfRequired(event: SubscriptionEvent<any>, theHandler: any, bindingExpression: BindingExpression)
Inherited from DependencyObject
Parameters :
Name Type Optional
event SubscriptionEvent<any> No
theHandler any No
bindingExpression BindingExpression No
Returns : void
Private addSubscriptionForTwoWayBindings
addSubscriptionForTwoWayBindings(dependencyProperty: DependencyProperty, binding: Binding, bindingExpression: BindingExpression)
Inherited from DependencyObject
Parameters :
Name Type Optional
dependencyProperty DependencyProperty No
binding Binding No
bindingExpression BindingExpression No
Returns : void
addsValidationMessage
addsValidationMessage(propKey: Binding | string, message: string)
Inherited from DependencyObject

Adds a new validation message associated to a binding or a property name

Parameters :
Name Type Optional
propKey Binding | string No
message string No
Returns : void
Private beginSubscribeToMultiPropertyPathChanges
beginSubscribeToMultiPropertyPathChanges(context: any, binding: Binding, dependencyProperty: DependencyProperty, bindingExpression: BindingExpression)
Inherited from DependencyObject
Parameters :
Name Type Optional
context any No
binding Binding No
dependencyProperty DependencyProperty No
bindingExpression BindingExpression No
Returns : void
Private checkForSubscriptoinToDataErrorInfo
checkForSubscriptoinToDataErrorInfo(currentContext: any, binding: Binding, propertyToSubscribe: string, bindingExpression: BindingExpression)
Inherited from DependencyObject
Parameters :
Name Type Optional
currentContext any No
binding Binding No
propertyToSubscribe string No
bindingExpression BindingExpression No
Returns : void
Public clearValue
clearValue(property: DependencyProperty)
Inherited from DependencyObject

Clears the dependency property value

Parameters :
Name Type Optional
property DependencyProperty No
Returns : void
Equals
Equals(obj: any)
Inherited from DependencyObject

Compares this dependency object agains another object.

Parameters :
Name Type Optional
obj any No
Returns : boolean

{boolean}

GetChild
GetChild(idx: number)
Inherited from DependencyObject

Gets the child element at the index position

Parameters :
Name Type Optional
idx number No
Returns : DependencyObject

{DependencyObject}

GetChildrenCount
GetChildrenCount()
Inherited from DependencyObject

Method o know the amount of children the parent has

Returns : number

{number}

GetHashCode
GetHashCode()
Inherited from DependencyObject

Gets a hash code for this dependency object.

Returns : number

{number}

Public getValue
getValue(property: DependencyProperty)
Inherited from DependencyObject

Gets the value of a dependency property

Parameters :
Name Type Optional
property DependencyProperty No
Returns : any
Private handleErrorsOnContext
handleErrorsOnContext(errorCtxt: INotifyDataErrorInfo, args: DataErrorsChangedEventArgs)
Inherited from DependencyObject

Check and register possible errors in an error context

Parameters :
Name Type Optional
errorCtxt INotifyDataErrorInfo No
args DataErrorsChangedEventArgs No
Returns : void
Public IsPropertySet
IsPropertySet(propertyName: string)
Inherited from DependencyObject

Indicates if the property has been already set.

Parameters :
Name Type Optional
propertyName string No
Returns : any
Private performDataErrorValidationIfRequired
performDataErrorValidationIfRequired(binding: Binding, theBindingContext: any)
Inherited from DependencyObject

Performs validation on model if the model implementes IDataErrorINfo

Parameters :
Name Type Optional
binding Binding No
theBindingContext any No
Returns : void
Private performRemoveValidationIfInValidationError
performRemoveValidationIfInValidationError(binding: Binding)
Inherited from DependencyObject

Performs the remove validation if the InValidationError is true

Parameters :
Name Type Optional
binding Binding No
Returns : void
Public performTargetObjectBindingUpdate
performTargetObjectBindingUpdate(dependencyProperty: DependencyProperty, binding: Binding)
Inherited from DependencyObject

Updates the target object value associated to the binding.

Parameters :
Name Type Optional
dependencyProperty DependencyProperty No
binding Binding No
Returns : void
Private preprocessValue
preprocessValue(property: DependencyProperty, value: any)
Inherited from DependencyObject

Preprocess value to be set to dependency property

Parameters :
Name Type Optional
property DependencyProperty No
value any No
Returns : any
Private recreateSubscriptionsForMultiPropertyBindingPath
recreateSubscriptionsForMultiPropertyBindingPath(currentContext: any, outerContext: any, properties: string[], propertyIndex: number, dependencyProperty: DependencyProperty, bindingExpression: BindingExpression, subscriptionsForCurrentBindingPath: Array<>)
Inherited from DependencyObject
Parameters :
Name Type Optional
currentContext any No
outerContext any No
properties string[] No
propertyIndex number No
dependencyProperty DependencyProperty No
bindingExpression BindingExpression No
subscriptionsForCurrentBindingPath Array<> No
Returns : void
Private registerSetPropertyIfRequired
registerSetPropertyIfRequired(name: string)
Inherited from DependencyObject

Register set property if required

Parameters :
Name Type Optional
name string No
Returns : void
Private removeSubscriptionsForMultiPropertyBindingPath
removeSubscriptionsForMultiPropertyBindingPath(subscriptionsForCurrentBindingPath: [], propertyIndex: number)
Inherited from DependencyObject
Parameters :
Name Type Optional
subscriptionsForCurrentBindingPath [] No
propertyIndex number No
Returns : void
removeValidationMessage
removeValidationMessage(propKey: Binding | string)
Inherited from DependencyObject

Removes a validation message associated to a binding or a property name

Parameters :
Name Type Optional
propKey Binding | string No
Returns : void
SetBinding
SetBinding(dependencyProperty: DependencyProperty, binding: Binding)
Inherited from DependencyObject

Sets a binding to the specified property at runtime

Parameters :
Name Type Optional Description
dependencyProperty DependencyProperty No

property to bind

binding Binding No

binding object

Returns : void
Public setValue
setValue(property: DependencyProperty, value: any)
Inherited from DependencyObject

Sets the value for a dependency property

Parameters :
Name Type Optional
property DependencyProperty No
value any No
Returns : void
Public setValueForScopedRegion
setValueForScopedRegion(property: DependencyProperty, value: any, scopedRegionManager: IRegionManager)
Inherited from DependencyObject

Sets the value for a dependency property. This is a workaround to support Scoped Region Managers. A research is required to find out the way to get the application region Manager when scoped region managers are used (when creating the DelayedRegionBehavior, the correct scoped region manager must be passed as an argument).

Parameters :
Name Type Optional
property DependencyProperty No
value any No
scopedRegionManager IRegionManager No
Returns : void
Protected shouldPreventDefaultSourceUpdate
shouldPreventDefaultSourceUpdate(dependencyProperty: DependencyProperty, binding: BindingExpression)
Inherited from DependencyObject
Parameters :
Name Type Optional
dependencyProperty DependencyProperty No
binding BindingExpression No
Returns : boolean
Private subscribeToBindingPathChanges
subscribeToBindingPathChanges(context: any, binding: Binding, dependencyProperty: DependencyProperty, bindingExpression: BindingExpression)
Inherited from DependencyObject
Parameters :
Name Type Optional
context any No
binding Binding No
dependencyProperty DependencyProperty No
bindingExpression BindingExpression No
Returns : void
Private subscribeToErrorsChangedInModel
subscribeToErrorsChangedInModel(errorCtxt: INotifyDataErrorInfo, propertyToSubscribe: string, bindingExpression: BindingExpression)
Inherited from DependencyObject
Parameters :
Name Type Optional
errorCtxt INotifyDataErrorInfo No
propertyToSubscribe string No
bindingExpression BindingExpression No
Returns : void
Private subscribeToPropertyChanges
subscribeToPropertyChanges(currentContext: any, outerContext: any, properties: string[], propertyIndex: number, dependencyProperty: DependencyProperty, bindingExpression: BindingExpression, subscriptionsForCurrentBindingPath: Array<>)
Inherited from DependencyObject
Parameters :
Name Type Optional
currentContext any No
outerContext any No
properties string[] No
propertyIndex number No
dependencyProperty DependencyProperty No
bindingExpression BindingExpression No
subscriptionsForCurrentBindingPath Array<> No
Returns : void
Private updateSourceOfBinding
updateSourceOfBinding(binding: Binding, outerContext: any, dependencyProperty: DependencyProperty)
Inherited from DependencyObject

Updates the source of a binding

Parameters :
Name Type Optional
binding Binding No
outerContext any No
dependencyProperty DependencyProperty No
Returns : void
import { SimpleList } from '../baseframework/collections';
import { RuntimeTypeInfo } from '../baseframework/ReflectionSupport';
import { BindingInfo } from './Bindings/BindingInfo';
import { createBindingFromBindingInfo } from './Bindings/BindingUtils';
import { DependencyObject } from './DependencyObject';
import { DependencyProperty } from './DependencyProperty';

/**
 *  Class representing a property setter
 *
 * @export
 * @class Setter
 * @wType System.Windows.Setter
 */
export class Setter {
  /**
   *  Property to set
   *
   * @type {unknown}
   * @memberof Setter
   */
  public Property: unknown;

  /**
   *  Value to set
   *
   * @type {unknown}
   * @memberof Setter
   */
  public Value: unknown;

  /**
   * Creates an instance of Setter.
   * @param {unknown} [property]
   * @param {unknown} [value]
   * @memberof Setter
   */
  constructor(property?: unknown, value?: unknown) {
    this.Property = property;
    this.Value = value;
  }

  /**
   *  Applies this setter object to the given object instance
   *
   * @param {*} obj
   * @memberof Setter
   * @wIgnore
   */
  Apply(obj: any): boolean {
    let propertyName = '';
    if (typeof this.Property === 'string') {
      propertyName = this.Property;
    } else if (this.Property instanceof DependencyProperty) {
      propertyName = this.Property.name;
    }

    // Verify if the setter is setting a binding or a static resource
    if (
      typeof (this.Value as any)?.bindingPath !== 'undefined' ||
      typeof (this.Value as any)?.resourceKey !== 'undefined'
    ) {
      const binding = createBindingFromBindingInfo(
        this.Value as BindingInfo,
        obj
      );
      const dependencyProperty = obj?.constructor[`${propertyName}Property`];
      if (dependencyProperty instanceof DependencyProperty) {
        obj.SetBinding(dependencyProperty, binding);
      }
    } else if (
      propertyName in obj &&
      typeof this.Value !== undefined &&
      typeof obj.properties[propertyName] === 'undefined'
    ) {
      // Set literal value
      obj[propertyName] = this.Value;
      return true;
    }
    return false;
  }

  /**
   * Resolves the property name
   *
   * @returns
   * @memberof Setter
   */
  public resolvePropertyName(): string {
    let propertyName = null;
    if (typeof this.Property === 'string') {
      propertyName = this.Property;
    } else if (this.Property instanceof DependencyProperty) {
      propertyName = this.Property.name;
    }
    return propertyName;
  }
}

/**
 *  Class representing a collection of property setters
 *
 * @export
 * @class RuntimeStyleInfo
 * @extends {DependencyObject}
 * @wType System.Windows.Style
 */
export class RuntimeStyleInfo extends DependencyObject {
  public TargetType: RuntimeTypeInfo;

  /**
   * The runtime style name
   *
   * @type {string}
   * @memberof RuntimeStyleInfo
   * @wIgnore
   */
  public Name: string = null;

  /**
   * A collection of setters
   *
   * @type {SimpleList<Setter>}
   * @memberof RuntimeStyleInfo
   */
  Setters: SimpleList<Setter> = new SimpleList();

  /**
   * BaseOn property
   *
   * @type {RuntimeStyleInfo}
   * @memberof RuntimeStyleInfo
   */
  public BasedOn: RuntimeStyleInfo;

  /**
   * IsSealed property
   *
   * @type {boolean}
   * @memberof RuntimeStyleInfo
   */
  public IsSealed: boolean;

  /**
   * Creates an instance of RuntimeStyleInfo.
   * @param {RuntimeTypeInfo} [type]
   * @memberof RuntimeStyleInfo
   */
  constructor(type?: RuntimeTypeInfo) {
    super();
  }

  public withName(name: string): RuntimeStyleInfo {
    this.Name = name;
    return this;
  }
}

result-matching ""

    No results matching ""