src/aria/templates/View.js
function (obj) {

            if (!(ariaUtilsType.isObject(obj) || ariaUtilsType.isArray(obj))) {
                this.$logError(this.INVALID_TYPE_OF_ARGUMENT);
                return;
            }

            /**
             * Contains the initial array or map from which the view is built. This can be changed outside this class at
             * any time. If you add, remove, or replace elements in this array or map, you should call the notifyChange
             * method with CHANGED_INITIAL_ARRAY, so that the view knows it should update its data in the next refresh.
             * If changing the reference with viewobj.initialArray = ..., the call of notifyChange is not necessary (it
             * is automatically detected). If the property of an element inside the array or map is changed you do not
             * need to call notifyChange, unless this property has an incidence on the sort order, in which case you
             * should use CHANGED_SORT_CRITERIA. The initial array or map is never changed by the view itself.
             * @type Array|Object
             */
            this.initialArray = obj;

            /**
             * Sort order, which can be SORT_INITIAL, SORT_ASCENDING, or SORT_DESCENDING. If you modify this property,
             * it is not taken into account until the next refresh.
             * @type String
             */
            this.sortOrder = this.SORT_INITIAL;
            /**
             * An id to use to define the type of sort (e.g. "sortByName"). Allows to detect different consecutive sort
             * types. Ignored (and will be set to null) if this.sortOrder == this.SORT_INITIAL. If you modify this
             * property, it is not taken into account until the next refresh.
             * @type String
             */
            this.sortName = null;
            /**
             * Function which returns the sort key, for each element. The first parameter of the callback is of type
             * aria.templates.ViewCfgBeans.Item. Ignored (and will be set to null) if this.sortOrder ==
             * this.SORT_INITIAL. If you modify this property, it is not taken into account until the next refresh.
             * @type aria.core.CfgBeans:Callback
             */
            this.sortKeyGetter = null;

            /**
             * Array of items (of type aria.templates.ViewCfgBeans.Item) in the correct sort order. This array must not
             * be modified outside this class, except for the filteredIn property of each element, which can be set
             * (through aria.utils.Json.setValue) to filter in or filter out an element directly.
             * @type Array
             */
            this.items = [];

            /**
             * Number of filtered in elements. This property is updated in a refresh if needed.
             * @type Integer
             */
            this.filteredInCount = 0;

            /**
             * Number of elements per page. &gt; 0 if in pageMode, -1 otherwise. If you modify this property, it is not
             * taken into account until the next refresh.
             * @type Integer
             */
            this.pageSize = -1;

            /**
             * True if page-view is activated, false otherwise. This property must not be modified outside this class.
             * It is updated in a refresh.
             * @type Boolean
             */
            this.pageMode = false;

            /**
             * Contains the index of the current page, 0 for the first page. If page mode is disabled, must be 0. If you
             * modify this property, it is not taken into account until the next refresh. You can use
             * setCurrentPageIndex method to both change current page and do the refresh.
             */
            this.currentPageIndex = 0;

            /**
             * Array of pages. This property must not be modified outside this class. It is updated in a refresh if
             * needed.
             */
            this.pages = this.EMPTY_PAGES;

            /**
             * Keep the last values of modifiable properties to detect changes since the last refresh.
             * @protected
             */
            this._currentState = {
                initialArray : null,
                sortOrder : this.sortOrder,
                sortName : this.sortName,
                sortKeyGetter : this.sortKeyGetter,
                pageSize : this.pageSize,
                currentPageIndex : this.currentPageIndex
            };
            /**
             * Bitwise OR of all notified changes since the last refresh.
             * @protected
             */
            this._changes = 0;

            /**
             * Callback structure used when listening to json objects.
             * @type aria.core.CfgBeans:Callback
             * @protected
             */
            this._jsonChangeCallback = {
                fn : this._notifyDataChange,
                scope : this
            };

            this._refreshInitialArray();
        }
function (obj) {

            if (!(ariaUtilsType.isObject(obj) || ariaUtilsType.isArray(obj))) {
                this.$logError(this.INVALID_TYPE_OF_ARGUMENT);
                return;
            }

            /**
             * Contains the initial array or map from which the view is built. This can be changed outside this class at
             * any time. If you add, remove, or replace elements in this array or map, you should call the notifyChange
             * method with CHANGED_INITIAL_ARRAY, so that the view knows it should update its data in the next refresh.
             * If changing the reference with viewobj.initialArray = ..., the call of notifyChange is not necessary (it
             * is automatically detected). If the property of an element inside the array or map is changed you do not
             * need to call notifyChange, unless this property has an incidence on the sort order, in which case you
             * should use CHANGED_SORT_CRITERIA. The initial array or map is never changed by the view itself.
             * @type Array|Object
             */
            this.initialArray = obj;

            /**
             * Sort order, which can be SORT_INITIAL, SORT_ASCENDING, or SORT_DESCENDING. If you modify this property,
             * it is not taken into account until the next refresh.
             * @type String
             */
            this.sortOrder = this.SORT_INITIAL;
            /**
             * An id to use to define the type of sort (e.g. "sortByName"). Allows to detect different consecutive sort
             * types. Ignored (and will be set to null) if this.sortOrder == this.SORT_INITIAL. If you modify this
             * property, it is not taken into account until the next refresh.
             * @type String
             */
            this.sortName = null;
            /**
             * Function which returns the sort key, for each element. The first parameter of the callback is of type
             * aria.templates.ViewCfgBeans.Item. Ignored (and will be set to null) if this.sortOrder ==
             * this.SORT_INITIAL. If you modify this property, it is not taken into account until the next refresh.
             * @type aria.core.CfgBeans:Callback
             */
            this.sortKeyGetter = null;

            /**
             * Array of items (of type aria.templates.ViewCfgBeans.Item) in the correct sort order. This array must not
             * be modified outside this class, except for the filteredIn property of each element, which can be set
             * (through aria.utils.Json.setValue) to filter in or filter out an element directly.
             * @type Array
             */
            this.items = [];

            /**
             * Number of filtered in elements. This property is updated in a refresh if needed.
             * @type Integer
             */
            this.filteredInCount = 0;

            /**
             * Number of elements per page. &gt; 0 if in pageMode, -1 otherwise. If you modify this property, it is not
             * taken into account until the next refresh.
             * @type Integer
             */
            this.pageSize = -1;

            /**
             * True if page-view is activated, false otherwise. This property must not be modified outside this class.
             * It is updated in a refresh.
             * @type Boolean
             */
            this.pageMode = false;

            /**
             * Contains the index of the current page, 0 for the first page. If page mode is disabled, must be 0. If you
             * modify this property, it is not taken into account until the next refresh. You can use
             * setCurrentPageIndex method to both change current page and do the refresh.
             */
            this.currentPageIndex = 0;

            /**
             * Array of pages. This property must not be modified outside this class. It is updated in a refresh if
             * needed.
             */
            this.pages = this.EMPTY_PAGES;

            /**
             * Keep the last values of modifiable properties to detect changes since the last refresh.
             * @protected
             */
            this._currentState = {
                initialArray : null,
                sortOrder : this.sortOrder,
                sortName : this.sortName,
                sortKeyGetter : this.sortKeyGetter,
                pageSize : this.pageSize,
                currentPageIndex : this.currentPageIndex
            };
            /**
             * Bitwise OR of all notified changes since the last refresh.
             * @protected
             */
            this._changes = 0;

            /**
             * Callback structure used when listening to json objects.
             * @type aria.core.CfgBeans:Callback
             * @protected
             */
            this._jsonChangeCallback = {
                fn : this._notifyDataChange,
                scope : this
            };

            this._refreshInitialArray();
        }
function ( obj ) { if ( ! ( ariaUtilsType . isObject ( obj ) || ariaUtilsType . isArray ( obj ) ) ) { this . $logError ( this . INVALID_TYPE_OF_ARGUMENT ) ; return ; } /**
             * Contains the initial array or map from which the view is built. This can be changed outside this class at
             * any time. If you add, remove, or replace elements in this array or map, you should call the notifyChange
             * method with CHANGED_INITIAL_ARRAY, so that the view knows it should update its data in the next refresh.
             * If changing the reference with viewobj.initialArray = ..., the call of notifyChange is not necessary (it
             * is automatically detected). If the property of an element inside the array or map is changed you do not
             * need to call notifyChange, unless this property has an incidence on the sort order, in which case you
             * should use CHANGED_SORT_CRITERIA. The initial array or map is never changed by the view itself.
             * @type Array|Object
             */ this . initialArray = obj ; /**
             * Sort order, which can be SORT_INITIAL, SORT_ASCENDING, or SORT_DESCENDING. If you modify this property,
             * it is not taken into account until the next refresh.
             * @type String
             */ this . sortOrder = this . SORT_INITIAL ; /**
             * An id to use to define the type of sort (e.g. "sortByName"). Allows to detect different consecutive sort
             * types. Ignored (and will be set to null) if this.sortOrder == this.SORT_INITIAL. If you modify this
             * property, it is not taken into account until the next refresh.
             * @type String
             */ this . sortName = null ; /**
             * Function which returns the sort key, for each element. The first parameter of the callback is of type
             * aria.templates.ViewCfgBeans.Item. Ignored (and will be set to null) if this.sortOrder ==
             * this.SORT_INITIAL. If you modify this property, it is not taken into account until the next refresh.
             * @type aria.core.CfgBeans:Callback
             */ this . sortKeyGetter = null ; /**
             * Array of items (of type aria.templates.ViewCfgBeans.Item) in the correct sort order. This array must not
             * be modified outside this class, except for the filteredIn property of each element, which can be set
             * (through aria.utils.Json.setValue) to filter in or filter out an element directly.
             * @type Array
             */ this . items = [ ] ; /**
             * Number of filtered in elements. This property is updated in a refresh if needed.
             * @type Integer
             */ this . filteredInCount = 0 ; /**
             * Number of elements per page. &gt; 0 if in pageMode, -1 otherwise. If you modify this property, it is not
             * taken into account until the next refresh.
             * @type Integer
             */ this . pageSize = - 1 ; /**
             * True if page-view is activated, false otherwise. This property must not be modified outside this class.
             * It is updated in a refresh.
             * @type Boolean
             */ this . pageMode = false ; /**
             * Contains the index of the current page, 0 for the first page. If page mode is disabled, must be 0. If you
             * modify this property, it is not taken into account until the next refresh. You can use
             * setCurrentPageIndex method to both change current page and do the refresh.
             */ this . currentPageIndex = 0 ; /**
             * Array of pages. This property must not be modified outside this class. It is updated in a refresh if
             * needed.
             */ this . pages = this . EMPTY_PAGES ; /**
             * Keep the last values of modifiable properties to detect changes since the last refresh.
             * @protected
             */ this . _currentState = { initialArray : null , sortOrder : this . sortOrder , sortName : this . sortName , sortKeyGetter : this . sortKeyGetter , pageSize : this . pageSize , currentPageIndex : this . currentPageIndex } ; /**
             * Bitwise OR of all notified changes since the last refresh.
             * @protected
             */ this . _changes = 0 ; /**
             * Callback structure used when listening to json objects.
             * @type aria.core.CfgBeans:Callback
             * @protected
             */ this . _jsonChangeCallback = { fn : this . _notifyDataChange , scope : this } ; this . _refreshInitialArray ( ) ; }
Create a new view on the given array.
@param {Array|Object} obj array or map on which to create the view
Create a new view on the given array .