Ejemplo n.º 1
0
        /// <summary>
        /// Locates and, if necessary, creates a resource list state which applies to all views
        /// with resources of types matching the contents of the resource list.
        /// </summary>
        internal ResourceListState StateFromList(IResourceList resList, ColumnDescriptor[] defaultColumns,
                                                 bool defaultGroupItems)
        {
            string[] keyTypes = resList.GetAllTypes();
            keyTypes = CollapseFileTypes(keyTypes);
            ComparableArrayList keyTypeList = new ComparableArrayList(keyTypes);
            ResourceListState   state       = (ResourceListState)_columnState [keyTypeList];

            if (state == null)
            {
                IResource stateResource = Core.ResourceStore.FindUniqueResource("ColumnScheme",
                                                                                _props.ColumnKeyTypes, String.Join(";", keyTypes));
                if (stateResource != null)
                {
                    state = ResourceListState.FromResource(stateResource);
                    // filter out invalid data
                    if (state.Columns.Length == 0)
                    {
                        state.Columns = defaultColumns;
                    }
                }
                else
                {
                    state          = new ResourceListState(defaultColumns, null, defaultGroupItems);
                    state.KeyTypes = keyTypes;
                }
                _columnState [keyTypeList] = state;
            }
            return(state);
        }
Ejemplo n.º 2
0
 protected virtual void bin(Hashtable map, object key, object row)
 {
     if (key.GetType().IsArray) {
         key = new ComparableArrayList((object[])key);
     }
     if (map.ContainsKey(key)) {
         ((ArrayList)map[key]).Add(row);
     }
     else {
         ArrayList list = new ArrayList();
         list.Add(row);
         map[key] = list;
     }
 }
Ejemplo n.º 3
0
 protected virtual void bin(Hashtable map, object key, object row)
 {
     if (key.GetType().IsArray)
     {
         key = new ComparableArrayList((object[])key);
     }
     if (map.ContainsKey(key))
     {
         ((ArrayList)map[key]).Add(row);
     }
     else
     {
         ArrayList list = new ArrayList();
         list.Add(row);
         map[key] = list;
     }
 }
Ejemplo n.º 4
0
            public override bool Equals(object comparator)
            {
                if (!(comparator is ComparableArrayList))
                {
                    base.Equals(comparator);
                }

                ComparableArrayList that = (ComparableArrayList)comparator;

                if (this.Count != that.Count)
                {
                    return(false);
                }
                for (int i = 0; i < this.Count; i++)
                {
                    if (!(this[i].Equals(that[i])))
                    {
                        return(false);
                    }
                }
                return(true);
            }
Ejemplo n.º 5
0
        public void HandeColumnClick(ResourcePropsColumn col)
        {
            ComparableArrayList propList = new ComparableArrayList(col.PropIds);

            if (_lastComparer != null && col == _lastSortColumn)
            {
                Guard.NullMember(_curSortSettings, "_curSortSettings");
                _curSortSettings = _curSortSettings.Reverse();
                _lastSortDirections [propList] = (col.SortIcon == SortIcon.Descending);  // reverse
            }
            else
            {
                bool sortAscending = true;
                if (_lastSortDirections.ContainsKey(propList))
                {
                    sortAscending = (bool)_lastSortDirections [propList];
                }
                _curSortSettings = new SortSettings(col.PropIds, sortAscending);

                if (_lastSortColumn != null)
                {
                    _lastSortColumn.SortIcon = SortIcon.None;
                }
                _lastSortColumn = col;
            }

            _lastComparer = CreateColumnComparer(col, _curSortSettings);
            Guard.NullMember(_lastSortColumn, "_lastSortColumn");
            _lastSortColumn.SortIcon = _curSortSettings.SortAscending ? SortIcon.Ascending : SortIcon.Descending;
            Guard.NullMember(_listView, "_listView");
            _listView.NodeCollection.SetItemComparer(null, _lastComparer);
            _listView.NodeCollection.Sort();
            _listView.GroupProvider = _lastSortColumn.GroupProvider;

            OnSortChanged();
        }