private void FillTestControl(ScheduleItem item) { CreateTabControl(ServiceMainSettings.GetConfig().AddinConfigs, item, tabPage3); }
/// <summary> /// 填充某个模块对应扩展配置项面板 /// </summary> /// <param name="item"></param> private void FillExtendConfig(ScheduleItem item) { CreateTabControl(ServiceMainSettings.GetConfig().ExtendConfigs, item, tabPage2); }
private void CreateTabControl(TypeConfigurationCollection configs, ScheduleItem item, TabPage tab) { tab.Controls.Clear(); try { if (configs.ContainsKey(item.Name)) { TypeConfigurationElement typeElement = configs[item.Name]; UserControl uc = typeElement.CreateInstance() as UserControl; if (uc != null) { tab.Controls.Clear(); uc.Dock = DockStyle.Fill; tab.Controls.Add(uc); } } else tabControl1.TabPages.Remove(tab); } catch (Exception ex) { MessageBox.Show(string.Format("加载扩展配置控件失败,异常信息:{0}", ex.Message)); //移除扩展配置项 tabControl1.TabPages.Remove(tab); } }
/// <summary> /// 在右侧配置编辑区域填充配置信息 /// </summary> /// <param name="item"></param> private void FillConfigPanel(ScheduleItem item) { this.ClearCronSetCtr(); txtTitle.Text = item.Title; txtDescription.Text = item.Description; chkActive.Checked = item.Active; if (item.IsSimple) { txtStartTime.Value = item.GetStartTime(); txtRepeatInterval.Value = item.GetRepeatInterval(); } else { JobCronTriggerSetting triggerSetCtr = new JobCronTriggerSetting(); this.pnlEditBox.Controls.Add(triggerSetCtr); triggerSetCtr.Dock = DockStyle.Fill; triggerSetCtr.BringToFront(); triggerSetCtr.LoadSetting(item.CronExpression); } chkActive_CheckedChanged(null, null); //填充"扩展配置"页 FillExtendConfig(item); FillTestControl(item); }
/// <summary> /// 从配置文件中解析全部配置项 /// </summary> private void LoadConfigItems() { //读取Job定义 XmlNodeList jobNodes = _root.SelectNodes("//xx:job/xx:job-detail", _nsmsg); foreach (XmlNode jobNode in jobNodes) { string name = this.GetXmlNodeText(jobNode, "xx:name"); if (string.IsNullOrEmpty(name) == false) { string title = GetXmlNodeText(jobNode, "xx:title"); string description = GetXmlNodeText(jobNode, "xx:description"); ScheduleItem item = new ScheduleItem(name, title, description); XmlNode triggerNode = _root.SelectSingleNode(string.Format("//xx:trigger/xx:simple[xx:job-name=\"{0}\"]", name), _nsmsg); if (triggerNode != null) { item.IsSimple = true; item.StartTime = GetXmlNodeText(triggerNode, "xx:start-time"); item.EndTime = GetXmlNodeText(triggerNode, "xx:end-time"); item.RepeatCount = GetXmlNodeText(triggerNode, "xx:repeat-count"); item.RepeatInterval = GetXmlNodeText(triggerNode, "xx:repeat-interval"); this._items.Add(item); } triggerNode = _root.SelectSingleNode(string.Format("//xx:trigger/xx:cron[xx:job-name=\"{0}\"]", name), _nsmsg); if (triggerNode != null) { item.IsSimple = false; item.CronExpression = GetXmlNodeText(triggerNode, "xx:cron-expression"); this._items.Add(item); } } } }