/// <summary> /// Initializes manager. /// </summary> /// <param name="pdBrowser">The pd browser.</param> /// <param name="assemblyBrowser">The assembly browser.</param> /// <param name="schemaBrowser">The schema browser.</param> /// <param name="projectBrowser">The project browser.</param> /// <param name="fileTabControl">The file tab control.</param> /// <param name="propertyGrid">The property grid.</param> /// <param name="errorViewer">The error viewer.</param> public void Initialize(IFormMain form, PDBrowser pdBrowser, AssemblyBrowser assemblyBrowser, SchemaBrowser schemaBrowser, GeneratorProjectBrowser projectBrowser, IFileTabControl fileTabControl, PropertyGrid propertyGrid, IErrorViewer errorViewer ) { _form = form; _pdManager.Browser = pdBrowser; _pdManager.FileTabs = fileTabControl; _pdManager.ProjectBrowser = projectBrowser; _pdManager.ErrorViewer = errorViewer; _assemblyManager.Browser = assemblyBrowser; _assemblyManager.FileTabs = fileTabControl; _assemblyManager.ProjectBrowser = projectBrowser; _assemblyManager.ErrorViewer = errorViewer; _schemaManager.Browser = schemaBrowser; _schemaManager.FileTabs = fileTabControl; _schemaManager.ProjectBrowser = projectBrowser; _schemaManager.ErrorViewer = errorViewer; if (propertyGrid != null) { _propertyGrid = propertyGrid; projectBrowser.AfterSelect += new EventHandler(Browsers_AfterSelect); schemaBrowser.AfterSelect += new EventHandler(Browsers_AfterSelect); assemblyBrowser.AfterSelect += new EventHandler(Browsers_AfterSelect); } }
private static void OnAdornerSiteChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { IErrorViewer errorViewer = e.NewValue as IErrorViewer; if (errorViewer != null) { errorViewer.SetElement(d); } }
public bool Validate(GraduationPlanInfo info, IErrorViewer responseViewer) { _OneTimeOneCheck.WaitOne(); bool pass = true; try { if (!_PassedList.Contains(info)) { _Editor.SetSource(info.GraduationPlanElement); pass &= _Editor.IsValidated; pass &= _Editor.GetSource().SelectNodes("Subject").Count == info.GraduationPlanElement.SelectNodes("Subject").Count; if (pass) { foreach (XmlNode var in _Editor.GetSource().SelectNodes("Subject")) { XmlElement subject1 = (XmlElement)var; XmlElement subject2 = (XmlElement)info.GraduationPlanElement.SelectSingleNode("Subject[@SubjectName='" + subject1.GetAttribute("SubjectName") + "' and @Level='" + subject1.GetAttribute("Level") + "']"); if (subject2 != null) { foreach (XmlAttribute attributeInfo in subject1.Attributes) { if (subject1.GetAttribute(attributeInfo.Name) != subject2.GetAttribute(attributeInfo.Name)) { pass = false; break; } } } else { pass = false; break; } } } if (pass) { _PassedList.Add(info); } } if (pass) { foreach (IValidater <GraduationPlanInfo> extendValidater in _ExtendValidater) { pass &= extendValidater.Validate(info, responseViewer); } } else { if (responseViewer != null) { responseViewer.SetMessage("課程規畫表:\"" + info.Name + "\"驗證失敗"); } pass = false; } _OneTimeOneCheck.Set(); } catch (Exception ex) { if (responseViewer != null) { responseViewer.SetMessage("課程規畫表:\"" + info.Name + "\"在驗證過程中發生未預期錯誤"); } BugReporter.ReportException("SmartSchool", CurrentUser.Instance.SystemVersion, ex, false); _OneTimeOneCheck.Set(); return(false); } return(pass); }