Beispiel #1
0
        void onDragDrop(object sender, DragEventArgs e)
        {
            if (!Helper.CanDragAndDrop(e))
            {
                return;
            }
            if (_modelPanel.Model.IsSubModel)
            {
                return;
            }

            Button button = null;

            if (e.Data.GetDataPresent(typeof(TreeNode)))
            {
                TreeNode elementNode = (TreeNode)e.Data.GetData(typeof(TreeNode));
                button = _modelPanel.AddElement(this, (MetaColumn)elementNode.Tag, true);
                _modelPanel.MainForm.IsModified = true;
                _modelPanel.MainForm.CannotRenderAnymore();

                _modelPanel.UpdateLINQModel();
            }

            if (e.Data.GetDataPresent(typeof(Button)))
            {
                button = (Button)e.Data.GetData(typeof(Button));
            }
            if (button != null)
            {
                ElementPanel source = null;
                if (button.Parent != this)
                {
                    //Button comes from another panel
                    ReportElement element = (ReportElement)button.Tag;
                    source = (ElementPanel)button.Parent;
                    source.Controls.Remove(button);
                    element.PivotPosition = Position;
                    element.InitEditor();
                    source.RedrawPanel();
                    Controls.Add(button);
                    _modelPanel.MainForm.IsModified = true;
                    _modelPanel.MainForm.CannotRenderAnymore();
                    _modelPanel.PanelsToElements();
                }

                //Set new position
                int index = getIndexFocus(e);
                if (index != -1 && Controls[index] != button)
                {
                    Controls.SetChildIndex(button, index);
                    _modelPanel.MainForm.IsModified = true;
                    _modelPanel.MainForm.CannotRenderAnymore();
                    _modelPanel.PanelsToElements();
                }
                RedrawPanel();
                button.Focus();
            }
            _modelPanel.Model.CheckSortOrders();
        }
Beispiel #2
0
        void btn_MouseDown(object sender, MouseEventArgs e)
        {
            Button button = (Button)sender;

            //set property grid
            ElementGrid.PropertyValueChanged -= Grid_PropertyValueChanged;
            ReportElement element = null;

            if (button.Tag != null)
            {
                element = button.Tag as ReportElement;
            }
            if (element != null)
            {
                element.InitEditor();
                bool collapseCategories = (ElementGrid.SelectedObject == null);

                ElementGrid.SelectedObject = button.Tag;

                //Collapse Advanced categories
                if (collapseCategories && !collapseElementCategoriesDone)
                {
                    CollapseCategories(ElementGrid);
                    collapseElementCategoriesDone = true;
                }
            }

            ElementGrid.PropertyValueChanged += Grid_PropertyValueChanged;

            if (e != null)
            {
                DragDropEffects dde1 = DoDragDrop(sender, DragDropEffects.Move);
            }

            if (button.Parent != null)
            {
                SelectedButton = button;
                redrawButtons();
            }

            //select meta element in TreeView
            if (element != null)
            {
                SetMetaColumn(elementTreeView.Nodes, element);
            }

            if (e != null && e.Button == MouseButtons.Right)
            {
                ContextMenuStrip  menu = new ContextMenuStrip();
                ToolStripMenuItem item = new ToolStripMenuItem("Remove");
                item.Click += new EventHandler(delegate(object sender2, EventArgs e2)
                {
                    removeElementFromPanel(button, false);
                });
                if (!Model.IsSubModel)
                {
                    menu.Items.Add(item);
                }

                item        = new ToolStripMenuItem("Copy");
                item.Click += new EventHandler(delegate(object sender2, EventArgs e2)
                {
                    copyElementFromPanel(button);
                });
                if (!Model.IsSubModel)
                {
                    menu.Items.Add(item);
                }

                item        = new ToolStripMenuItem("Prompt at run-time");
                item.Click += new EventHandler(delegate(object sender2, EventArgs e2)
                {
                    if (element.MetaColumn.IsAggregate == true)
                    {
                        aggregateRestrictionsPanel.AddRestriction(element.MetaColumn, true);
                    }
                    else
                    {
                        restrictionsPanel.AddRestriction(element.MetaColumn, true);
                    }
                });
                menu.Items.Add(item);

                if (!Model.IsSubModel)
                {
                    menu.Items.Add(new ToolStripSeparator());
                    item        = new ToolStripMenuItem("Remove all elements");
                    item.Click += new EventHandler(delegate(object sender2, EventArgs e2)
                    {
                        removeElementFromPanel(button, true);
                    });
                    menu.Items.Add(item);

                    item        = new ToolStripMenuItem("Clear all Sort orders");
                    item.Click += new EventHandler(delegate(object sender2, EventArgs e2)
                    {
                        ElementPanel panel = (ElementPanel)button.Parent;
                        foreach (var control in panel.Controls)
                        {
                            ReportElement el = ((Button)control).Tag as ReportElement;
                            if (el != null)
                            {
                                el.SortOrder = ReportElement.kNoSortKeyword;
                            }
                        }
                        btn_MouseDown(button, null);
                        MainForm.IsModified = true;
                    });
                    menu.Items.Add(item);

                    menu.Items.Add(new ToolStripSeparator());
                    item        = new ToolStripMenuItem("Smart copy...");
                    item.Click += new EventHandler(delegate(object sender2, EventArgs e2)
                    {
                        SmartCopyForm form = new SmartCopyForm("Smart copy of " + element.DisplayNameEl, element, Model.Report);
                        form.ShowDialog();
                        if (form.IsReportModified)
                        {
                            MainForm.IsModified = true;
                            MainForm.CannotRenderAnymore();
                            ElementsToPanels();
                        }
                    });
                    menu.Items.Add(item);
                }
                //Display context menu
                menu.Show(button, e.Location);
            }
        }