Beispiel #1
0
        private void RegenerateSchema(IFilePresenterTab filePresenterTab)
        {
            XDocument document;
            ILog      log;

            TagClass            tag      = (TagClass)filePresenterTab.Tag;
            TranslationSettings settings = tag.settings;

            foreach (FilePresenterButtonInfo buttonInfo in filePresenterTab.FilePresenterButtons)
            {
                if (buttonInfo.ButtonName == "SA")
                {
                    settings.SchemaAware = buttonInfo.IsToggled;
                }
                if (buttonInfo.ButtonName == "F")
                {
                    settings.Functional = buttonInfo.IsToggled;
                }
            }
            settings.SubexpressionTranslations.Clear();
            settings.Retranslation = false;
            GenerateSchema(filePresenterTab.SourcePSMSchema, settings, out document, out log);
            tag.tweakingPanel.Bind(settings.SubexpressionTranslations);
            filePresenterTab.ReDisplayFile(document, EDisplayedFileType.SCH, filePresenterTab.SourcePSMSchema.Caption, log, filePresenterTab.ValidationSchema, filePresenterTab.SourcePSMSchema);
        }
        private void RegenerateSchema(IFilePresenterTab filePresenterTab)
        {
            bool xml = true;

            foreach (FilePresenterButtonInfo buttonInfo in filePresenterTab.FilePresenterButtons)
            {
                if (buttonInfo.ButtonName == "bXML")
                {
                    xml = buttonInfo.IsToggled;
                }
                if (buttonInfo.ButtonName == "bCompact")
                {
                    xml = !buttonInfo.IsToggled;
                }
            }

            if (xml)
            {
                XDocument xmlSchemaDocument;
                var       schemaGenerator = GenerateXmlSyntax(out xmlSchemaDocument, filePresenterTab.SourcePSMSchema);
                filePresenterTab.ReDisplayFile(xmlSchemaDocument, EDisplayedFileType.RNG, schemaGenerator.PSMSchema.Caption + ".rng", schemaGenerator.Log, sourcePSMSchema: schemaGenerator.PSMSchema);
            }
            else
            {
                XDocument     xmlSchemaDocument;
                var           schemaGenerator = GenerateXmlSyntax(out xmlSchemaDocument, filePresenterTab.SourcePSMSchema);
                StringBuilder sb = new StringBuilder();
                TextWriter    tw = new StringWriter(sb);
                schemaGenerator.WriteInCompactSyntax(xmlSchemaDocument, tw);
                sb.Insert(0, string.Format("# translated to compact syntax using Pantor Engineering AB's RngToRncClassic.xsl" + Environment.NewLine + Environment.NewLine));
                sb.Insert(0, string.Format("# generated by eXolutio on {0} {1} from {2}/{3}. " + Environment.NewLine,
                                           DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), filePresenterTab.SourcePSMSchema.Project.Name, filePresenterTab.SourcePSMSchema.Caption));
                filePresenterTab.ReDisplayFile(sb.ToString(), EDisplayedFileType.RNC, schemaGenerator.PSMSchema.Caption + ".rnc", schemaGenerator.Log, sourcePSMSchema: schemaGenerator.PSMSchema);
            }
        }
Beispiel #3
0
        private void GenerateAnotherFile(IFilePresenterTab filetab)
        {
            SampleDataGenerator g = new SampleDataGenerator();

            if (ScopeObject != null)
            {
                g.RootForGeneration = (PSMAssociationMember)ScopeObject;
            }
            XDocument xmlDocument = g.Translate(filetab.ValidationSchema);

            filetab.SetDocumentText(xmlDocument.ToString());
        }
Beispiel #4
0
        public override void Execute(object parameter = null)
        {
            if (Current.ActiveDiagram != null && Current.ActiveDiagram is PSMDiagram)
            {
                XDocument schematronSchemaDocument;
                ILog      log;

                TranslationSettings settings = new TranslationSettings();
                settings.Functional  = true;
                settings.SchemaAware = true;

                GenerateSchema((PSMSchema)Current.ActiveDiagram.Schema, settings, out schematronSchemaDocument, out log);

                FilePresenterButtonInfo[] additionalButtonsInfo = new[] {
                    new FilePresenterButtonInfo()
                    {
                        ButtonName = "SA", Text = "Schema aware", Icon = ExolutioResourceNames.GetResourceImageSource(ExolutioResourceNames.refresh), UpdateFileContentAction = RegenerateSchema, ToggleButton = true, IsToggled = true
                    },
                    new FilePresenterButtonInfo()
                    {
                        ButtonName = "F", Text = "Functional", Icon = ExolutioResourceNames.GetResourceImageSource(ExolutioResourceNames.refresh), UpdateFileContentAction = RegenerateSchema, ToggleButton = true, IsToggled = true
                    },
                };

                ExpressionTweakingPanel tweakingPanel = new ExpressionTweakingPanel();

                TagClass tag = new TagClass();
                tag.settings      = settings;
                tag.tweakingPanel = tweakingPanel;

                IFilePresenterTab filePresenterTab
                    = Current.MainWindow.FilePresenter.DisplayFile(schematronSchemaDocument, EDisplayedFileType.SCH, Current.ActiveDiagram.Caption + ".sch", log, sourcePSMSchema: (PSMSchema)Current.ActiveDiagram.Schema,
                                                                   additionalActions: additionalButtonsInfo, tag: tag);
                filePresenterTab.RefreshCallback += RegenerateSchema;
                if (settings.SubexpressionTranslations.TranslationOptionsWithMorePossibilities.Any())
                {
                    tweakingPanel.Bind(settings.SubexpressionTranslations);
                    tweakingPanel.FilePresenterTab = filePresenterTab;
                    filePresenterTab.DisplayAdditionalControl(tweakingPanel, "Expression Tweaking");
                    tweakingPanel.TranslationTweaked += tweakingPanel_TranslationTweaked;
                }
            }
        }
        public override void Execute(object parameter = null)
        {
            if (Current.ActiveDiagram != null && Current.ActiveDiagram is PSMDiagram)
            {
                FilePresenterButtonInfo[] additionalButtonsInfo = new[] {
                    new FilePresenterButtonInfo()
                    {
                        ButtonName = "bXML", Text = "XML Syntax", Icon = ExolutioResourceNames.GetResourceImageSource(ExolutioResourceNames.relaxNG), UpdateFileContentAction = RegenerateSchema, RadioToggleButton = true, IsToggled = true
                    },
                    new FilePresenterButtonInfo()
                    {
                        ButtonName = "bCompact", Text = "Compact Syntax", Icon = ExolutioResourceNames.GetResourceImageSource(ExolutioResourceNames.relaxNG_compact), UpdateFileContentAction = RegenerateSchema, RadioToggleButton = true, IsToggled = false
                    },
                };

                XDocument xmlSchemaDocument;
                var       schemaGenerator = GenerateXmlSyntax(out xmlSchemaDocument, (PSMSchema)Current.ActiveDiagram.Schema);

                IFilePresenterTab filePresenterTab = Current.MainWindow.FilePresenter.DisplayFile(xmlSchemaDocument, EDisplayedFileType.RNG, Current.ActiveDiagram.Caption + ".rng", schemaGenerator.Log, sourcePSMSchema: schemaGenerator.PSMSchema,
                                                                                                  additionalActions: additionalButtonsInfo);
                filePresenterTab.RefreshCallback += RegenerateSchema;
            }
        }