Esempio 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...");
        }
Esempio n. 2
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...");
        }
Esempio n. 3
0
        public void Generate()
        {
            var model = ImageFileGenerationModel.Create(GetDiagramText(), GetDiagramName());

            var npImage = new NPlantImage(model.JavaPath, model.Invocation)
            {
                Logger = msg => EventDispatcher.Raise(new UserNotificationEvent(msg))
            };

            _view.Image = npImage.Create(model.DiagramText, model.DiagramName);
        }
Esempio 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;
        }