261 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			261 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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<AIMSModel.Menu> 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<AIMSModel.Menu> MenuList = new List<AIMSModel.Menu>();
 | |
|             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();
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 |