Beispiel #1
0
 /// <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;
 }
Beispiel #2
0
 private void SetFlagFromColumn(PropertyTypeTag tag, CheckBoxColumn column, ColumnDescriptorFlags flag)
 {
     if (column.GetItemCheckState(tag) == CheckBoxState.Checked)
     {
         tag.ColDesc.Flags |= flag;
     }
     else
     {
         tag.ColDesc.Flags &= ~flag;
     }
 }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        /// <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)));
        }
Beispiel #6
0
        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);
            }
        }