using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; using System.Xml.Linq; namespace HaInformator { public enum cMenuState { None, tView, lView, aView, vView } public class ContextMenuSelection { private static Dictionary> _groups; public Action tNewBtn_Click { set { _cMenu.Items["tNewBtn"].Click += new EventHandler(value); } } public Action tEditBtn_Click { set { _cMenu.Items["tEditBtn"].Click += new EventHandler(value); } } public Action tAddAttributeBtn_Click { set { _cMenu.Items["tAddAttributeBtn"].Click += new EventHandler(value); } } public Action tDeleteBtn_Click { set { _cMenu.Items["tDeleteBtn"].Click += new EventHandler(value); } } public Action tDeleteNodeKeepContentBtn_Click { set { _cMenu.Items["tDeleteNodeKeepContentBtn"].Click += new EventHandler(value); } } public Action tSaveBtn_Click { set { _cMenu.Items["tSaveBtn"].Click += new EventHandler(value); } } public Action lEditBtn_Click { set { _cMenu.Items["lEditBtn"].Click += new EventHandler(value); } } public Action lAddAttributeBtn_Click { set { _cMenu.Items["lAddAttributeBtn"].Click += new EventHandler(value); } } public Action lDeleteBtn_Click { set { _cMenu.Items["lDeleteBtn"].Click += new EventHandler(value); } } public Action lDeleteNodeKeepContentBtn_Click { set { _cMenu.Items["lDeleteNodeKeepContentBtn"].Click += new EventHandler(value); } } public Action aNewBtn_Click { set { _cMenu.Items["aNewBtn"].Click += new EventHandler(value); } } public Action aEditBtn_Click { set { _cMenu.Items["aEditBtn"].Click += new EventHandler(value); } } public Action aDeleteBtn_Click { set { _cMenu.Items["aDeleteBtn"].Click += new EventHandler(value); } } public Action vEditBtn_Click { set { _cMenu.Items["vEditBtn"].Click += new EventHandler(value); } } private static ContextMenuStrip _cMenu; private static cMenuState _currState; public ContextMenuSelection(ContextMenuStrip cMenu) { _cMenu = cMenu; _createGroups(); } private void _createGroups() { _groups = new Dictionary>(5); _groups.Add( cMenuState.tView, new List() { _cMenu.Items["tHeader"], _cMenu.Items["tNewBtn"], // _cMenu.Items["tEditBtn"], // _cMenu.Items["tAddAttributeBtn"], // _cMenu.Items["tDeleteBtn"], // // _cMenu.Items["tDeleteNodeKeepContentBtn"], _cMenu.Items["tSaveBtn"] } ); _groups.Add( cMenuState.lView, new List() { _cMenu.Items["lheader"], _cMenu.Items["lEditBtn"], // _cMenu.Items["lAddAttributeBtn"], // _cMenu.Items["lDeleteBtn"], // // _cMenu.Items["lDeleteNodeKeepContentBtn"] // } ); _groups.Add( cMenuState.aView, new List() { _cMenu.Items["aheader"], _cMenu.Items["aNewBtn"], // _cMenu.Items["aEditBtn"], // _cMenu.Items["aDeleteBtn"] // } ); _groups.Add( cMenuState.vView, new List() { _cMenu.Items["vHeader"], _cMenu.Items["vEditBtn"] // } ); } public ContextMenuStrip Open(cMenuState state) { foreach (var i in _cMenu.Items) { var it = (ToolStripItem)i; if (_groups[state].Contains(i)) it.Enabled = true; else it.Enabled = false; } return _cMenu; } public DialogResult ShowInputDialog(ref string input, string title = "") { System.Drawing.Size size = new System.Drawing.Size(200, 70); Form inputBox = new Form(); inputBox.Text = title; inputBox.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; inputBox.ClientSize = size; System.Windows.Forms.TextBox textBox = new TextBox(); textBox.Size = new System.Drawing.Size(size.Width - 10, 23); textBox.Location = new System.Drawing.Point(5, 5); textBox.Text = input; inputBox.Controls.Add(textBox); Button okButton = new Button(); okButton.DialogResult = System.Windows.Forms.DialogResult.OK; okButton.Name = "okButton"; okButton.Size = new System.Drawing.Size(75, 23); okButton.Text = "&OK"; okButton.Location = new System.Drawing.Point(size.Width - 80 - 80, 39); inputBox.Controls.Add(okButton); Button cancelButton = new Button(); cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; cancelButton.Name = "cancelButton"; cancelButton.Size = new System.Drawing.Size(75, 23); cancelButton.Text = "&Cancel"; cancelButton.Location = new System.Drawing.Point(size.Width - 80, 39); inputBox.Controls.Add(cancelButton); inputBox.AcceptButton = okButton; inputBox.CancelButton = cancelButton; DialogResult result = inputBox.ShowDialog(); input = textBox.Text; return result; } public DialogResult ShowDoubleInputDialog(ref string input, ref string value, string title = "") { System.Drawing.Size size = new System.Drawing.Size(200, 95); Form inputBox = new Form(); inputBox.Text = title; inputBox.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; inputBox.ClientSize = size; System.Windows.Forms.TextBox textBox = new TextBox(); textBox.Size = new System.Drawing.Size(size.Width - 10, 23); textBox.Location = new System.Drawing.Point(5, 5); textBox.Text = input; inputBox.Controls.Add(textBox); System.Windows.Forms.TextBox textBox2 = new TextBox(); textBox2.Size = new System.Drawing.Size(size.Width - 10, 23); textBox2.Location = new System.Drawing.Point(5, 33); textBox2.Text = input; inputBox.Controls.Add(textBox2); Button okButton = new Button(); okButton.DialogResult = System.Windows.Forms.DialogResult.OK; okButton.Name = "okButton"; okButton.Size = new System.Drawing.Size(75, 23); okButton.Text = "&OK"; okButton.Location = new System.Drawing.Point(size.Width - 80 - 80, 58); inputBox.Controls.Add(okButton); Button cancelButton = new Button(); cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; cancelButton.Name = "cancelButton"; cancelButton.Size = new System.Drawing.Size(75, 23); cancelButton.Text = "&Cancel"; cancelButton.Location = new System.Drawing.Point(size.Width - 80, 58); inputBox.Controls.Add(cancelButton); inputBox.AcceptButton = okButton; inputBox.CancelButton = cancelButton; DialogResult result = inputBox.ShowDialog(); input = textBox.Text; value = textBox2.Text; return result; } public DialogResult ShowSaveFileDialog(ref string path) { SaveFileDialog sFileD = new SaveFileDialog(); sFileD.DefaultExt = "xml"; sFileD.Filter = "XML-Datei|*.xml"; var res = sFileD.ShowDialog(); path = sFileD.FileName; return res; } } }