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); } }
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()); }
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; } }