internal string generateCode(XSLTTemplate template, XSLTTemplateRepository repo) { string xslCode = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"; xslCode += "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n"; xslCode += template.generateXSLTTemplateCode(); foreach (XSLTTemplate xt in repo.templates) xslCode += xt.generateXSLTTemplateCode() + "\n"; xslCode += "</xsl:stylesheet>\n"; return prettyPrinter.PrintToString(xslCode); }
public void processVisual_VisualNotationDrop(VisualElement source, DependencyObject pWindow) { if (pWindow is Mapper)//double check { (pWindow as Mapper).ReportStatusBar.ShowStatus("Mapping " + source.Data.Name + " -> " + this.Data.Name, ReportIcon.Info); XSLTTemplate tem = new XSLTTemplate(); Element header = new Element(); header.Name = source.Data.Name; tem.HeaderNode = new TreeNodeViewModel(header); tem.TemplateXmlNode = this.Data.Clone() as XmlNode; (pWindow as Mapper).NewTemplate = tem; (pWindow as Mapper).sourceData = source.Data; //for reverse this.ReverseData = source.Data.Clone() as XmlNode; this.templateVMR.TemplateName = this.Data.Name.Clone() as string; (pWindow as Mapper).NewTemplateR = this.templateVMR; (pWindow as Mapper).NewTemplateR.TemplateName = templateVMR.TemplateName.Clone() as string; //suggester initiation source.abstractTree.prepare(); this.abstractTree.prepare(); (pWindow as Mapper).mapperSuggester = new Suggester(source.abstractTree, this.abstractTree); (pWindow as Mapper).updateSuggestions((pWindow as Mapper).mapperSuggester.getSuggestionsAsStrings((pWindow as Mapper).mapperSuggester.imFeelingLucky()), false); //MessageBox.Show("Reverse Data: \n\n"+ReverseData.OuterXml); //maybe do this for source as well //make sure it does not overright the model to visualisation reverse code //move elements to Mapper rule designer (pWindow as CONVErT.Mapper).RuleDesignerCanvas.Children.Clear(); (pWindow as CONVErT.Mapper).LHS = source.Clone() as VisualElement; (pWindow as CONVErT.Mapper).RHS = this.Clone() as VisualElement; (pWindow as CONVErT.Mapper).LHS.Content = (pWindow as Mapper).renderer.render((pWindow as CONVErT.Mapper).LHS); (pWindow as CONVErT.Mapper).RHS.Content = (pWindow as Mapper).renderer.render((pWindow as CONVErT.Mapper).RHS); Canvas.SetTop((pWindow as CONVErT.Mapper).LHS, 40); Canvas.SetLeft((pWindow as CONVErT.Mapper).LHS, 40); Canvas.SetTop((pWindow as CONVErT.Mapper).RHS, 40); Canvas.SetLeft((pWindow as CONVErT.Mapper).RHS, 470); (pWindow as CONVErT.Mapper).RuleDesignerCanvas.Children.Add((pWindow as CONVErT.Mapper).LHS); (pWindow as CONVErT.Mapper).RuleDesignerCanvas.Children.Add((pWindow as CONVErT.Mapper).RHS); //log event (pWindow as Mapper).logger.log("\"" + source.Data.Name + "\" was dropped on \"" + this.Data.Name + "\"", ReportIcon.OK); (pWindow as Mapper).RuleDesignStatusBar.ShowStatus("Rule : " + source.Data.Name + " -> " + this.Data.Name, ReportIcon.Info); } }