Exemplo n.º 1
0
        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...");
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public void LoadDiagram(LoadedDiagram diagram)
 {
     _view.DiagramText = BufferedClassDiagramGenerator.GetDiagramText(diagram.Diagram);
 }
Exemplo n.º 4
0
        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);
        }