AIMS/AIMS/DataDictionary/frmMenu.cs
2022-12-27 17:33:33 +08:00

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";
//资源图片映射
Properties.Resources res = new 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 = 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();
}
}
}