Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        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);
        }