public static XElement ToXml(this ISequenceDiagram sequenceDiagram) { return(new XElement("SequenceDiagram", new XElement("Lifelines", sequenceDiagram.Lifelines.Select(ToXml)), new XElement("Signals", sequenceDiagram.AllSignals().Select(ToXml)), sequenceDiagram.Root.ToXml(), new XElement("RowCount", sequenceDiagram.RowCount))); }
public SequenceDiagramVisual(IStyle style, ISequenceDiagram sequenceDiagram) : base(style) { m_SequenceDiagram = sequenceDiagram; m_GridLayout = new GridLayout(Style, sequenceDiagram.LifelineCount, sequenceDiagram.RowCount); Initialize(); }
private static Bitmap GenerateBitmap(DiagramArguments arguments, ISequenceDiagram sequenceDiagram) { IStyle style; switch (arguments.Style) { case DiagramStyle.Sketchy: style = new SketchyStyle(); break; case DiagramStyle.Classic: style = new ClassicStyle(); break; default: throw new ArgumentOutOfRangeException("style"); } if (arguments.Debug) { style = new DebugStyle(style); } var sequenceDiagramVisual = new SequenceDiagramVisual(style, sequenceDiagram); using (var measureBitmap = new Bitmap(1, 1)) using (var measureGraphics = System.Drawing.Graphics.FromImage(measureBitmap)) { var graphicContext = new GdiPlusGraphicContext(measureGraphics); sequenceDiagramVisual.Layout(graphicContext); var renderBitmap = new Bitmap( (int)Math.Ceiling(sequenceDiagramVisual.Width + 1), (int)Math.Ceiling(sequenceDiagramVisual.Height + 1)); using (var renderGraphics = System.Drawing.Graphics.FromImage(renderBitmap)) { renderGraphics.Clear(Color.White); renderGraphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; renderGraphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; renderGraphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; graphicContext = new GdiPlusGraphicContext(renderGraphics); sequenceDiagramVisual.Draw(graphicContext); } return(renderBitmap); } }
public static IEnumerable <ISignal> AllSignals(this ISequenceDiagram sequenceDiagram) { if (sequenceDiagram == null) { throw new ArgumentNullException("sequenceDiagram"); } return (sequenceDiagram .Lifelines .SelectMany(InSignals) .Union( sequenceDiagram .Lifelines .SelectMany(OutSignals))); }
private static DiagramResult CreateSequenceDiagram(DiagramArguments arguments) { ModelErrorsCollection modelErrors = new ModelErrorsCollection(); ISequenceDiagram sequenceDiagram = DiagramCreator.CreateFrom(arguments.Source, modelErrors); var diagramErrors = new List <DiagramError>(); foreach (ModelError modelError in modelErrors) { diagramErrors.Add(new DiagramError(modelError.Message, modelError.Token.Line, modelError.Token.Start, modelError.Token.Length, modelError.Token.Value)); } return(new DiagramResult( arguments, GenerateBitmap(arguments, sequenceDiagram), diagramErrors.ToArray(), sequenceDiagram.Root.Title)); }