public override bool Save()
        {
            Owner.Filter.ClearOrderByColumns();
            List <ArchAngel.Providers.Database.Model.Filter.OrderByColumn> orderColumns = new List <ArchAngel.Providers.Database.Model.Filter.OrderByColumn>();

            foreach (TreeListNode node in treeList1.Nodes)
            {
                ArchAngel.Providers.Database.Model.Filter.OrderByColumn orderColumn;

                if (node.StateImageIndex == 1)
                {
                    Type type = node.Tag.GetType();

                    if (type == typeof(ArchAngel.Providers.Database.Model.Filter.OrderByColumn))
                    {
                        orderColumn = (ArchAngel.Providers.Database.Model.Filter.OrderByColumn)node.Tag;
                        orderColumn.SortOperator = (string)node[2];
                    }
                    else
                    {
                        ArchAngel.Providers.Database.Model.Column column = (ArchAngel.Providers.Database.Model.Column)node.Tag;
                        orderColumn = new ArchAngel.Providers.Database.Model.Filter.OrderByColumn(column, (string)node[2]);
                    }
                    Owner.Filter.AddOrderByColumn(orderColumn);
                }
            }
            return(true);
        }
        public TreeListNode AddTreeListNode(ArchAngel.Providers.Database.Model.Column column, bool selectedOnly)
        {
            TreeListNode newNode = null;

            ArchAngel.Providers.Database.Model.Filter.OrderByColumn orderColumn = null;

            foreach (ArchAngel.Providers.Database.Model.Filter.OrderByColumn orderCol in Owner.Filter.OrderByColumns)
            {
                if (orderCol.Column.Name == column.Name && orderCol.Column.Parent.Name == column.Parent.Name)
                {
                    orderColumn = orderCol;
                    break;
                }
            }
            if (orderColumn != null && selectedOnly)
            {
                newNode = treeList1.AppendNode(new object[] { orderColumn.Column.Parent.Name, orderColumn.Column.Name, orderColumn.SortOperator }, null);
                newNode.StateImageIndex = 1;
                newNode.Tag             = orderColumn;
            }
            else if (orderColumn == null && !selectedOnly)
            {
                newNode = treeList1.AppendNode(new object[] { column.Parent.Name, column.Name, "" }, null);
                newNode.StateImageIndex = 0;
                newNode.Tag             = column;
            }
            return(newNode);
        }
        public override bool Save()
        {
            Owner.Filter.ClearOrderByColumns();
            List<ArchAngel.Providers.Database.Model.Filter.OrderByColumn> orderColumns = new List<ArchAngel.Providers.Database.Model.Filter.OrderByColumn>();

            foreach (TreeListNode node in treeList1.Nodes)
            {
                ArchAngel.Providers.Database.Model.Filter.OrderByColumn orderColumn;

                if (node.StateImageIndex == 1)
                {
                    Type type = node.Tag.GetType();

                    if (type == typeof(ArchAngel.Providers.Database.Model.Filter.OrderByColumn))
                    {
                        orderColumn = (ArchAngel.Providers.Database.Model.Filter.OrderByColumn)node.Tag;
                        orderColumn.SortOperator = (string)node[2];
                    }
                    else
                    {
                        ArchAngel.Providers.Database.Model.Column column = (ArchAngel.Providers.Database.Model.Column)node.Tag;
                        orderColumn = new ArchAngel.Providers.Database.Model.Filter.OrderByColumn(column, (string)node[2]);
                    }
                    Owner.Filter.AddOrderByColumn(orderColumn);
                }
            }
            return true;
        }