Пример #1
0
        public PartialViewResult CopyLanguage(ModelingLanguage language, Guid idLanguage)
        {
            try
            {
                var languageToCopy = DbFactory.ModelingLanguageRepository.FirstById(idLanguage);

                var designer = LoginUtils.Designer;
                language.Inactive     = false;
                language.IsConstant   = false;
                language.Designer     = designer;
                language.RegisterDate = DateTime.Now;
                language.Version      = languageToCopy.Version;
                language.Description += "\n [Copied from: " + languageToCopy.Name + "]";

                language = DbFactory.ModelingLanguageRepository.Save(language);

                var tempElements = new List <ModelingLanguageElement>();
                foreach (var elementToCopy in languageToCopy.Elements.OrderBy(o => o.ParentElement != null))
                {
                    ModelingLanguageElement parentElement = null;
                    if (elementToCopy.ParentElement != null)
                    {
                        parentElement = tempElements.FirstOrDefault(f => f.Metamodel == elementToCopy.ParentElement.Metamodel);
                    }

                    var element = new ModelingLanguageElement()
                    {
                        Name          = elementToCopy.Name,
                        Description   = elementToCopy.Description,
                        Metamodel     = elementToCopy.Metamodel,
                        Language      = language,
                        ParentElement = parentElement
                    };

                    element = DbFactory.ModelingLanguageElementRepository.Save(element);

                    tempElements.Add(element);
                }

                var languages = DbFactory.ModelingLanguageRepository.FindAllLanguagesByDesigner(designer, false);

                return(PartialView("_TblLanguages", languages));
            }
            catch (Exception ex)
            {
                return(PartialView("Error", new HandleErrorInfo(ex, "Configuration", "SaveLanguage")));
            }
        }
Пример #2
0
        public PartialViewResult SaveLanguage(ModelingLanguage language)
        {
            try
            {
                var designer = LoginUtils.Designer;

                language.Inactive     = false;
                language.IsConstant   = false;
                language.Designer     = designer;
                language.RegisterDate = DateTime.Now;
                DbFactory.ModelingLanguageRepository.Save(language);

                var languages = new List <ModelingLanguage> {
                    language
                };

                return(PartialView("_TblLanguages", languages));
            }
            catch (Exception ex)
            {
                return(PartialView("Error", new HandleErrorInfo(ex, "Configuration", "SaveLanguage")));
            }
        }
Пример #3
0
 public Compiler(ModelingLanguage ModelingLanguage, Project project, SchematixCore core)
 {
     this.project = project;
     this.core    = core;
     LoadCompiler(ModelingLanguage);
 }
Пример #4
0
        /// <summary>
        /// Выполнение инициализации компилятора
        /// </summary>
        /// <param name="ModelingLanguage"></param>
        private void LoadCompiler(ModelingLanguage ModelingLanguage)
        {
            switch (ModelingLanguage)
            {
            case ModelingLanguage.VHDL_GHDL:
                compiler = new GHDLCompiler();
                break;

            case ModelingLanguage.VHDL:
            {
                Schematix.Core.UserControls.ProgressWindow.Window.RunProcess(
                    new MyBackgroundWorker(
                        new Action(() =>
                    {
                        try
                        {
                            // Start process
                            compiler = new VHDLCompiler(SchematixCore.ProcessDirectory);
                            compiler.CollectionChangedEvent += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(messages_CollectionChanged);
                            PrepareCompilator();
                            UpdateFileList();
                        }
                        catch (Exception ex)
                        {
                            Schematix.Core.Logger.Log.Error("Load compile error.", ex);
                            MessageBox.Show(string.Format("Load compile error. Message: {0}", ex.Message), "Error :(", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        catch
                        {
                            MessageBox.Show("Some Error");
                        }
                    }),
                        new Action(() =>
                    {
                    }), "Initializing Compiler for VHDL..."));
            }
            break;

            case ModelingLanguage.VHDL_Combined:
            {
                Schematix.Core.UserControls.ProgressWindow.Window.RunProcess(
                    new MyBackgroundWorker(
                        new Action(() =>
                    {
                        try
                        {
                            // Start process
                            compiler = new CombinedCompiler(SchematixCore.ProcessDirectory);
                            compiler.CollectionChangedEvent += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(messages_CollectionChanged);
                            PrepareCompilator();
                            UpdateFileList();
                        }
                        catch (Exception ex)
                        {
                            Schematix.Core.Logger.Log.Error("Load compile error.", ex);
                            MessageBox.Show(string.Format("Load compile error. Message: {0}", ex.Message), "Error :(", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        catch
                        {
                            MessageBox.Show("Some Error");
                        }
                    }),
                        new Action(() =>
                    {
                    }), "Initializing Compiler for VHDL..."));
            }
            break;

            case ModelingLanguage.Verilog:
                throw new Exception("This Compiler Doe's not support yet");

            case ModelingLanguage.SystemC:
                throw new Exception("This Compiler Doe's not support yet");
            }
        }
Пример #5
0
 public Compiler(ModelingLanguage ModelingLanguage, Project project)
     : this(ModelingLanguage, project, SchematixCore.Core)
 {
 }