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(); }
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); } }