예제 #1
0
 public GridColumn()
 {
     Container = new GridFrame();
     Header = new GridColumnHeader();
     Header.Style = "button";
     Header.MouseClick += Header_MouseClick;
     Container.Header = Header;
     Header.Column = this;
 }
예제 #2
0
        void Init(UIElement source)
        {
            GridColumnHeader = ((GridColumnHeader)source);
            ISupportDragDrop iSupportDragDrop = GridColumnHeader;

            SourceElement        = iSupportDragDrop.SourceElement;
            Column               = (GridColumn)GridColumnHeader.GetGridColumn(GridColumnHeader);
            ColumnsLayoutControl = BandedViewBehavior.GetColumnsLayoutControl(Column);
            View = (TableView)Column.View;
        }
        private void ClearSortExcept(GridColumnHeader clickedHeader)
        {
            var headers = grid.FindVisualChildren<GridColumnHeader>();
            foreach (var header in headers)
            {
                if (header == clickedHeader)
                    continue;

                HideIndicator(header);
            }
        }
        public override void Drop(System.Windows.UIElement source, System.Windows.Point pt)
        {
            GridColumnHeader columnHeader = source as GridColumnHeader;
            GridColumn       column       = columnHeader.DataContext as GridColumn;
            TableView        view         = column.View as TableView;

            if (!view.Grid.Columns.Contains(column))
            {
                return;
            }
            base.Drop(source, pt);
        }
        protected override void MoveColumnTo(UIElement source, int dropIndex)
        {
            GridColumnHeader gch = source as GridColumnHeader;

            if (string.Equals(gch.Tag, "external"))
            {
                ((MyTableView)GridView).InsertCustomColumn((GridColumn)gch.DataContext, dropIndex + DropIndexCorrection);
            }
            else
            {
                base.MoveColumnTo(source, dropIndex);
            }
        }
예제 #6
0
        private void ClearSortExcept(GridColumnHeader clickedHeader)
        {
            var headers = grid.FindVisualChildren <GridColumnHeader>();

            foreach (var header in headers)
            {
                if (header == clickedHeader)
                {
                    continue;
                }

                HideIndicator(header);
            }
        }
예제 #7
0
 private void View_ShowGridMenu(object sender, GridMenuEventArgs e)
 {
     if (e.MenuType == GridMenuType.Column)
     {
         GridColumnHeader columnHeader          = e.TargetElement as GridColumnHeader;
         GridColumn       column                = columnHeader.DataContext as GridColumn;
         bool             allowEditColumnHeader = GetAllowEditHeader(column);
         BarButtonItem    item = new BarButtonItem();
         item.Content    = allowEditColumnHeader ? "Hide ColumnHeader Editor" : "Show ColumnHeader Editor";
         item.ItemClick += Item_ItemClick;
         item.Tag        = new object[] { column, columnHeader };
         e.Customizations.Add(item);
     }
 }
예제 #8
0
        /// <summary>
        /// Handles dropping non-grid data on a grid column header
        /// </summary>
        /// <param name="e"></param>
        /// <param name="header"></param>
        /// <param name="pt"></param>
        private void DropColumnHeader(
            DragEventArgs e, GridColumnHeader header, Point pt)
        {
            GridColumn column = header.GetHitColumn(pt);

            if (column != null)
            {
                GridPanel panel = column.GridPanel;

                GridRow row = new GridRow();
                panel.Rows.Add(row);

                if (e.Data.GetDataPresent(typeof(string)) == true)
                {
                    string s = (string)e.Data.GetData(typeof(string));

                    DropTextRow(row, s.Split(','));
                }
                else if (e.Data.GetDataPresent(typeof(TreeNode)) == true)
                {
                    TreeNode tnode = (TreeNode)e.Data.GetData(typeof(TreeNode));

                    DropTextRow(row, tnode.Text.Split(','));
                }
                else if (e.Data.GetDataPresent(typeof(Node)) == true)
                {
                    Node node = (Node)e.Data.GetData(typeof(Node));

                    DropNodeRow(row, node.Cells);
                }
                else if (e.Data.GetDataPresent(typeof(Node[])) == true)
                {
                    Node[] nodes = (Node[])e.Data.GetData(typeof(Node[]));

                    foreach (Node node in nodes)
                    {
                        if (row == null)
                        {
                            row = new GridRow();

                            panel.Rows.Add(row);
                        }

                        DropNodeRow(row, node.Cells);

                        row = row.NextVisibleRow as GridRow;
                    }
                }
            }
        }
        public new void Drop(UIElement source, Point pt)
        {
            GridColumnHeader columnHeader = source as GridColumnHeader;
            GridColumn       column       = columnHeader.DataContext as GridColumn;
            TableView        view         = column.View as TableView;

            if (!view.Grid.Columns.Contains(column))
            {
                return;
            }

            MethodInfo method = typeof(ColumnChooserDropTarget).GetMethod("DropColumn", BindingFlags.Instance | BindingFlags.NonPublic);

            method.Invoke(this, new object[] { source });
        }
예제 #10
0
        private void Item_ItemClick(object sender, ItemClickEventArgs e)
        {
            object[]   objs   = (object[])e.Item.Tag;
            GridColumn column = (GridColumn)objs[0];

            SetAllowEditHeader(column, !GetAllowEditHeader(column));
            if (GetAllowEditHeader(column))
            {
                GridColumnHeader header = (GridColumnHeader)objs[1];
                TextEdit         te     = LayoutTreeHelper.GetVisualChildren(header).OfType <TextEdit>().FirstOrDefault();
                Dispatcher.BeginInvoke(new Action(() => {
                    te.Focus();
                    te.SelectAll();
                    te.LostFocus += Te_LostFocus;
                }), DispatcherPriority.Normal);
            }
        }
예제 #11
0
        /// <summary>
        /// Handles dropping data onto a ColumnHeader
        /// </summary>
        /// <param name="item"></param>
        /// <param name="items"></param>
        /// <param name="pt"></param>
        private void DropSgColumnHeader(GridColumnHeader item,
                                        IEnumerable <GridElement> items, Point pt)
        {
            GridColumn column = item.GetHitColumn(pt);

            if (column != null)
            {
                if (_SrcElement is GridColumn)
                {
                    DropSgColumns(column, items);
                }
                else
                {
                    DropSgPanel(item.GridPanel, items);
                }
            }
        }
        private void GridColumnHeader_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (e.ClickCount == 2)
            {
                GridColumnHeader header = LayoutHelper.FindParentObject <GridColumnHeader>((DependencyObject)e.OriginalSource);
                GridColumn       gc     = (GridColumn)header.DataContext;

                List <ColumnBase> lst = new List <ColumnBase>(gc.View.ColumnChooserColumns);
                for (int i = 0; i < lst.Count; i++)
                {
                    if (gc.ActualColumnChooserHeaderCaption == lst[i].ActualColumnChooserHeaderCaption)
                    {
                        lst[i].Visible = true;
                        break;
                    }
                }
            }
        }
 public c_grid_header(c_batchlist_grid grid) :
     base(grid)
 {
     Files    = new GridColumnHeader(grid.Row.Files);
     Notes    = new GridColumnHeader(grid.Row.Notes);
     Selected = new CheckBoxColumnFilter(grid.Row.Selected);
     AUScheduleHistory__ScheduleID             = new PXTextEditColumnFilter(grid.Row.AUScheduleHistory__ScheduleID);
     AUScheduleHistory__ExecutionDate          = new DateSelectorColumnFilter(grid.Row.AUScheduleHistory__ExecutionDate);
     AUScheduleHistory__ExecutionResult        = new PXTextEditColumnFilter(grid.Row.AUScheduleHistory__ExecutionResult);
     AUScheduleHistory__Ticks                  = new PXNumberEditColumnFilter(grid.Row.AUScheduleHistory__Ticks);
     AUScheduleHistory__ScheduleID_Description = new PXTextEditColumnFilter(grid.Row.AUScheduleHistory__ScheduleID_Description);
     Module      = new DropDownColumnFilter(grid.Row.Module);
     BatchNbr    = new SelectorColumnFilter(grid.Row.BatchNbr);
     LedgerID    = new SelectorColumnFilter(grid.Row.LedgerID);
     DateEntered = new DateSelectorColumnFilter(grid.Row.DateEntered);
     LastModifiedByID_Modifier_Username = new PXTextEditColumnFilter(grid.Row.LastModifiedByID_Modifier_Username);
     FinPeriodID  = new SelectorColumnFilter(grid.Row.FinPeriodID);
     ControlTotal = new PXNumberEditColumnFilter(grid.Row.ControlTotal);
     Description  = new PXTextEditColumnFilter(grid.Row.Description);
 }
        void IDropTarget.Drop(UIElement source, Point pt)
        {
            ColumnBase dropColumn = GetColumnByDragElement(source);

            if (dropColumn.Visible)
            {
                Point            bottomLinePrevElement = new Point(0, 0);
                ColumnList       list = LayoutHelper.FindParentObject <ColumnList>(source as DependencyObject) as ColumnList;
                GridColumnHeader bottomColumnHeader = null;
                bottomColumnHeader = (GridColumnHeader)LayoutHelper.FindElement(list, new Predicate <FrameworkElement>(delegate(FrameworkElement element) {
                    return((element is GridColumnHeader) && PointOnColumn(list, element, pt, ref bottomLinePrevElement));
                }));
                ColumnBase bottomColumn = GetColumnByDragElement(bottomColumnHeader);
                dropColumn.VisibleIndex = bottomColumn.VisibleIndex;
            }
            else
            {
                dropColumn.Visible = true;
            }
        }
예제 #15
0
        /// <summary>
        /// This routine shows a simple example of processing
        /// the MouseClick in the style defined header image.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SuperGridControl1ColumnHeaderClick(
            object sender, GridColumnHeaderClickEventArgs e)
        {
            GridColumnHeader header = e.GridPanel.ColumnHeader;
            Rectangle        r      = header.GetImageBounds(e.GridColumn);

            Point pt = MousePosition;

            pt = e.GridColumn.SuperGrid.PointToClient(pt);

            // If the user clicked in the header image, then instead
            // of sorting the column, let's redefine every cell in the
            // column to contain a visible state pattern.

            if (r.Contains(pt) == true)
            {
                int k = (int)header.Tag;
                header.Tag = ++k;

                for (int i = 0; i < e.GridPanel.Rows.Count; i++)
                {
                    GridRow row = e.GridPanel.Rows[i] as GridRow;

                    if (row != null)
                    {
                        int n = (k + i) % 8;

                        if ((k + i) % 16 >= 8)
                        {
                            n = 8 - n;
                        }

                        row.Cells[3].Value = "0,1,2,3,4,3,2,1,0".Substring(n << 1);
                    }
                }

                e.Cancel = true;
            }
        }
예제 #16
0
        /// <summary>
        /// Gives column 3 (Process State) some extra feedback
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SuperGridControl1MouseMove(object sender, MouseEventArgs e)
        {
            SuperGridControl sg = sender as SuperGridControl;

            if (sg != null)
            {
                GridColumnHeader header =
                    sg.GetElementAt(e.Location) as GridColumnHeader;

                if (header != null)
                {
                    Point      pt     = header.SuperGrid.PointToClient(MousePosition);
                    GridColumn column = header.GetHitColumn(pt);

                    if (column != null && column.ColumnIndex == 3)
                    {
                        Rectangle r = header.GetImageBounds(column);

                        if (r.Contains(pt) == true)
                        {
                            if (column.HeaderStyles.MouseOver.ImageIndex < 0)
                            {
                                column.HeaderStyles.MouseOver.ImageIndex = 7;
                            }
                        }
                        else
                        {
                            if (column.HeaderStyles.MouseOver.ImageIndex >= 0)
                            {
                                column.HeaderStyles.MouseOver.ImageIndex = -1;
                            }
                        }
                    }
                }
            }
        }
예제 #17
0
        protected override void MoveColumnTo(UIElement source, int dropIndex)
        {
            GridColumnHeader gch = source as GridColumnHeader;

            GridView.MoveColumnTo((ColumnBase)gch.DataContext, dropIndex + DropIndexCorrection, BaseGridColumnHeader.GetHeaderPresenterTypeFromGridColumnHeader(source), BaseGridColumnHeader.GetHeaderPresenterTypeFromLocalValue(AdornableElement));
        }
예제 #18
0
		void Init(UIElement source) {
			if(source is GridColumnHeader) {
				GridColumnHeader = ((GridColumnHeader)source);
				ISupportDragDrop iSupportDragDrop = GridColumnHeader;
				SourceElement = iSupportDragDrop.SourceElement;
				Column = (GridColumn)GridColumnHeader.GetGridColumn(GridColumnHeader);
				ColumnsLayoutControl = BandedViewBehavior.GetColumnsLayoutControl(Column);
				View = (TableView)Column.View;
			}
		}