//zhangkaijun private void BuildTabPageForOne(ResourceType _resType) { TabPage _page = new TabPage(); NeuSplitter _splitter = new NeuSplitter(); NeuPanel _panel1 = new NeuPanel(); _page.Controls.Add(_panel1); _page.Controls.Add(_splitter); _page.Name = _resType.Id; _page.Text = _resType.Name; _page.UseVisualStyleBackColor = true; _page.ImageIndex = 8; _splitter.Cursor = Cursors.HSplit; _splitter.Dock = DockStyle.Bottom; _panel1.Dock = DockStyle.Fill; NeuTreeListView _treeList = GenTreeListView(); _treeList.SmallImageList = this.imageList1; _treeList.CheckBoxes = CheckBoxesTypes.Simple; _treeList.ItemChecked += new ItemCheckedEventHandler(_treeList_ItemChecked); _resTreeListMap.Add(_resType.Id, _treeList); _panel1.Controls.Add(_treeList); this.nTabControl1.TabPages.Add(_page); }
private NeuTreeListView GenTreeListView() { NeuTreeListView _treeList = new NeuTreeListView(); System.Windows.Forms.TreeListViewItemCollection.TreeListViewItemCollectionComparer treeListViewItemCollectionComparer1 = new System.Windows.Forms.TreeListViewItemCollection.TreeListViewItemCollectionComparer(); ColumnHeader columnHeader1 = new ColumnHeader(); ColumnHeader columnHeader2 = new ColumnHeader(); ColumnHeader columnHeader3 = new ColumnHeader(); _treeList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { columnHeader2, columnHeader1, columnHeader3 }); treeListViewItemCollectionComparer1.Column = 0; treeListViewItemCollectionComparer1.SortOrder = System.Windows.Forms.SortOrder.Ascending; _treeList.Comparer = treeListViewItemCollectionComparer1; _treeList.Location = new System.Drawing.Point(-19, 47); _treeList.UseCompatibleStateImageBehavior = false; _treeList.MultiSelect = false; _treeList.HideSelection = false; _treeList.SelectedIndexChanged += new EventHandler(ResourceItem_SelectedIndexChanged); _treeList.ContextMenuStrip = this.nContextMenuStrip1; _treeList.Dock = DockStyle.Fill; columnHeader1.Text = "权限代码"; columnHeader1.Width = 200; columnHeader2.Text = "权限名称"; columnHeader2.Width = 250; columnHeader3.Text = "备注"; columnHeader3.Width = 250; return(_treeList); }
private void BuildTabPage(ResourceType _resType) { TabPage _page = new TabPage(); NeuPanel _panel = new NeuPanel(); NeuSplitter _splitter = new NeuSplitter(); NeuPanel _panel1 = new NeuPanel(); NeuGroupBox _groupBox = new NeuGroupBox(); _page.Controls.Add(_panel1); _page.Controls.Add(_splitter); _page.Controls.Add(_panel); _page.Name = _resType.Id; _page.Text = _resType.Name; _page.UseVisualStyleBackColor = true; _page.ImageIndex = 8; _panel.Dock = DockStyle.Bottom; _panel.Height = 100; _panel.Controls.Add(_groupBox); _groupBox.Text = "选择权限"; _groupBox.Dock = DockStyle.Fill; _resGroupBoxMap.Add(_resType.Id, _groupBox); _panel.Controls.Add(_groupBox); _splitter.Cursor = Cursors.HSplit; _splitter.Dock = DockStyle.Bottom; _panel1.Dock = DockStyle.Fill; NeuTreeListView _treeList = GenTreeListView(); _treeList.SmallImageList = this.imageList1; _resTreeListMap.Add(_resType.Id, _treeList); _panel1.Controls.Add(_treeList); CreateSelectOptions(_resType.Id, _groupBox); this.nTabControl1.TabPages.Add(_page); }
private void SelectOperation() { ClearSelectedOptions(); TreeNode _node = tvRole.SelectedNode; if (_node == null || _node.Tag == null) { return; } NeuTreeListView _list = _resTreeListMap[nTabControl1.SelectedTab.Name]; if (_list == null || _list.SelectedItems.Count == 0) { return; } TreeListViewItem _item = _list.SelectedItems[0]; if ((_item.Tag as Priv).Id == "root") { return; } IDictionary <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > _permissions = null; try { PrivilegeService _proxy = Common.Util.CreateProxy(); using (_proxy as IDisposable) { _permissions = _proxy.GetPermission(nTabControl1.SelectedTab.Name, (_item.Tag as Priv).Id, (_node.Tag as Role)); } } catch (Exception e) { MessageBox.Show(e.Message, "提示"); return; } if (_permissions == null || _permissions.Count == 0) { return; } foreach (KeyValuePair <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > _pair in _permissions) { foreach (Neusoft.Privilege.BizLogic.Model.Operation _opera in _pair.Value) { Control _c = _resGroupBoxMap[nTabControl1.SelectedTab.Name].Controls[_opera.Id]; if (_c != null && _c.GetType() == typeof(NeuCheckBox)) { (_c as NeuCheckBox).Checked = true; } else if (_c != null && _c.GetType() == typeof(NeuRadioButton)) { (_c as NeuRadioButton).Checked = true; } } break; } }
void SavePermission() { TreeNode _node = tvRole.SelectedNode; if (_node == null || _node.Tag == null) { MessageBox.Show("请选择待授权角色!", "提示"); return; } NeuTreeListView _list = _resTreeListMap[nTabControl1.SelectedTab.Name]; TreeListViewItem _item = null; string _permissionExp = ""; if (_resTreeListMap[nTabControl1.SelectedTab.Name].CheckBoxes != CheckBoxesTypes.Simple) { if (_list == null || _list.SelectedItems.Count == 0 || ((_list.SelectedItems[0].Tag as Priv).Id == "root")) { MessageBox.Show("请选择待授权资源!", "提示"); return; } _item = _list.SelectedItems[0]; _permissionExp = GetSelectedPermission(); if (string.IsNullOrEmpty(_permissionExp)) { MessageBox.Show("请选择操作权限!", "提示"); return; } } try { PrivilegeService _proxy = Common.Util.CreateProxy(); //全部的Res List <Neusoft.Privilege.BizLogic.Model.Priv> allRes = new List <Priv>(); //选中的Res List <Neusoft.Privilege.BizLogic.Model.Priv> res = new List <Priv>(); NFC.Management.PublicTrans.BeginTransaction(); if (_resTreeListMap[nTabControl1.SelectedTab.Name].CheckBoxes == CheckBoxesTypes.Simple) { foreach (TreeListViewItem item in _resTreeListMap[nTabControl1.SelectedTab.Name].CheckedItems) { if ((item.Tag as Priv).Id != "root") { res.Add(item.Tag as Priv); } } foreach (TreeListViewItem item in _resTreeListMap[nTabControl1.SelectedTab.Name].Items) { allRes.Add(item.Tag as Priv); SetAllRes(allRes, item.Items); } GetAllChildRole(tvRole.SelectedNode.Nodes); GetDeleteRes(res); //当角色为系统管理员时,不考虑级联删除 if ((_node.Tag as Role).Id == "roleadmin") { deleteResList = new List <Priv>(); deleteRoleList = new List <Role>(); } int rtn = _proxy.SavePermission((_node.Tag as Role), allRes, res, _permissionExp, deleteResList, deleteRoleList); NFC.Management.PublicTrans.Commit(); if (rtn == 0) { NFC.Management.PublicTrans.RollBack(); MessageBox.Show("保存失败!"); return; } } else { int rtn = _proxy.SavePermission(nTabControl1.SelectedTab.Name, (_node.Tag as Role), (_item.Tag as Priv), _permissionExp); NFC.Management.PublicTrans.Commit(); if (rtn == 0) { NFC.Management.PublicTrans.RollBack(); MessageBox.Show("保存失败!"); return; } //父级处理,太麻烦...有需求再说吧 } } catch (Exception e) { MessageBox.Show(e.Message, "提示"); return; } MessageBox.Show("保存成功!", "提示"); }