public static string ConvertElement(RuleIndex index, RuleElement element) { var stringWriter = new StringWriter(); element.WriteJS(new IndentedTextWriter(stringWriter, " ")); return(stringWriter.ToString()); }
public static void Convert(RuleIndex index, TextWriter writer, ProgressDialog progress) { var converter = new Converter(index, writer); if (progress != null) { progress.SetDescription("Converting elements..."); } int max = index.Elements.Count; int pos = 0; converter.WriteGlobalPrefix(); foreach (IGrouping <string, RuleElement> ebt in index.Elements.GroupBy(e => e.Type.ToString())) { converter.WriteTypePrefix(ebt.Key); foreach (RuleElement element in ebt.OrderBy(e => e.Name.ToString())) { if (progress != null) { progress.SetProgress(pos++, max); } converter.WriteGenericRulesElement(element); } converter.WriteTypeSuffix(); } converter.WriteGlobalSuffix(); converter.WriteWarnings(); }
void SetupDocument(RuleIndex document) { this.currentDocument = document; Text = this.currentDocument.Name; this.theTree.BeginUpdate(); this.theTree.Nodes.Clear(); foreach (IGrouping <Identifier, RuleElement> g in this.currentDocument.Elements.OrderBy(e => e.Type.ToString()).GroupBy(e => e.Type)) { Identifier type = g.Key; this.theTree.Nodes.Add(new TreeNode { Text = type.ToString() + " [" + g.Count() + "]", Tag = type, Nodes = { new TreeNode { Text = "", Tag = dummyMarker } } }); } this.theTree.EndUpdate(); }
Converter(RuleIndex index, TextWriter writer) { this.index = index; this.writer = writer as IndentedTextWriter; if (this.writer == null) { this.writer = new IndentedTextWriter(writer, " "); } }
static Task <RuleIndex> StartLoadFile(string fileName, ProgressDialog dialog) { return(Task.Factory.StartNew(() => { dialog.SetDescription("Loading XML file..."); dialog.SetProgress(0, -1); XDocument document = XDocument.Load(fileName); return RuleIndex.Load(fileName, document, dialog); })); }
public static string ConvertElement(RuleIndex index, RuleElement element) { var stringWriter = new StringWriter(); var converter = new Converter(index, stringWriter); converter.WriteGlobalPrefix(); converter.WriteTypePrefix(element.Type); converter.WriteGenericRulesElement(element); converter.WriteTypeSuffix(); converter.WriteGlobalSuffix(); return(stringWriter.ToString()); }
public static void Convert(RuleIndex index, TextWriter writer) { Convert(index, writer, null); }
public static void ConvertToFiles(RuleIndex index, string outputPath, ProgressDialog progress) { if (progress != null) { progress.SetDescription("Converting elements..."); } int max = index.Elements.Count; int pos = 0; var sourceModules = new List <string>(); foreach (IGrouping <string, RuleElement> source in index.Elements.GroupBy(r => GetRealSource(r.Source))) { string sourceSegment = GetSafePathSegment(source.Key); string sourcePath = Path.Combine(outputPath, sourceSegment); if (!Directory.Exists(sourcePath)) { Directory.CreateDirectory(sourcePath); } var modules = new List <string>(); foreach (IGrouping <string, RuleElement> type in source.GroupBy(r => r.Type.ToString())) { string moduleName = type.Key; modules.Add(moduleName); string outFile = Path.Combine(sourcePath, moduleName + ".js"); using (TextWriter writer = File.CreateText(outFile)) { var converter = new Converter(index, writer); converter.WriteGlobalPrefix(); converter.WriteTypePrefix(type.Key); foreach (RuleElement element in type.OrderBy(e => e.Name.ToString())) { if (progress != null) { progress.SetProgress(pos++, max); } converter.WriteGenericRulesElement(element); } converter.WriteTypeSuffix(); converter.WriteGlobalSuffix(); converter.WriteWarnings(); } } string indexModule = Path.Combine(sourceSegment, "all"); sourceModules.Add(indexModule); string indexFile = Path.Combine(outputPath, indexModule + ".js"); using (TextWriter writer = File.CreateText(indexFile)) { var converter = new Converter(index, writer); converter.WriteIndexFile(modules); } } string masterIndex = Path.Combine(outputPath, "all.js"); using (TextWriter writer = File.CreateText(masterIndex)) { var converter = new Converter(index, writer); converter.WriteIndexFile(sourceModules); } }