/// <summary> /// Creates a column descriptor for displaying multiple properties with default flags. /// </summary> /// <param name="propNames">The names of the properties displayed in the column.</param> /// <param name="width">The width of the column in pixels.</param> /// <param name="flags">The flags of the column.</param> public ColumnDescriptor(string[] propNames, int width, ColumnDescriptorFlags flags) { PropNames = propNames; Width = width; Flags = flags; CustomComparer = null; GroupProvider = null; SortMenuAscText = null; SortMenuDescText = null; }
private void SetFlagFromColumn(PropertyTypeTag tag, CheckBoxColumn column, ColumnDescriptorFlags flag) { if (column.GetItemCheckState(tag) == CheckBoxState.Checked) { tag.ColDesc.Flags |= flag; } else { tag.ColDesc.Flags &= ~flag; } }
private void SetColumnFromFlag(PropertyTypeTag tag, CheckBoxColumn column, ColumnDescriptorFlags flag, bool isChecked) { if (isChecked) { column.SetItemCheckState(tag, ((tag.ColDesc.Flags & flag) != 0) ? CheckBoxState.Checked : CheckBoxState.Unchecked); } else { column.SetItemCheckState(tag, CheckBoxState.Grayed); } }
private static ColumnDescriptor LoadColumnDescriptor(IResource resource) { DisplayColumnProps props = (Core.DisplayColumnManager as DisplayColumnManager).Props; IStringList columnPropList = resource.GetStringListProp(props.ColumnProps); string[] columnProps = new string [columnPropList.Count]; for (int i = 0; i < columnPropList.Count; i++) { columnProps [i] = columnPropList [i]; } int width = resource.GetIntProp(props.ColumnWidth); ColumnDescriptorFlags flags = (ColumnDescriptorFlags)resource.GetIntProp(props.ColumnFlags); return(new ColumnDescriptor(columnProps, width, flags)); }
/// <summary> /// Returns an array of ColumnDescriptors describing the current column configuration /// of the ListView. /// </summary> /// <param name="listView">The list view for which the column configuration is returned.</param> /// <returns>An array of column descriptors.</returns> internal ColumnDescriptor[] ColumnDescriptorsFromList(ResourceListView2 listView) { ArrayList columnDescriptors = new ArrayList(); foreach (JetListViewColumn col in listView.Columns) { ResourcePropsColumn propsCol = col as ResourcePropsColumn; if (propsCol != null) { string[] propNames = new string[propsCol.PropIds.Length]; for (int i = 0; i < propsCol.PropIds.Length; i++) { int propId = propsCol.PropIds [i]; if (propId < 0) { propNames [i] = "-" + Core.ResourceStore.PropTypes [-propId].Name; } else { propNames [i] = Core.ResourceStore.PropTypes [propId].Name; } } int width; ColumnDescriptorFlags flags = 0; if (col.FixedSize) { flags |= ColumnDescriptorFlags.FixedSize; } if (col.AutoSize) { flags |= ColumnDescriptorFlags.AutoSize; width = col.AutoSizeMinWidth; } else { width = col.Width; } columnDescriptors.Add(new ColumnDescriptor(propNames, width, flags)); } } return((ColumnDescriptor[])columnDescriptors.ToArray(typeof(ColumnDescriptor))); }
private static void LoadColumn(string resourceType, int index, XmlNode node) { int width = XmlTools.GetRequiredIntAttribute(node, "width"); XmlNodeList propNameNodes = node.SelectNodes("prop"); ArrayList propNameList = new ArrayList(); for (int i = 0; i < propNameNodes.Count; i++) { string propName = XmlTools.GetRequiredAttribute(propNameNodes [i], "name"); if (XmlTools.GetIntAttribute(propNameNodes [i], "ifExist", 0) == 1) { string propRealName = propName; if (propRealName.StartsWith("-")) { propRealName = propRealName.Substring(1); } if (!Core.ResourceStore.PropTypes.Exist(propRealName)) { continue; } } propNameList.Add(propName); } string[] propNames = (string[])propNameList.ToArray(typeof(string)); ColumnDescriptorFlags flags = 0; if (XmlTools.GetIntAttribute(node, "fixedSize", 0) == 1) { flags |= ColumnDescriptorFlags.FixedSize; } if (XmlTools.GetIntAttribute(node, "showIfNotEmpty", 0) == 1) { flags |= ColumnDescriptorFlags.ShowIfNotEmpty; } if (XmlTools.GetIntAttribute(node, "showIfDistinct", 0) == 1) { flags |= ColumnDescriptorFlags.ShowIfDistinct; } if (XmlTools.GetIntAttribute(node, "autoSize", 0) == 1) { flags |= ColumnDescriptorFlags.AutoSize; } ColumnDescriptor descriptor = new ColumnDescriptor(propNames, width, flags); XmlNode comparerNode = node.SelectSingleNode("comparer"); if (comparerNode != null) { IResourceComparer comparer = LoadComparer(comparerNode); descriptor.CustomComparer = comparer; if (comparer is IResourceGroupProvider) { descriptor.GroupProvider = comparer as IResourceGroupProvider; } } XmlNode sortMenuTextNode = node.SelectSingleNode("sortmenutext"); if (sortMenuTextNode != null) { descriptor.SortMenuAscText = XmlTools.GetRequiredAttribute(sortMenuTextNode, "asc"); descriptor.SortMenuDescText = XmlTools.GetRequiredAttribute(sortMenuTextNode, "desc"); } Core.DisplayColumnManager.RegisterDisplayColumn(resourceType, index, descriptor); XmlNode multiLineNode = node.SelectSingleNode("multiline"); if (multiLineNode != null) { LoadMultiLineColumn(resourceType, propNames, multiLineNode); } }