private void RunGenerateDiagramImagesStage(FileSystemInfo outputDirectory, IEnumerable <DiscoveredDiagram> diagrams, IRunnerRecorder recorder) { recorder.Log("Starting Stage: Diagram Rendering (output={0})...".FormatWith(outputDirectory.FullName)); foreach (var diagram in diagrams) { var text = BufferedClassDiagramGenerator.GetDiagramText(diagram.Diagram); var javaPath = _options.JavaPath ?? "java.exe"; var plantUml = _options.PlantUml ?? Assembly.GetExecutingAssembly().Location; var npImage = new NPlantImage(javaPath, new PlantUmlInvocation(plantUml)) { Logger = recorder.Log }; var image = npImage.Create(text, diagram.Diagram.Name); if (image != null) { string dir = outputDirectory.FullName; dir = Categorize(diagram, dir); var fileName = diagram.Diagram.Name.ReplaceIllegalPathCharacters('_'); image.SaveNPlantImage(dir, fileName); } } recorder.Log("Finished Stage: Diagram Rendering..."); }
public override int Run() { this.Jar = SetupPlantUml(this.Jar); var models = this.DiscoveredDiagrams(this.Assembly, this.Filter).Select(x => { string diagramText = BufferedClassDiagramGenerator.GetDiagramText(x.Diagram); return(new ImageFileGenerationModel(diagramText, x.Diagram.Name, this.GetJavaPath(this.Java), this.Jar)); }); WriteDiagramsToDisk(models, this.Format, this.Output); return(0); }
public void LoadDiagram(LoadedDiagram diagram) { _view.DiagramText = BufferedClassDiagramGenerator.GetDiagramText(diagram.Diagram); }
static int Main(string[] args) { try { var arguments = new CommandLineArgs(args); string jarPath = arguments.Jar; if (jarPath.IsNullOrEmpty()) { jarPath = PlantUmlJarExtractor.TryExtractTo(ConsoleEnvironment.ExecutionDirectory); } if (arguments.Debugger) { Debugger.Launch(); Debugger.Break(); } var assemblyLoader = new NPlantAssemblyLoader(); Assembly assembly = assemblyLoader.Load(arguments.Assembly); var diagramLoader = new NPlantDiagramLoader(); var diagrams = diagramLoader.Load(assembly); IEnumerable <DiscoveredDiagram> matchingDiagrams = diagrams; if (!arguments.Diagram.IsNullOrEmpty()) { matchingDiagrams = matchingDiagrams.Where(diagram => diagram.Diagram.Name.StartsWith(arguments.Diagram)); } foreach (var matchingDiagram in matchingDiagrams) { if (string.IsNullOrEmpty(arguments.Output)) { Con.WriteLine(" {0}", matchingDiagram.Diagram.Name); } else { string diagramText = BufferedClassDiagramGenerator.GetDiagramText(matchingDiagram.Diagram); ImageFileGenerationModel model = new ImageFileGenerationModel(diagramText, matchingDiagram.Diagram.Name, arguments.Java, jarPath); DirectoryInfo outputDirectory = new DirectoryInfo(arguments.Output); if (!outputDirectory.Exists) { outputDirectory.Create(); } string path = Path.Combine(outputDirectory.FullName, string.Format("{0}.{1}", model.DiagramName, arguments.Format)); ImageFormat format = arguments.GetImageFormat(); if (format == null) { File.WriteAllText(path, diagramText); } else { NPlantImage nplantImage = new NPlantImage(model.JavaPath, model.Invocation); Image image = nplantImage.Create(model.DiagramText, model.DiagramName); image.Save(path, format); } } } return(0); } catch (ConsoleUsageException usageException) { Con.WriteLine("Fatal Error:"); Con.WriteLine(usageException.Message); Con.WriteLine(); Con.WriteLine("NPlant.Console.exe Usage"); Con.WriteLine("------------------------"); } catch (Exception consoleException) { Con.WriteLine("Fatal Error:"); Con.WriteLine(consoleException); } return(1); }