/// <summary> /// 菜单添加功能 /// </summary> /// <param name="menuFid"></param> /// <param name="actionFid"></param> /// <param name="clientJs"></param> /// <param name="actionOrder"></param> /// <param name="needAuth"></param> /// <param name="detailFlag"></param> /// <param name="loginUser"></param> /// <returns></returns> public bool SetMenuAction(Guid menuFid, Guid actionFid, string clientJs, int actionOrder, bool needAuth, bool detailFlag, string loginUser) { MenuActionDAL menuActionDal = new MenuActionDAL(); ///查看关系是否已存在 MenuActionInfo menuActionInfo = menuActionDal.GetInfo(menuFid, actionFid); if (menuActionInfo == null) { menuActionInfo = new MenuActionInfo(); menuActionInfo.Fid = Guid.NewGuid(); menuActionInfo.MenuFid = menuFid; menuActionInfo.ActionFid = actionFid; menuActionInfo.ClientJs = clientJs; menuActionInfo.ActionOrder = actionOrder; menuActionInfo.NeedAuth = needAuth; menuActionInfo.DetailFlag = detailFlag; menuActionInfo.ValidFlag = true; menuActionInfo.CreateDate = DateTime.Now; menuActionInfo.CreateUser = loginUser; return(menuActionDal.Add(menuActionInfo) > 0 ? true : false); } menuActionInfo.ClientJs = clientJs; menuActionInfo.ActionOrder = actionOrder; menuActionInfo.NeedAuth = needAuth; menuActionInfo.DetailFlag = detailFlag; menuActionInfo.ModifyDate = DateTime.Now; menuActionInfo.ModifyUser = loginUser; return(menuActionDal.Update(menuActionInfo) > 0 ? true : false); /// }
private async Task <ModuleAction> AddMenuAsync(string menuText) { MenuActionInfo menuInfo = await GetMenuActionAsync(menuText); menuText = menuInfo.MenuText; ModuleAction menuEntry = menuInfo.Action; ModuleAction parentAction = FindAction(_SiteMenu, menuText); if (parentAction != null) { if (parentAction.SubMenu == null) { parentAction.SubMenu = new SerializableList <ModuleAction>() { menuEntry } } ; else { parentAction.SubMenu.Add(menuEntry); } } else { _SiteMenu.Add(menuEntry); } return(menuEntry); }
/// <summary> /// Assigns the ContextMenuStrip control to the HexBox control. /// </summary> void CheckBuiltInContextMenu() { if (this.DesignMode) { return; } if (this._contextMenuStrip == null)//创建菜单 { // 添加右键 ContextMenuStrip cms = new ContextMenuStrip(); cms.Opening += new CancelEventHandler(cms_Opening); System.Windows.Controls.ContextMenu cm_wpf = new System.Windows.Controls.ContextMenu(); if (!this._hexViewer.IsUserContextMenuOverride) { // ASCII _ASCII = new ToolStripMenuItem(ASCIIMenuItemTextInternal, CutMenuItemImage, new EventHandler(ASCII_Click)); cms.Items.Add(_ASCII); System.Windows.Controls.MenuItem ascii_mi_wpf = new System.Windows.Controls.MenuItem(); ascii_mi_wpf.Header = ASCIIMenuItemTextInternal; ascii_mi_wpf.Click += new System.Windows.RoutedEventHandler(ASCII_Click); cm_wpf.Items.Add(ascii_mi_wpf); // UTF8 _UTF8 = new ToolStripMenuItem(UTF8MenuItemTextInternal, CutMenuItemImage, new EventHandler(UTF8_Click)); cms.Items.Add(_UTF8); System.Windows.Controls.MenuItem utf8_mi_wpf = new System.Windows.Controls.MenuItem(); utf8_mi_wpf.Header = UTF8MenuItemTextInternal; utf8_mi_wpf.Click += new System.Windows.RoutedEventHandler(UTF8_Click); cm_wpf.Items.Add(utf8_mi_wpf); // Unicode _Unicode = new ToolStripMenuItem(UnicodeMenuItemTextInternal, CutMenuItemImage, new EventHandler(Unicode_Click)); cms.Items.Add(_Unicode); System.Windows.Controls.MenuItem unicode_mi_wpf = new System.Windows.Controls.MenuItem(); unicode_mi_wpf.Header = UnicodeMenuItemTextInternal; unicode_mi_wpf.Click += new System.Windows.RoutedEventHandler(Unicode_Click); cm_wpf.Items.Add(unicode_mi_wpf); // Big5 _Big5 = new ToolStripMenuItem(Big5MenuItemTextInternal, CutMenuItemImage, new EventHandler(Big5_Click)); cms.Items.Add(_Big5); System.Windows.Controls.MenuItem big5_mi_wpf = new System.Windows.Controls.MenuItem(); big5_mi_wpf.Header = Big5MenuItemTextInternal; big5_mi_wpf.Click += new System.Windows.RoutedEventHandler(Big5_Click); cm_wpf.Items.Add(big5_mi_wpf); // Gb2312 _Gb2312 = new ToolStripMenuItem(Gb2312MenuItemTextInternal, CutMenuItemImage, new EventHandler(Gb2312_Click)); cms.Items.Add(_Gb2312); System.Windows.Controls.MenuItem gb2312_mi_wpf = new System.Windows.Controls.MenuItem(); gb2312_mi_wpf.Header = Gb2312MenuItemTextInternal; gb2312_mi_wpf.Click += new System.Windows.RoutedEventHandler(Gb2312_Click); cm_wpf.Items.Add(gb2312_mi_wpf); /*// Base64 * _Base64 = new ToolStripMenuItem(Base64MenuItemTextInternal, CutMenuItemImage, new EventHandler(Base64_Click)); * cms.Items.Add(_Base64); * // ☆★☆★☆★☆★Base64应该是一个加密方式,不是编码方式。不应该出现在这里的。暂时注释掉这个菜单按钮。 * System.Windows.Controls.MenuItem base64_mi_wpf = new System.Windows.Controls.MenuItem(); * base64_mi_wpf.Header = Base64MenuItemTextInternal; * base64_mi_wpf.Click += new System.Windows.RoutedEventHandler(Base64_Click); * cm_wpf.Items.Add(base64_mi_wpf);*/ // Copy _copyToolStripMenuItem = new ToolStripMenuItem(CopyMenuItemTextInternal, CopyMenuItemImage, new EventHandler(CopyMenuItem_Click)); cms.Items.Add(_copyToolStripMenuItem); System.Windows.Controls.MenuItem copy_mi_wpf = new System.Windows.Controls.MenuItem(); copy_mi_wpf.Header = CopyMenuItemTextInternal; copy_mi_wpf.Click += new System.Windows.RoutedEventHandler(CopyMenuItem_Click); cm_wpf.Items.Add(copy_mi_wpf); // _pasteToolStripMenuItem = new ToolStripMenuItem(PasteMenuItemTextInternal, PasteMenuItemImage, new EventHandler(PasteMenuItem_Click)); // cms.Items.Add(_pasteToolStripMenuItem); // SelectAll _selectAllToolStripMenuItem = new ToolStripMenuItem(SelectAllMenuItemTextInternal, SelectAllMenuItemImage, new EventHandler(SelectAllMenuItem_Click)); cms.Items.Add(_selectAllToolStripMenuItem); System.Windows.Controls.MenuItem selectall_mi_wpf = new System.Windows.Controls.MenuItem(); selectall_mi_wpf.Header = SelectAllMenuItemTextInternal; selectall_mi_wpf.Click += new System.Windows.RoutedEventHandler(SelectAllMenuItem_Click); cm_wpf.Items.Add(selectall_mi_wpf); cms.Items.Add(new ToolStripSeparator()); } if (this._hexBox != null && this._hexViewer.ContextMenuActions != null) { for (int i = 0; i < this._hexViewer.ContextMenuActions.Count; ++i) { MenuActionInfo info = this._hexViewer.ContextMenuActions[i]; System.Windows.Controls.MenuItem item = new System.Windows.Controls.MenuItem(); item.Header = info.Header; item.Click += new System.Windows.RoutedEventHandler((s, e) => { info.DoOnClick(this._hexViewer, e); }); cm_wpf.Items.Add(item); } cms.Opening += new CancelEventHandler(BuildInContextMenuStrip_Opening); this._hexViewer.ContextMenu = cm_wpf; } _contextMenuStrip = cms; } if (this._hexBox.ByteProvider == null && this._hexBox.ContextMenuStrip != null) { this._hexBox.ContextMenuStrip = null; } else if (this._hexBox.ByteProvider != null && this._hexBox.ContextMenuStrip == null) { this._hexBox.ContextMenuStrip = _contextMenuStrip; } }
/// <summary> /// 只获取弹出窗体的授权动作 /// </summary> /// <param name="menuFid"></param> /// <param name="roleFid"></param> /// <param name="entityName"></param> /// <param name="formEditWidth"></param> /// <param name="formEditHeight"></param> /// <param name="formUrl"></param> /// <returns></returns> public List <ActionInfo> GetFormActions(Guid menuFid, Guid roleFid, string entityName, out int formEditWidth, out int formEditHeight, out string formUrl) { ///out默认值 formEditWidth = 800; formEditHeight = 480; formUrl = string.Empty; ///弹出窗体,在菜单管理中限制同级菜单名称不能重复 MenuInfo formMenuInfo = new MenuDAL().GetInfo(entityName, menuFid); if (formMenuInfo == null) { throw new Exception("MC:0x00000028");///菜单数据错误 } ///窗体属性 formEditWidth = formMenuInfo.EditFormWidth.GetValueOrDefault(); formEditHeight = formMenuInfo.EditFormHeight.GetValueOrDefault(); formUrl = formMenuInfo.LinkUrl; ///所有按钮,后期按MENU_FID区分 List <MenuActionInfo> menuAtions = dal.GetList("[MENU_FID] = N'" + formMenuInfo.Fid.GetValueOrDefault() + "'", string.Empty); ///无按钮 if (menuAtions.Count == 0) { return(new List <ActionInfo>()); } ///不需要授权页面按钮的FID List <Guid> menuActionFids = menuAtions.Where(d => !d.NeedAuth.GetValueOrDefault()).Select(d => d.Fid.GetValueOrDefault()).ToList(); ///获取已授权的按钮GUID List <Guid> sourceFids = new RoleAuthDAL().GetAuthSourceFidsByRoleFidAuthTypeInSourceFids(roleFid , (int)AuthTypeConstants.ACTION///授权类型为按钮 , menuAtions.Count(d => d.NeedAuth.GetValueOrDefault()) == 0 ? string.Empty : "'" + string.Join("','", menuAtions.Where(d => d.NeedAuth.GetValueOrDefault()).Select(d => d.Fid.GetValueOrDefault()).ToArray()) + "'"); ///可以显示的页面按钮 menuActionFids.AddRange(sourceFids); if (menuActionFids.Count == 0) { return(new List <ActionInfo>()); } ///获取所有的动作按钮 List <ActionInfo> actionList = new ActionDAL().GetList("[FID] in ('" + string.Join("','", menuAtions.Where(d => menuActionFids.Contains(d.Fid.GetValueOrDefault())).Select(d => d.ActionFid.GetValueOrDefault()).ToArray()) + "')", string.Empty); List <ActionInfo> actionInfos = new List <ActionInfo>(); foreach (var menuActionFid in menuActionFids) { MenuActionInfo menuActionInfo = menuAtions.FirstOrDefault(d => d.Fid.GetValueOrDefault() == menuActionFid); if (menuActionInfo == null) { continue; } ActionInfo actionInfo = actionList.FirstOrDefault(d => d.Fid.GetValueOrDefault() == menuActionInfo.ActionFid.GetValueOrDefault()).Clone(); if (actionInfo == null) { continue; } actionInfo.IsListAction = false; actionInfo.DisplayOrder = menuActionInfo.ActionOrder.GetValueOrDefault(); actionInfo.ClientJs = menuActionInfo.ClientJs; actionInfo.Fid = menuActionInfo.Fid; actionInfo.DetailFlag = menuActionInfo.DetailFlag.GetValueOrDefault(); actionInfos.Add(actionInfo); } return(actionInfos.OrderBy(d => d.DisplayOrder).ToList()); }
public long InsertInfo(MenuActionInfo info) { info.ValidFlag = true; return(dal.Add(info)); }