Options
All
  • Public
  • Public/Protected
  • All
Menu

Represents a data-bound, MVVM-style view. ViewBase handles data-binding and view lifecycle concerns. Note: Data-binding is achieved primarily through HTML templating - consumers need not call binding methods directly.

Hierarchy

Index

Constructors

constructor

  • Initializes a new instance of the {@link geocortex.framework.ui.ViewBase} class.

    Parameters

    • app: Application

      The {@link geocortex.framework.application.Application} that this view belongs to.

    • Optional libraryId: string

    Returns ViewBase

Properties

Protected _isDestroyed

_isDestroyed: boolean

app

Private bindingSetupDelegates

bindingSetupDelegates: function[]

bindingTree

bindingTree: BindingNode

The tree of binding nodes represented in the markup.

bound

bound: boolean

Whether or not this view has been bound.

childRegions

childRegions: RegionAdapterBase[]

Regions belonging to (hosted in) this view.

configuration

configuration: any

Configuration materials.

description

description: Observable<string>

The Observable description of the view.

Private disposableBindings

disposableBindings: DisposableBinding[]

hostView

hostView: ViewBase

A reference to the view that hosts the region that contains this view (if any)

iconUri

iconUri: Observable<string>

The Observable icon URI of the view.

id

id: string

initiallyBound

initiallyBound: boolean

Indicates whether this view has been initialized and bound for the first time.

isActive

isActive: boolean

Whether or not this view is active.

isBusy

isBusy: Observable<boolean>

The Observable isBusy flag of the view.

isManaged

isManaged: boolean

Whether or not this view is allowed to be managed by some sort of view management component.

libraryId

libraryId: string

markupResource

markupResource: string

Resource name of the markup for this view (if any).

parentView

parentView: ViewBase

The parent view of this view, if this view is the result of a collection binding.

regionName

regionName: string

The name of the region that this view is hosted in.

root

root: HTMLElement

The root DOM element of this view.

title

title: Observable<string>

The Observable title of the view.

typeName

typeName: string

The type name of this view.

viewModel

viewModel: any

The View Model backing this view. Does not necessarily have to be a formal instance of ViewModelBase.

Methods

activated

  • activated(): void
  • Called when the view has been activated.

    Returns void

addDisposableBinding

  • addDisposableBinding(observable: Observable<any>, token: string): void
  • Adds an Observable binding that will be disposed of when the view is destroyed.

    Parameters

    • observable: Observable<any>

      The Observable to bind to.

    • token: string

      The token received from binding to the observable.

    Returns void

added

  • added(widgetViewHost?: ViewBase): void
  • Called when the view has been added to a region or as another view in the form of a widget.

    Parameters

    Returns void

applyBinding

  • Applies a binding expression to a DOM node based on the type name of the binding.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    • bindingNode: BindingNode

      The binding node to apply.

    Returns boolean

attach

  • attach(viewModel?: any): void
  • Attaches a view model and performs data-binding.

    Parameters

    • Optional viewModel: any

      The view model to attach to.

    Returns void

auto

  • auto(arg0: any, arg1: any, arg2: any): void
  • Binds a handler to an Observable or to a dojo.connect. Binding to an Observable:

    ``` this.auto(someObservable, function (newValue) { });

    with explicit scope:

    this.auto(someObservable, this, function (newValue) { });

    Alternately, pass an event name as a string to use dojo.connect:

    this.auto(window, "onclick", function () { }); ```

    Parameters

    • arg0: any

      Either an Observable (for observable bindings) or a regular object (if arg1 is a string)

    • arg1: any

      If arg0 is an Observable, a function or scope object. Otherwise, an event name (to use with dojo.connect).

    • arg2: any

      If arg0 is an Observable, a function handler.

    Returns void

buildAttributeBinding

  • buildAttributeBinding(el: HTMLElement, binding: BindingExpression, currentContext: any, directAttach?: boolean): boolean
  • Builds a DOM attribute binding, binding a DOM attribute to a view model property or attaching directly to the DOM object.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    • Optional directAttach: boolean

      Whether or not to directly modify the actual DOM element's own properties. Defaults to false.

    Returns boolean

buildClassBinding

  • buildClassBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Build a class binding

    Parameters

    Returns boolean

buildDisabledBinding

  • buildDisabledBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds an enabled/disabled binding, simulating a cascading enabled/disabled state.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns boolean

buildDomBinding

  • buildDomBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds a one-time DOM binding, binding to a DOM element in the view codebehind.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns boolean

buildEventBinding

  • buildEventBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds an event binding, binding a DOM event to an event handler in the view.

    Parameters

    Returns boolean

buildSourceBinding

  • Builds a complex binding between a source and template element. Allows binding to collections of complex objects or singular complex objects.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    • bindingNode: BindingNode

      The current binding node in the binding tree.

    Returns boolean

buildStyleBinding

  • buildStyleBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds an inline CSS style binding.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns boolean

buildTextBinding

  • buildTextBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds a sanitized text binding. Strips out unsafe characters, and allows direct referencing of language keys.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns boolean

buildTree

  • buildTree(): any
  • Builds a tree of all binding expressions in this view and hooks up binding events as it goes. This method will recursively descend the DOM structure of its visual root and resolve binding expressions.

    Returns any

buildValueBinding

  • buildValueBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds a two-way binding between a form control and an Observable.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns boolean

buildVarBinding

  • buildVarBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): void
  • Builds a var binding, creating a variable in the view that references a DOM element.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns void

buildVisibilityBinding

  • buildVisibilityBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds a visibility binding.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns boolean

buildWidgetBinding

  • buildWidgetBinding(el: HTMLElement, binding: BindingExpression, currentContext: any): boolean
  • Builds a (one-time) widget binding.

    Parameters

    • el: HTMLElement

      The element being bound.

    • binding: BindingExpression

      The binding expression.

    • currentContext: any

      The current data context.

    Returns boolean

deactivated

  • deactivated(): void
  • Called when the view has been deactivated.

    Returns void

destroy

  • destroy(): void
  • Disposes any bindings tracked by this object.

    Returns void

destroyBindings

  • destroyBindings(): void
  • Destroys all of this view's bindings, and by extension any views bound under this one. The primary purpose of this is to remove event subscriptions due to binding as well as dereferencing expensive DOM nodes so that they may be discarded.

    Returns void

getBindingTarget

  • Returns the target of a binding expression, taking into consideration Observables and pseudo-targets.

    Parameters

    Returns any

getResource

  • getResource(resourceKey: string, locale?: string): string
  • Gets a language resource from the Application's resource dictionary, given a key, and optional locale. Returns null if the resource does not exist.

    Parameters

    • resourceKey: string
    • Optional locale: string

      The locale of the resource to fetch. Defaults to the current application locale.

    Returns string

isDestroyed

  • isDestroyed(): boolean
  • Returns boolean

onDestroy

  • onDestroy(): void
  • Override or attach to provide custom clean-up behaviour.

    Returns void

pulseAll

  • pulseAll(): void
  • Performs the initial data bind of the UI.

    Returns void

removed

  • removed(): void
  • Called when a view has been removed from a region.

    Returns void

resolveBindingTemplate

  • Given a binding expression and a view model, resolves the correct template to use.

    Parameters

    • binding: BindingExpression

      The binding being satisfied.

    • viewModel: any

      The view model participating in the binding.

    Returns any

resolveWidget

  • Override this method to resolve widgets by ID and context. Return a {@link geocortex.framework.config.WidgetConfig}, or null.

    Parameters

    • widgetId: string

      The ID of the widget to resolve.

    • context: any

      The data context (view model) to bind the widget view to.

    • Optional binding: BindingExpression

      The binding expression that triggered this call to resolveWidget.

    Returns any

setBindingTargetValue

  • Sets the value of the target of a binding expression, taking into consideration Observables and pseudo-targets.

    Parameters

    • binding: BindingExpression

      The binding whose target should be resolved.

    • value: any

      The value to set.

    Returns void

trackCommandHandler

  • trackCommandHandler(command: any, token: any): void
  • Tracks a subscription to an {@link geocortex.framework.commands.Command}, disposing it when this object is disposed with the destroy method.

    Parameters

    • command: any
    • token: any

    Returns void

trackSubscription

  • trackSubscription(event: any, token: any): void
  • Tracks a subscription to an {@link geocortex.framework.events.Event}, disposing it when this object is disposed with the destroy method.

    Parameters

    • event: any
    • token: any

    Returns void