123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- using System;
- using System.Windows.Forms;
- using FastReport.Utils;
- namespace FastReport.AdvMatrix
- {
- internal class MatrixHeaderMenu : MatrixCellMenuBase
- {
- private HeaderDescriptor descr;
-
- public ContextMenuItem miAddTotal;
- public ContextMenuItem miAddTotalBefore;
- public ContextMenuItem miAddTotalAfter;
- private ContextMenuItem miInsert;
- private ContextMenuItem miInsertAfter;
- private ContextMenuItem miInsertBefore;
- private ContextMenuItem miInsertParent;
- private ContextMenuItem miInsertChild;
- private ContextMenuItem miDelete;
- private ContextMenuItem miDeleteThisItem;
- private ContextMenuItem miDeleteItemTree;
-
- private void AfterInsert(HeaderDescriptor newItem)
- {
- Change();
-
- Designer.SelectedObjects.Clear();
- Designer.SelectedObjects.Add(newItem.TemplateCell);
- Designer.SelectionChanged(null);
- }
- private void AfterDelete()
- {
- Change();
- Designer.SelectedObjects.Clear();
- Designer.SelectedObjects.Add(Matrix);
- Designer.SelectionChanged(null);
- }
- private void AddTotalAfter_Click(object sender, EventArgs e)
- {
- HeaderDescriptor d = new HeaderDescriptor();
- d.DisplayText = Res.Get("ComponentsMisc,Matrix,Total");
- AfterInsert(descr.InsertAfter(d));
- }
- private void AddTotalBefore_Click(object sender, EventArgs e)
- {
- HeaderDescriptor d = new HeaderDescriptor();
- d.DisplayText = Res.Get("ComponentsMisc,Matrix,Total");
- AfterInsert(descr.InsertBefore(d));
- }
- private void InsertAfter_Click(object sender, EventArgs e)
- {
- AfterInsert(descr.InsertAfter(new HeaderDescriptor()));
- }
- private void InsertBefore_Click(object sender, EventArgs e)
- {
- AfterInsert(descr.InsertBefore(new HeaderDescriptor()));
- }
- private void InsertParent_Click(object sender, EventArgs e)
- {
- AfterInsert(descr.InsertParent(new HeaderDescriptor()));
- }
- private void InsertChild_Click(object sender, EventArgs e)
- {
- AfterInsert(descr.InsertChild(new HeaderDescriptor()));
- }
- private void DeleteThisItem_Click(object sender, EventArgs e)
- {
- descr.DeleteTopNItems();
- descr.DeleteThis();
- AfterDelete();
- }
- private void DeleteItemTree_Click(object sender, EventArgs e)
- {
- descr.DeleteTopNItems();
- descr.DeleteTree();
- AfterDelete();
- }
- public MatrixHeaderMenu(AdvMatrixObject matrix) : base(matrix)
- {
- descr = Cell.GetHeaderDescriptor();
- MyRes res = new MyRes("ComponentMenu,AdvMatrixHeader");
- miAddTotal = CreateMenuItem(65, res.Get("AddTotal"), null);
- miAddTotal.BeginGroup = true;
- miAddTotalAfter = CreateMenuItem(res.Get("Insert,After"), AddTotalAfter_Click);
- miAddTotalBefore = CreateMenuItem(res.Get("Insert,Before"), AddTotalBefore_Click);
- miAddTotal.DropDownItems.AddRange(new ContextMenuItem[] { miAddTotalAfter, miAddTotalBefore });
- res = new MyRes("ComponentMenu,AdvMatrixHeader,Insert");
- miInsert = CreateMenuItem(res.Get(""), null);
- miInsert.BeginGroup = true;
-
- miInsertAfter = CreateMenuItem(res.Get("After"), InsertAfter_Click);
- miInsertBefore = CreateMenuItem(res.Get("Before"), InsertBefore_Click);
- miInsertParent = CreateMenuItem(res.Get("Parent"), InsertParent_Click);
- miInsertChild = CreateMenuItem(res.Get("Child"), InsertChild_Click);
- miInsert.DropDownItems.AddRange(new ContextMenuItem[] { miInsertAfter, miInsertBefore, miInsertParent, miInsertChild });
- res = new MyRes("ComponentMenu,AdvMatrixHeader,Delete");
- miDelete = CreateMenuItem(51, res.Get(""), null);
- miDeleteThisItem = CreateMenuItem(res.Get("ThisItem"), DeleteThisItem_Click);
- miDeleteItemTree = CreateMenuItem(res.Get("ItemTree"), DeleteItemTree_Click);
- miDelete.DropDownItems.AddRange(new ContextMenuItem[] { miDeleteThisItem, miDeleteItemTree });
- int insertIndex = Items.IndexOf(miClear);
- Items.Insert(insertIndex, miAddTotal);
- Items.Insert(insertIndex + 1, miInsert);
- Items.Insert(insertIndex + 2, miDelete);
- miDelete.Enabled = !descr.IsTopNItem;
- miDeleteItemTree.Enabled = descr.Items.Count > 0;
- miClear.Visible = false;
- miMergeSplit.Visible = false;
- }
- }
- }
|