-
Notifications
You must be signed in to change notification settings - Fork 78
Expand file tree
/
Copy pathEmployeeListForm.cs
More file actions
67 lines (66 loc) · 2.87 KB
/
Copy pathEmployeeListForm.cs
File metadata and controls
67 lines (66 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Security;
using DevExpress.Xpo;
using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Views.Grid;
using BusinessObjectsLibrary.BusinessObjects;
namespace WindowsFormsApplication {
public partial class EmployeeListForm : DevExpress.XtraBars.Ribbon.RibbonForm {
private IObjectSpace securedObjectSpace;
private SecurityStrategyComplex security;
private IObjectSpaceProvider objectSpaceProvider;
private RepositoryItemProtectedContentTextEdit protectedContentTextEdit;
public EmployeeListForm() {
InitializeComponent();
}
private void EmployeeListForm_Load(object sender, EventArgs e) {
security = ((MainForm)MdiParent).Security;
objectSpaceProvider = ((MainForm)MdiParent).ObjectSpaceProvider;
securedObjectSpace = objectSpaceProvider.CreateObjectSpace();
employeeBindingSource.DataSource = securedObjectSpace.GetObjects<Employee>();
newBarButtonItem.Enabled = security.CanCreate<Employee>();
protectedContentTextEdit = new RepositoryItemProtectedContentTextEdit();
}
private void GridView_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) {
string fieldName = e.Column.FieldName;
object targetObject = employeeGridView.GetRow(e.RowHandle);
if (!security.CanRead(targetObject, fieldName)) {
e.RepositoryItem = protectedContentTextEdit;
}
}
private void CreateDetailForm(Employee employee = null) {
EmployeeDetailForm detailForm = new EmployeeDetailForm(employee);
detailForm.MdiParent = MdiParent;
detailForm.WindowState = FormWindowState.Maximized;
detailForm.Show();
detailForm.FormClosing += DetailForm_FormClosing;
}
private void DetailForm_FormClosing(object sender, FormClosingEventArgs e) {
XPBaseCollection collection = (XPBaseCollection)employeeBindingSource.DataSource;
collection.Reload();
}
private void EmployeeGridView_RowClick(object sender, RowClickEventArgs e) {
if(e.Clicks == 2) {
EditEmployee();
}
}
private void EmployeeGridView_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e) {
deleteBarButtonItem.Enabled = security.CanDelete(e.Row);
}
private void NewBarButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
CreateDetailForm();
}
private void DeleteBarButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
object cellObject = employeeGridView.GetRow(employeeGridView.FocusedRowHandle);
securedObjectSpace.Delete(cellObject);
securedObjectSpace.CommitChanges();
}
private void EditBarButtonItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
EditEmployee();
}
private void EditEmployee() {
Employee employee = employeeGridView.GetRow(employeeGridView.FocusedRowHandle) as Employee;
CreateDetailForm(employee);
}
}
}