private void MergeColumnIntoList(DisplayColumn col, ArrayList allColumns) { int foundIndex = -1; for (int i = 0; i < allColumns.Count; i++) { DisplayColumn oldCol = (DisplayColumn)allColumns [i]; if (PropNamesMatchStrictly(oldCol, col) || ((IsDisplayNameColumn(oldCol) || IsDisplayNameColumn(col)) && PropNamesMatch(oldCol, col))) { foundIndex = i; break; } } if (foundIndex >= 0) { allColumns[foundIndex] = ((DisplayColumn)allColumns [foundIndex]).MergePropNames(col); } else { int pos = 0; while (pos < allColumns.Count && ((DisplayColumn)allColumns [pos]).Index < col.Index) { pos++; } allColumns.Insert(pos, col); } }
internal DisplayColumn MergePropNames(DisplayColumn other) { ArrayList myPropNames = new ArrayList(_descriptor.PropNames); string[] otherPropNames = other._descriptor.PropNames; ArrayList mergedPropNames = null; foreach (string propName in otherPropNames) { if (!myPropNames.Contains(propName)) { if (mergedPropNames == null) { mergedPropNames = (ArrayList)myPropNames.Clone(); } mergedPropNames.Add(propName); } } if (mergedPropNames == null) { return(this); } return(new DisplayColumn(_index, new ColumnDescriptor( (string[])mergedPropNames.ToArray(typeof(String)), _descriptor.Width))); }
public GroupedPropertyDescriptor(string name, PivotKey outerPivotKey, DisplayColumn displayColumn, PivotKey innerPivotKey) : base(name, displayColumn.GetAttributes(MergePivotKeys(outerPivotKey, innerPivotKey)).ToArray()) { OuterPivotKey = outerPivotKey; InnerPivotKey = innerPivotKey; DisplayColumn = displayColumn; }
static ColumnSetTest() { IDisplayColumn <SettingsContext> testSingleColumn = new DisplayColumn <SettingsContext> { Title = "Test", Selector = x => x.Values }; var columnSets = new List <ColumnSet <SettingsContext> > { new ColumnSet <SettingsContext> { TypeHandled = typeof(SettingsContext), Columns = new List <IDisplayColumn <SettingsContext> > { new DisplayColumn <SettingsContext> { Title = "Column 1", Order = 1, Selector = x => x.IsReadOnly }, new DisplayColumn <SettingsContext> { Title = "Column 2", Order = 2, Selector = x => x.IsSynchronized }, new DisplayColumn <SettingsContext> { Title = "Column 3", Order = 3, Selector = x => x.Keys } } } }; }
public static bool IsCanonical(DisplayColumn displayColumn) { if (displayColumn.ColumnSpec.Hidden && null != displayColumn.ColumnSpec.SortDirection) { return(false); } return(true); }
public override object GetValue(object component) { var outerRowItem = component as RowItem; if (null == outerRowItem) { return(null); } var reportRow = outerRowItem.Value as GroupedRow; if (null == reportRow) { return(null); } IEnumerable <RowItem> innerRows; if (null == OuterPivotKey) { innerRows = reportRow.InnerRows; } else { RowItem innerRow; if (!reportRow.TryGetInnerRow(OuterPivotKey, out innerRow)) { return(null); } innerRows = new[] { innerRow }; } var values = new List <object>(); foreach (var innerRow in innerRows) { var value = DisplayColumn.GetValue(innerRow, InnerPivotKey); if (null != value) { values.Add(value); } } var distinctValues = values.Distinct().ToArray(); if (distinctValues.Length == 0) { return(null); } else if (distinctValues.Length == 1) { return(distinctValues[0]); } else { return(null); } }
public override int GetHashCode() { unchecked { int hashCode = base.GetHashCode(); hashCode = (hashCode * 397) ^ DisplayColumn.GetHashCode(); hashCode = (hashCode * 397) ^ (OuterPivotKey != null ? OuterPivotKey.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (InnerPivotKey != null ? InnerPivotKey.GetHashCode() : 0); return(hashCode); } }
private static bool IsDisplayNameColumn(DisplayColumn col) { foreach (string propName in col.PropNames) { if (propName == "DisplayName") { return(true); } } return(false); }
private static bool PropNamesMatch(DisplayColumn col1, DisplayColumn col2) { ArrayList props2 = new ArrayList(col2.PropNames); foreach (string propName in col1.PropNames) { if (props2.Contains(propName)) { return(true); } } return(false); }
private ListViewItem MakeListViewColumnItem(DisplayColumn displayColumn) { string listItemText = displayColumn.GetColumnCaption(null, ColumnCaptionType.localized); var listViewItem = new ListViewItem {Text = listItemText }; Debug.Assert(!displayColumn.ColumnSpec.Hidden); if (!string.IsNullOrEmpty(displayColumn.ColumnSpec.Caption)) { listViewItem.Font = new Font(listViewItem.Font, FontStyle.Bold | listViewItem.Font.Style); DataSchema dataSchema = displayColumn.DataSchema; var columnCaption = dataSchema.GetColumnCaption(displayColumn.ColumnDescriptor); listViewItem.ToolTipText = columnCaption.GetCaption(dataSchema.DataSchemaLocalizer); } return listViewItem; }
/** * Adds a column to the specified map of columns. */ private void AddColumnToList(HashMap map, string key, DisplayColumn column) { ArrayList columns = (ArrayList)map [key]; if (columns == null) { columns = new ArrayList(); map [key] = columns; } int pos = 0; while (pos < columns.Count && ((DisplayColumn)columns [pos]).Index < column.Index) { pos++; } columns.Insert(pos, column); }
public void RemoveAvailableColumn(string resourceType, string propNames) { string key = (resourceType == null) ? "" : resourceType; ArrayList columns = (ArrayList)_availableColumns [key]; if (columns != null) { for (int i = 0; i < columns.Count; i++) { DisplayColumn col = (DisplayColumn)columns [i]; if (col.Descriptor.PropNames [0] == propNames) { columns.RemoveAt(i); break; } } } }
/** * Registers a column that is not by default included in the list of * visible columns for the specified resource type, but can always be * added to the list (even if none of the resources in the list have that * property). */ public void RegisterAvailableColumn(string resourceType, ColumnDescriptor descriptor) { if (resourceType != null && !Core.ResourceStore.ResourceTypes.Exist(resourceType)) { throw new ArgumentException("Invalid resource type " + resourceType, "resourceType"); } PropNamesToIDs(descriptor.PropNames, false); // validates the column descriptor DisplayColumn col = new DisplayColumn(-1, descriptor); if (resourceType == null) { AddColumnToList(_availableColumns, "", col); } else { AddColumnToList(_availableColumns, resourceType, col); } }
public static bool IsCanonical(DisplayColumn displayColumn) { if (displayColumn.ColumnSpec.Hidden && null != displayColumn.ColumnSpec.SortDirection) { return false; } return true; }
public GroupedPropertyDescriptor(string name, DisplayColumn displayColumn, PivotKey innerPivotKey) : this(name, null, displayColumn, innerPivotKey) { }
private ListViewItem MakeListViewColumnItem(DisplayColumn displayColumn) { string listItemText = displayColumn.GetColumnCaption(null, ColumnCaptionType.localized); var listViewItem = new ListViewItem {Text = listItemText }; Debug.Assert(!displayColumn.ColumnSpec.Hidden); if (!string.IsNullOrEmpty(displayColumn.ColumnSpec.Caption)) { listViewItem.Font = new Font(listViewItem.Font, FontStyle.Bold | listViewItem.Font.Style); DataSchema dataSchema = displayColumn.DataSchema; ColumnCaption columnCaption = dataSchema.GetColumnCaption(displayColumn.ColumnDescriptor); listViewItem.ToolTipText = dataSchema.GetLocalizedColumnCaption(columnCaption); } return listViewItem; }