/// <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); }
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; } }
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); }
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(); }