SourceCode/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.cs

109 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
namespace WinApp
{
public partial class frmAssignmentSelect : Form
{
Group _grp;
FolderTreeNode _topnode;
public frmAssignmentSelect(Group grp)
{
InitializeComponent();
_grp = grp;
this.Text = grp.GroupName + " Assignments";
//_grp.BeginEdit();// Push
_topnode = FolderTreeNode.BuildTreeList();
tvFolder.Nodes.Add(_topnode);
tvFolder.Nodes[0].Expand();
roleInfoListBindingSource.DataSource = RoleInfoList.Get();
//Initialize cmbRoles
if (grp.GroupAssignments.Count > 0)
{
int rid = grp.GroupAssignments[0].RID;
cmbRoles.SelectedValue = rid;
SetupFolders(rid);
}
}
private void BeforeFormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = (SaveAsNeeded() == DialogResult.Cancel);
}
private DialogResult SaveAsNeeded()
{
return DialogResult.Yes;
}
private void btnOK_Click(object sender, EventArgs e)
{
// This should save the changes to _grp.GroupAssignments
_grp.ApplyEdit(); //Apply
}
private void btnCancel_Click(object sender, EventArgs e)
{
// This should throw away any changes to _grp.GroupAssignments
_grp.CancelEdit();// Pop
}
private void btnRoles_Click(object sender, EventArgs e)
{
// TODO: Maybe should not be able to do this if unsaved data
frmRoles fr = new frmRoles();
fr.ShowDialog();
roleInfoListBindingSource.DataSource = RoleInfoList.Get();
}
private void tvFolder_BeforeCheck(object sender, TreeViewCancelEventArgs e)
{
if(!bSetup)
{
FolderTreeNode ftn = (FolderTreeNode)e.Node;
if (!ftn.Checked)
{
MessageBox.Show("Conversion Error");
//_grp.GroupAssignments.Add(int.Parse(cmbRoles.SelectedValue.ToString()), ftn.FolderInfo.FolderID);
}
else
{
MessageBox.Show("Conversion Error");
//TODO: KBR _grp.GroupAssignments.Remove(ftn.FolderInfo.FolderID, int.Parse(cmbRoles.SelectedValue.ToString()));
}
}
}
private void cmbRoles_SelectedValueChanged(object sender, EventArgs e)
{
if (cmbRoles.SelectedIndex >= 0)
{
int rid = int.Parse(cmbRoles.SelectedValue.ToString());
SetupFolders(rid);
}
}
private bool bSetup = false;
private void ResetTree(TreeNodeCollection tc)
{
foreach(TreeNode tn in tc)
{
tn.Checked=false;
if(tn.Nodes != null)ResetTree(tn.Nodes);
}
}
private void SetupFolders(int rid)
{
bSetup=true;
ResetTree(tvFolder.Nodes);
foreach(GroupAssignment ga in _grp.GroupAssignments)
{
if (ga.RID == rid)
_topnode.FindTreeNode(ga.FolderID).Checked = true;
}
bSetup=false;
}
}
}