using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using AIMSExtension; using System.Reflection; using DevComponents.DotNetBar; using AIMSBLL; namespace AIMS.PublicUI.UI { public partial class frmMenu : Form { public AIMSExtension.EditState _state; public List MenuObjList; private AIMSModel.Menu MenuRowData; public frmMenu() { InitializeComponent(); dgvMenu.AutoGenerateColumns = false; //galleryContainer2初始化 this.galleryContainer2.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.galleryContainer2.DefaultSize = new System.Drawing.Size(258, 55); this.galleryContainer2.MinimumSize = new System.Drawing.Size(200, 55); this.galleryContainer2.BackgroundStyle.Class = "RibbonGalleryContainer"; this.galleryContainer2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; } private void frmMenu_Load(object sender, EventArgs e) { Initial(); ControlExtension.SetDgvAttribute(dgvMenu); this.treeView1.BackColor = System.Drawing.Color.Snow; ControlExtension.EnabledControl(panel4, false); intMenuOrder.Text = "0"; //资源图片映射 AIMSControls.Properties.Resources res = new AIMSControls.Properties.Resources(); var info = res.GetType() .GetProperties(BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Instance) .Where(x => x.PropertyType.Name == "Bitmap" && x.Name.StartsWith("M_")); foreach (var item in info) { Image img = null; img = AIMSControls.Properties.Resources.ResourceManager.GetObject(item.Name) as Image; if (img == null) continue; ButtonItem bti = new ButtonItem() { ImagePosition = eImagePosition.Top, Image = img, Name = item.Name, //Text = item.Name, }; bti.Click += new EventHandler(bti_Click); this.galleryContainer2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { bti }); } } void bti_Click(object sender, EventArgs e) { foreach (ButtonItem fite in this.galleryContainer2.SubItems) { fite.Checked = false; } ButtonItem item = sender as ButtonItem; item.Checked = true; txtImagename.Text = item.Name; picPath.Image = item.Image; } private void Initial() { InitTreeView(); MenuObjList = BMenu.GetModelList(); MenuObjList.Insert(0, new AIMSModel.Menu{ Id = -1,Name = "无", ParentId = 0}); this.cboParent.DataSource = MenuObjList; this.cboParent.DisplayMember = "Name"; this.cboParent.ValueMember = "Id"; DataTable dt = BMenu.GetDateTable(""); dgvMenu.DataSource = dt; foreach (ButtonItem fite in this.galleryContainer2.SubItems) { fite.Checked = false; } } private void InitTreeView() { treeView1.Nodes.Clear(); List MenuList = new List(); AIMSModel.Menu Menu = new AIMSModel.Menu(); MenuList = BMenu.GetMenuRootList(0); for (int i = 0; i < MenuList.Count; i++) { Menu = BMenu.GetMenuById(MenuList[i].Id.Value,AIMSExtension.PublicMethod.RoleId,1); TreeNode Node = treeView1.Nodes.Add(Menu.Id.ToString(), Menu.Name); BuildChildNode(Menu, Node); } } private void BuildChildNode(AIMSModel.Menu Menu, TreeNode ParentNode) { for (int i = 0; i < Menu.Children.Count; i++) { TreeNode Node = ParentNode.Nodes.Add(Menu.Children[i].Id.ToString(), Menu.Children[i].Name); BuildChildNode(Menu.Children[i], Node); } } private void tsbAdd_Click(object sender, EventArgs e) { _state = EditState.ADD; ControlExtension.EnabledControl(panel4,true); ControlExtension.ClearControl(panel4); foreach (ButtonItem fite in this.galleryContainer2.SubItems) { fite.Checked = false; } cboParent.Text = "无"; } private void tsbCancel_Click(object sender, EventArgs e) { ControlExtension.EnabledControl(panel4, false); ControlExtension.ClearControl(panel4); foreach (ButtonItem fite in this.galleryContainer2.SubItems) { fite.Checked = false; } this._state = EditState.BROWSE; } private void tsbModify_Click(object sender, EventArgs e) { ControlExtension.ClearControl(panel4); ControlExtension.EnabledControl(panel4, true); this._state = EditState.EDIT; if (dgvMenu.Rows.Count > 0) { MenuRowData = BMenu.GetModel(int.Parse(dgvMenu.CurrentRow.Cells["Id"].Value.ToString())); txtName.Text = MenuRowData.Name; txtPath.Text = MenuRowData.Path; if (MenuRowData.IsValid == 1) { chkIsValid.Checked = true; } else { chkIsValid.Checked = false; } if (MenuRowData.IsAloneOpen == 1) { chkIsAloneOpen.Checked = true; } else { chkIsAloneOpen.Checked = false; } intMenuOrder.Text = MenuRowData.MenuOrder.ToString(); int num = int.Parse(dgvMenu.CurrentRow.Cells["ParentIdColumn"].Value.ToString()); if (num == 0) { cboParent.Text = "无"; } else { this.cboParent.SelectedValue = num; } foreach (ButtonItem fite in this.galleryContainer2.SubItems) { fite.Checked = false; if (fite.Name == dgvMenu.CurrentRow.Cells["ImgPathColumn"].Value.ToString()) { fite.Checked = true; txtImagename.Text = dgvMenu.CurrentRow.Cells["ImgPathColumn"].Value.ToString(); picPath.Image = fite.Image; } } } } private void tsbSava_Click(object sender, EventArgs e) { ControlExtension.EnabledControl(panel4, false); if (this.ValidInput()) { AIMSModel.Menu MenuObj = new AIMSModel.Menu(); if (System.Convert.ToInt32(this.cboParent.SelectedValue) > -1) { MenuObj.ParentId = System.Convert.ToInt32(this.cboParent.SelectedValue); } else { MenuObj.ParentId = 0; } MenuObj.Name = this.txtName.Text.Trim(); MenuObj.Path = this.txtPath.Text.Trim(); MenuObj.IsValid = System.Convert.ToInt32(chkIsValid.Checked ? "1" : "0"); MenuObj.IsAloneOpen = System.Convert.ToInt32(chkIsAloneOpen.Checked ? "1" : "0"); MenuObj.ImgPath = txtImagename.Text; MenuObj.MenuOrder = System.Convert.ToInt32(intMenuOrder.Text); MenuObj.OperatorNo = AIMSExtension.PublicMethod.OperatorNo; MenuObj.OperatorName = AIMSExtension.PublicMethod.OperatorName; MenuObj.OperateDate = AIMSExtension.PublicMethod.SystemDate(); if (this._state == EditState.ADD) { BMenu.Add(MenuObj); ControlExtension.ClearControl(panel4); } if (this._state == EditState.EDIT) { if (dgvMenu.Rows.Count > 0) { MenuObj.Id = MenuRowData.Id; BMenu.Update(MenuObj); ControlExtension.ClearControl(panel4); this._state = EditState.BROWSE; } } Initial(); } } private bool ValidInput() { bool result = false; if (this.txtName.Text.Trim().Length < 1) { MessageBox.Show("请输入名称!"); } else { result = true; } return result; } private void tsbExit_Click(object sender, EventArgs e) { Close(); } } }