protected virtual void OnMenuClick(XMenuInfo menuInfo, EventArgs e) { if (this.MenuClickEvent != null) { this.MenuClickEvent(menuInfo, e); } }
/// <summary> /// 菜单单击事件 /// </summary> /// <param name="menuInfo"></param> /// <param name="e"></param> protected virtual void menuFolderTool_MenuClickEvent(XMenuInfo menuInfo, EventArgs e) { try { frmBase frm = Assembly.Load(menuInfo.NameSpace).CreateInstance(menuInfo.FullAssembleName) as frmBase; if (frm == null) { XMessageBox.ShowError("该功能未实现或者实现的接口不正确!"); return; } if (menuInfo.IsDialogModel) { frm.StartPosition = FormStartPosition.CenterParent; frm.ShowDialog(); } else { this.ShowTabbedMdi(frm); } } catch (Exception ex) { XMessageBox.ShowError(ex.Message); XErrorLogTool.WriteLog(ex.ToString()); } }
/// <summary> /// 自定义修改校验 /// </summary> /// <param name="modelInfo"></param> /// <returns></returns> protected override string GetValidateUpdateCustom(XModelBase modelInfo) { string validateInfo = string.Empty; XMenuInfo menu = modelInfo as XMenuInfo; if (menu == null) { return(this.GetNotRightType()); } return(string.Empty); }
/// <summary> /// 更新操作 /// </summary> /// <param name="modelInfo">信息</param> /// <returns></returns> public override bool Update(XModelBase modelInfo) { string sql = String.Empty; XMenuInfo info = modelInfo as XMenuInfo; sql = "Update " + this.TableName + " Set GroupId='{0}',MenuName='{1}',NameSpace='{2}',ClassName='{3}',OrderIndex={4} Where ID='{5}'"; sql = string.Format(sql, info.GroupId, info.MenuName, info.NameSpace, info.ClassName, info.OrderIndex); return(this.m_DataAccess.ExecuteNonQuery(sql) > 0); }
/// <summary> /// 添加操作 /// </summary> /// <param name="modelInfo">信息</param> /// <returns></returns> public override bool Insert(XModelBase modelInfo) { string sql = String.Empty; XMenuInfo info = modelInfo as XMenuInfo; sql = "Insert Into " + this.TableName + "(ID,GroupId,MenuName,NameSpace,ClassName,OrderIndex)Values('{0}','{1}','{2}','{3}','{4}',{5})"; sql = String.Format(sql, info.ID, info.GroupId, info.MenuName, info.NameSpace, info.ClassName, info.OrderIndex); return(this.m_DataAccess.ExecuteNonQuery(sql) > 0); }
/// <summary> /// 将菜单信息类转换为菜单数据行 /// </summary> /// <param name="menuInfo"></param> /// <returns></returns> public static void MenuInfo2MenuRow(XMenuInfo menuInfo, DataRow menuRow) { menuRow["FolderName"] = menuInfo.MenuName; menuRow["FolderGroup"] = menuInfo.GroupName; menuRow["Count"] = menuInfo.Count; menuRow["FolderOrder"] = menuInfo.OrderIndex; menuRow["NameSpace"] = menuInfo.NameSpace; menuRow["ClassName"] = menuInfo.ClassName; menuRow["FullAssembleName"] = menuInfo.FullAssembleName; menuRow["IsDialogModel"] = menuInfo.IsDialogModel; }
/// <summary> /// 将数据行转换为实体 /// </summary> /// <param name="modelRow">数据行记录</param> /// <returns>实体信息</returns> protected override void DataRow2ModelBase(XModelBase modelInfo, DataRow modelRow) { XMenuInfo info = modelInfo as XMenuInfo; info.ID = XHelper.GetString(modelRow["RID"]); // info.GroupId = XHelper.GetString(modelRow["GroupId"]); // info.MenuName = XHelper.GetString(modelRow["MenuName"]); // info.NameSpace = XHelper.GetString(modelRow["AssembleName"]); // info.ClassName = XHelper.GetString(modelRow["ClassName"]); // info.OrderIndex = XHelper.GetInt(modelRow["OrderIndex"]); // info.IsDialogModel = Convert.ToBoolean(modelRow["IsDialogModel"]); // }
void grid_Click(object sender, EventArgs e) { Janus.Windows.GridEX.GridEX gridEx = sender as Janus.Windows.GridEX.GridEX; if (gridEx != null) { if (gridEx.CurrentRow != null && gridEx.CurrentRow.RowType == Janus.Windows.GridEX.RowType.Record) { DataRow currentRow = ((System.Data.DataRowView)(gridEx.CurrentRow.DataRow)).Row; XMenuInfo menuInfo = XMenuInfoTool.MenuRow2MenuInfo(currentRow); this.OnMenuClick(menuInfo, new EventArgs()); } } }
/// <summary> /// 根据创建的命令格式化操作菜单项。 /// </summary> /// <param name="moduleInfo"></param> public void RefreshToolsButtonItem(MB.Util.Model.ModuleTreeNodeInfo moduleInfo) { foreach (DevExpress.XtraBars.BarButtonItem butItem in _AllCreateButtonItems.Keys) { butItem.Enabled = true; } if (!string.IsNullOrEmpty(moduleInfo.RejectCommands)) { string[] rejects = moduleInfo.RejectCommands.Split(','); foreach (DevExpress.XtraBars.BarButtonItem butItem in _AllCreateButtonItems.Keys) { XMenuInfo menuInfo = _AllCreateButtonItems[butItem]; UICommandType cType = (UICommandType)menuInfo.CommandID.ID; if (Array.IndexOf(rejects, cType.ToString()) >= 0) { butItem.Enabled = false; } } } MB.WinBase.IFace.IForm activeForm = _CommandExecutor.HostMdiMainForm.GetActiveMdiChildForm(); if (activeForm == null) { return; } //如果是分析界面的话要屏蔽掉操作功能菜单项。 MB.WinBase.IFace.IClientRule editRule = activeForm.ClientRuleObject as MB.WinBase.IFace.IClientRule; if (editRule != null) { return; } foreach (DevExpress.XtraBars.BarButtonItem butItem in _AllCreateButtonItems.Keys) { XMenuInfo menuInfo = _AllCreateButtonItems[butItem]; var info = CommandGroups.EditCommands.FirstOrDefault(o => o.CommandID.Equals(menuInfo.CommandID)); if (info != null) { butItem.Enabled = false; continue; } if (menuInfo.CommandID.Equals(UICommands.DataImport)) { butItem.Enabled = false; continue; } } }
/// <summary> /// 获取菜单 /// </summary> /// <param name="menuInfos"></param> /// <param name="groupInfo"></param> /// <returns></returns> private IList <XMenuInfo> GetMenuInfos(IList <XModelBase> menuInfos, XMenuGroupInfo groupInfo) { IList <XMenuInfo> infos = new List <XMenuInfo>(); foreach (XModelBase menuModel in menuInfos) { XMenuInfo menuInfo = menuModel as XMenuInfo; if (menuInfo.GroupId == groupInfo.ID) { infos.Add(menuInfo); } } return(infos); }
/// <summary> /// 将菜单数据行转换为菜单信息 /// </summary> /// <param name="menuRow"></param> /// <returns></returns> public static XMenuInfo MenuRow2MenuInfo(DataRow menuRow) { XMenuInfo menuInfo = new XMenuInfo(); //menuInfo.FolderName = XHelper.GetString(menuRow["FolderName"]); //menuInfo.FolderGroup = XHelper.GetString(menuRow["FolderGroup"]); menuInfo.Count = XHelper.GetInt(menuRow["Count"]); menuInfo.OrderIndex = XHelper.GetInt(menuRow["FolderOrder"]); menuInfo.MenuName = XHelper.GetString(menuRow["FolderName"]); menuInfo.NameSpace = XHelper.GetString(menuRow["NameSpace"]); menuInfo.ClassName = XHelper.GetString(menuRow["ClassName"]); menuInfo.IsDialogModel = Convert.ToBoolean(menuRow["IsDialogModel"]); return(menuInfo); }
// void btnItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (e.Item.Tag == null) { return; } try { using (MB.WinBase.WaitCursor cursor = new MB.WinBase.WaitCursor()) { XMenuInfo menuInfo = e.Item.Tag as XMenuInfo; _CommandExecutor.ExecCommand(menuInfo.CommandID); } } catch (Exception ex) { MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex); } }
//创建一般的button 菜单。 private DevExpress.XtraBars.BarButtonItem createDefaultButtonItem(XMenuInfo menuInfo) { DevExpress.XtraBars.BarButtonItem btnItem = new DevExpress.XtraBars.BarButtonItem(); btnItem.ImageIndex = menuInfo.ImageIndex; btnItem.Caption = menuInfo.Description; btnItem.Hint = menuInfo.Description; btnItem.Tag = menuInfo; if (menuInfo.Shortcut != System.Windows.Forms.Shortcut.None) { btnItem.ItemShortcut = new DevExpress.XtraBars.BarShortcut(menuInfo.Shortcut); } btnItem.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(btnItem_ItemClick); _AllCreateButtonItems.Add(btnItem, menuInfo); return(btnItem); }
private void GetSelectedMenus(XTreeNode treeNode) { if (treeNode.Nodes.Count > 0) { //如果有子节点,则继续递归查找末级节点 foreach (XTreeNode node in treeNode.Nodes) { this.GetSelectedMenus(node); } } else { if (treeNode.Model is XMenuInfo) { XMenuInfo menuInfo = treeNode.Model as XMenuInfo; if (treeNode.Checked) { this.m_SelectedMenus.Add(menuInfo); } } } }