using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using ProjectBase.Controls;
using SIMDP.Model;
using SIMDP.BLL;
using ProjectBase.Data.Logs;
using SIMDP.Util;
using ProjectBase.Data.BaseDAL;
using System.Timers;
namespace SIMDP
{
public partial class FormRules : BaseDock
{
//BlRule blRule = new BlRule();
//private System.Timers.Timer timer = null;
//private int interval = 1000;
//private int count = 0;
//private delegate void winFormDelegate();
/////
///// 30s刷新一次表格
/////
//private const int timeSpan = 30;
public FormRules()
{
InitializeComponent();
}
///
/// 初始化导航控件
///
private void InitNavBarControl()
{
this.navBarControl1.Items.Clear();
this.navBarGroup1.ItemLinks.Clear();
List moRules = BLLFactory.Instance.GetAll();
foreach (MoRule item in moRules)
{
DevExpress.XtraNavBar.NavBarItem navBarItem = new DevExpress.XtraNavBar.NavBarItem();
navBarItem.Caption = item.RuleName;
navBarItem.Name = item.RuleId.ToString();
navBarItem.SmallImage = global::SIMDP.Properties.Resources.BOReport_16x16;
navBarItem.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(NavBarItem_Click);
this.navBarControl1.Items.AddRange(new DevExpress.XtraNavBar.NavBarItem[] { navBarItem });
this.navBarGroup1.ItemLinks.AddRange(new DevExpress.XtraNavBar.NavBarItemLink[] { new DevExpress.XtraNavBar.NavBarItemLink(navBarItem) });
}
if (this.navBarGroup1.ItemLinks.Count > 0)
{
this.navBarControl1.SelectedLink = this.navBarGroup1.ItemLinks[0];
}
InitControl();
}
///
/// 初始化界面右侧控件
///
private void InitControl()
{
if (this.navBarGroup1.ItemLinks.Count > 0)
{
string id = this.navBarControl1.SelectedLink.ItemName.ToString();
MoRule rule = BLLFactory.Instance.FindByID(id);
#region 刷新控件
this.label_Rules.Text = rule.RuleName + "列表:";
this.label_Rules.Visible = true;
this.gridControl_Rules.Visible = true;
#endregion
this.gridControl_Rules.DataSource = BLLFactory.Instance.AnalyzeRuleValue(rule);
this.gridControl_Rules.RefreshDataSource();
}
}
private void NavBarItem_Click(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
string id = e.Link.ItemName;
MoRule rule = BLLFactory.Instance.FindByID(id);
this.label_Rules.Text = rule.RuleName + "列表:";
this.gridControl_Rules.DataSource = BLLFactory.Instance.AnalyzeRuleValue(rule);
this.gridControl_Rules.RefreshDataSource();
}
//private void btn_Edit_Click(object sender, EventArgs e)
//{
// DataTable dt = this.gridControl_Rules.DataSource as DataTable;
// DataRowView selectRow = this.gridView_Rules.GetFocusedRow() as DataRowView;
// DataRow row = selectRow.Row;
// FormEditRuleValue editRules = new FormEditRuleValue(dt, row, "Edit");
// editRules.ShowDialog();
//}
//private void btn_Delete_Click(object sender, EventArgs e)
//{
// try
// {
// DataRowView selectRow = this.gridView_Rules.GetFocusedRow() as DataRowView;
// DataRow row = selectRow.Row;
// if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定删除选定的记录么?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
// {
// return;
// }
// DataTable dt = this.gridControl_Rules.DataSource as DataTable;
// dt.Rows.Remove(row);
// if (dt.Rows.Count == 1)
// {
// DevExpress.XtraEditors.XtraMessageBox.Show("只有一条信息,无法删除。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
// return;
// }
// string ruleValue = BLLFactory.Instance.FormRuleValue(dt);
// MoRule rule = BLLFactory.Instance.FindByID(dt.Rows[0]["RuleId"]);
// rule.RuleValue = ruleValue;
// bool flag = BLLFactory.Instance.Update(rule, dt.Rows[0]["RuleId"]);
// if (flag)
// {
// DevExpress.XtraEditors.XtraMessageBox.Show("删除成功。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
// }
// else
// {
// DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
// }
// }
// catch (Exception ex)
// {
// DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
// LogHelper.log.Error(string.Format("修改数据库rules出现错误:{0}", ex));
// }
//}
//private void btn_Add_Click(object sender, EventArgs e)
//{
// DataTable dt = this.gridControl_Rules.DataSource as DataTable;
// //BlDataPoint bl = new BlDataPoint();
// DataTable dtRule = BLLFactory.Instance.GetVar();
// if (dt.Rows.Count == dtRule.Rows.Count)
// {
// DevExpress.XtraEditors.XtraMessageBox.Show("变量都已存在,无法添加。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
// return;
// }
// FormEditRuleValue editRules = new FormEditRuleValue(dt,null, "Add");
// editRules.ShowDialog();
//}
private void menu_Refresh_Click(object sender, EventArgs e)
{
InitNavBarControl();
}
private void menu_Delete_Click(object sender, EventArgs e)
{
try
{
if (this.navBarGroup1.ItemLinks.Count <= 0)
{
DevExpress.XtraEditors.XtraMessageBox.Show("没有可删除的项。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定删除选定的项么?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
{
return;
}
string id = this.navBarControl1.SelectedLink.ItemName.ToString();
bool flag = BLLFactory.Instance.Delete(id, SysEnvironment.CurrentLoginID);
if (flag)
{
DevExpress.XtraEditors.XtraMessageBox.Show("删除成功。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
InitNavBarControl();
}
else
{
DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
LogHelper.log.Error(string.Format("删除数据库rules出现错误:{0}", ex));
}
}
private void menu_Add_Click(object sender, EventArgs e)
{
FormEditRule editRule = new FormEditRule();
editRule.saveData += new FormEditRule.save(InitNavBarControl);
editRule.ShowDialog();
}
///
/// 点击导航栏item,图标变大
///
///
///
private void navBarControl1_CustomDrawLink(object sender, DevExpress.XtraNavBar.ViewInfo.CustomDrawNavBarElementEventArgs e)
{
DevExpress.XtraNavBar.ViewInfo.NavLinkInfoArgs info = e.ObjectInfo as DevExpress.XtraNavBar.ViewInfo.NavLinkInfoArgs;
if (info.State == DevExpress.Utils.Drawing.ObjectState.Selected | info.State == DevExpress.Utils.Drawing.ObjectState.Pressed)
{
//e.Graphics.FillRectangle(Brushes.Red, e.ObjectInfo.Bounds); item背景颜色
e.Graphics.DrawImage(e.Image,info.ImageRectangle);
e.Appearance.DrawString(e.Cache, info.Link.Caption, info.CaptionRectangle);
//e.Appearance.DrawVString(e.Cache,info.Link.Caption,new Font("宋体",16),Brushes.Black,e.ObjectInfo.Bounds,StringFormat.GenericDefault,0);
e.Handled = true;
}
}
private void gridView_Rules_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
{
if (e.Column.FieldName == "Type")
{
e.DisplayText = SysEnvironment.dirType.FirstOrDefault(p => p.Key == Convert.ToInt32(e.Value)).Value;
}
}
private void menu_Edit_Click(object sender, EventArgs e)
{
string id = this.navBarControl1.SelectedLink.ItemName.ToString();
MoRule rule = BLLFactory.Instance.FindByID(id);
FormEditRule editRule = new FormEditRule();
editRule.rule = rule;
editRule.saveData += new FormEditRule.save(InitNavBarControl);
editRule.ShowDialog();
}
private void FormRules_Load(object sender, EventArgs e)
{
// this.splitContainerControl1.SplitterPosition =100;
InitNavBarControl();
//timer = new System.Timers.Timer(interval);
//timer.Elapsed += Refresh_Elapsed;
//timer.Start();
}
///
/// 定时刷新
///
///
///
//private void Refresh_Elapsed(object sender, ElapsedEventArgs e)
//{
// count++;
// if (this.chk_Refresh.Checked != true)
// {
// return;
// }
// if (count % timeSpan == 0)
// {
// if (this.InvokeRequired)
// {
// winFormDelegate mes = new winFormDelegate(InitControl);
// this.Invoke(mes, null);
// }
// else
// {
// InitControl();
// }
// count = 0;
// }
//}
}
}