From b6bc9a58604aee478787104467c58c9ecc8084a1 Mon Sep 17 00:00:00 2001 From: dgis Date: Fri, 8 Jul 2016 17:21:04 +0200 Subject: [PATCH] Improve documentation and set a min width for the element with documentation. --- MainForm.Designer.cs | 22 ++++++++++---------- ReadMe.txt | 5 +++-- XSDDiagram.exe | Bin 677888 -> 678912 bytes XSDDiagramConsole.exe | Bin 5120 -> 5120 bytes XSDDiagrams/Rendering/DiagramGdiRenderer.cs | 11 +++++++++- XSDDiagrams/Rendering/DiagramItem.cs | 14 +++++++++++-- XSDDiagrams/Rendering/DiagramSvgRenderer.cs | 9 ++++++++ 7 files changed, 45 insertions(+), 16 deletions(-) diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 62a1704..e5245b7 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -248,7 +248,7 @@ namespace XSDDiagram this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.windowsExplorerRegistrationToolStripMenuItem}); this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem"; - this.toolsToolStripMenuItem.Size = new System.Drawing.Size(47, 20); + this.toolsToolStripMenuItem.Size = new System.Drawing.Size(48, 20); this.toolsToolStripMenuItem.Text = "&Tools"; // // windowsExplorerRegistrationToolStripMenuItem @@ -290,7 +290,7 @@ namespace XSDDiagram // this.nextTabToolStripMenuItem.Name = "nextTabToolStripMenuItem"; this.nextTabToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Tab))); - this.nextTabToolStripMenuItem.Size = new System.Drawing.Size(226, 22); + this.nextTabToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.nextTabToolStripMenuItem.Text = "&Next Tab"; this.nextTabToolStripMenuItem.Click += new System.EventHandler(this.nextTabToolStripMenuItem_Click); // @@ -299,7 +299,7 @@ namespace XSDDiagram this.previousTabToolStripMenuItem.Name = "previousTabToolStripMenuItem"; this.previousTabToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.Tab))); - this.previousTabToolStripMenuItem.Size = new System.Drawing.Size(226, 22); + this.previousTabToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.previousTabToolStripMenuItem.Text = "&Previous Tab"; this.previousTabToolStripMenuItem.Click += new System.EventHandler(this.previousTabToolStripMenuItem_Click); // @@ -896,14 +896,14 @@ namespace XSDDiagram this.removeAllToolStripMenuItem, this.expandOneLevelToolStripMenuItem}); this.contextMenuStripDiagram.Name = "contextMenuStripDiagram"; - this.contextMenuStripDiagram.Size = new System.Drawing.Size(265, 142); + this.contextMenuStripDiagram.Size = new System.Drawing.Size(266, 142); this.contextMenuStripDiagram.Opened += new System.EventHandler(this.contextMenuStripDiagram_Opened); // // gotoXSDFileToolStripMenuItem // this.gotoXSDFileToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Move; this.gotoXSDFileToolStripMenuItem.Name = "gotoXSDFileToolStripMenuItem"; - this.gotoXSDFileToolStripMenuItem.Size = new System.Drawing.Size(264, 22); + this.gotoXSDFileToolStripMenuItem.Size = new System.Drawing.Size(265, 22); this.gotoXSDFileToolStripMenuItem.Text = "&Goto XSD File"; this.gotoXSDFileToolStripMenuItem.Click += new System.EventHandler(this.gotoXSDFileToolStripMenuItem_Click); // @@ -911,7 +911,7 @@ namespace XSDDiagram // this.expandToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Expand; this.expandToolStripMenuItem.Name = "expandToolStripMenuItem"; - this.expandToolStripMenuItem.Size = new System.Drawing.Size(264, 22); + this.expandToolStripMenuItem.Size = new System.Drawing.Size(265, 22); this.expandToolStripMenuItem.Text = "E&xpand / Collapse [SPACE or RIGHT]"; this.expandToolStripMenuItem.Click += new System.EventHandler(this.expandToolStripMenuItem_Click); // @@ -919,20 +919,20 @@ namespace XSDDiagram // this.removeFromDiagramToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Minus; this.removeFromDiagramToolStripMenuItem.Name = "removeFromDiagramToolStripMenuItem"; - this.removeFromDiagramToolStripMenuItem.Size = new System.Drawing.Size(264, 22); + this.removeFromDiagramToolStripMenuItem.Size = new System.Drawing.Size(265, 22); this.removeFromDiagramToolStripMenuItem.Text = "&Remove From Diagram [DEL]"; this.removeFromDiagramToolStripMenuItem.Click += new System.EventHandler(this.removeFromDiagramToolStripMenuItem_Click); // // toolStripMenuItem3 // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(261, 6); + this.toolStripMenuItem3.Size = new System.Drawing.Size(262, 6); // // addAllToolStripMenuItem // this.addAllToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.PlusPlus; this.addAllToolStripMenuItem.Name = "addAllToolStripMenuItem"; - this.addAllToolStripMenuItem.Size = new System.Drawing.Size(264, 22); + this.addAllToolStripMenuItem.Size = new System.Drawing.Size(265, 22); this.addAllToolStripMenuItem.Text = "Add &All"; this.addAllToolStripMenuItem.Click += new System.EventHandler(this.toolStripButtonAddAllToDiagram_Click); // @@ -940,7 +940,7 @@ namespace XSDDiagram // this.removeAllToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Delete; this.removeAllToolStripMenuItem.Name = "removeAllToolStripMenuItem"; - this.removeAllToolStripMenuItem.Size = new System.Drawing.Size(264, 22); + this.removeAllToolStripMenuItem.Size = new System.Drawing.Size(265, 22); this.removeAllToolStripMenuItem.Text = "&Remove All"; this.removeAllToolStripMenuItem.Click += new System.EventHandler(this.toolStripButtonRemoveAllFromDiagram_Click); // @@ -948,7 +948,7 @@ namespace XSDDiagram // this.expandOneLevelToolStripMenuItem.Image = global::XSDDiagram.Properties.Resources.Expand; this.expandOneLevelToolStripMenuItem.Name = "expandOneLevelToolStripMenuItem"; - this.expandOneLevelToolStripMenuItem.Size = new System.Drawing.Size(264, 22); + this.expandOneLevelToolStripMenuItem.Size = new System.Drawing.Size(265, 22); this.expandOneLevelToolStripMenuItem.Text = "&Expand All One Level"; this.expandOneLevelToolStripMenuItem.Click += new System.EventHandler(this.expandOneLevelToolStripMenuItem_Click); // diff --git a/ReadMe.txt b/ReadMe.txt index ceb247d..7bc3694 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -121,10 +121,11 @@ TODO LIST: CHANGES: -version 1.1 (Not released yet) +version 1.1 (2016-07-08) - Fix SVG page size. - The error dialog should now appear if a local dependency cannot be loaded. - Fix the "use" field of an attribute with a reference (Thanks Christelle S.). +- I increase the minimum width of an element when showing the documentation for an easier reading (Thanks Stefan B.). version 1.0 (2016-02-28) - Add the documentation in the diagram. @@ -149,7 +150,7 @@ version 0.17 (2015-09-02) - Fix a typo with "Attributes". version 0.16 (2013-01-23) -- Fix an issue to prevent the cylcles in the imported files. +- Fix an issue to prevent the cycles in the imported files. - Add a dialog to download a xsd file with its URL. version 0.15 (2013-01-13) diff --git a/XSDDiagram.exe b/XSDDiagram.exe index 875fea9a98f3372d6c4ae8fa14fbd51ba7ccc2b0..8e040ba528d9783456fdc51c515608d1d32bafe7 100644 GIT binary patch delta 47849 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 delta 46870 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 lLEZG5wJ63VKe;qF THLs*NCVlcuju)F-IBU27fx9bk delta 119 zcmZqBXwaC@!BTVcYS_k}6gC0<_#3g`c$*wHA9i8S5bxW*i9LYP6C}$31WZ6I!^psp zp$5bp3=BcRF2O52BbXB|IC;%8YkeWN;p!HkG=sBMOlWaxQE`k*dM1#_PcF?(%_}L6 Pai2Vg diff --git a/XSDDiagrams/Rendering/DiagramGdiRenderer.cs b/XSDDiagrams/Rendering/DiagramGdiRenderer.cs index 2da0728..c1a46ae 100644 --- a/XSDDiagrams/Rendering/DiagramGdiRenderer.cs +++ b/XSDDiagrams/Rendering/DiagramGdiRenderer.cs @@ -174,7 +174,7 @@ namespace XSDDiagram.Rendering foregroundInheritPen.StartCap = LineCap.Round; foregroundInheritPen.EndCap = LineCap.Round; - bool showDocumentation = (drawingItem.Diagram.ShowDocumentation && !drawingItem.DocumentationBox.IsEmpty); + bool showDocumentation = (drawingItem.Diagram.ShowDocumentation); // && !drawingItem.DocumentationBox.IsEmpty); if (drawingItem.ChildElements.Count == 1 && !showDocumentation) { int parentMidleY = drawingItem.ScaleInt(drawingItem.Location.Y + drawingItem.Size.Height / 2); @@ -559,6 +559,15 @@ namespace XSDDiagram.Rendering Point targetPoint = basePoint + new Size(3, -3); basePoint = drawingItem.ScalePoint(basePoint); targetPoint = drawingItem.ScalePoint(targetPoint); + if (drawingItem.ItemType == DiagramItemType.group) + { + int bevel = (int)(scaledElementBox.Height * 0.30); + int groupCornerOffset = (int)((double)bevel * 0.424264068713); // 0.6/sqr(2) + basePoint.X += groupCornerOffset; + basePoint.Y -= groupCornerOffset; + targetPoint.X += groupCornerOffset; + targetPoint.Y -= groupCornerOffset; + } _graphics.DrawLine(arrowPen, basePoint, targetPoint); Point[] pathPoint = new Point[5]; diff --git a/XSDDiagrams/Rendering/DiagramItem.cs b/XSDDiagrams/Rendering/DiagramItem.cs index fb0b1f4..42af3b8 100644 --- a/XSDDiagrams/Rendering/DiagramItem.cs +++ b/XSDDiagrams/Rendering/DiagramItem.cs @@ -46,6 +46,7 @@ namespace XSDDiagram.Rendering private Rectangle _childExpandButtonBox; private Rectangle _documentationBox; private Rectangle _boundingBox; + private int _documentationMinWidth; private Diagram _diagram; private DiagramItem _parent; @@ -74,6 +75,7 @@ namespace XSDDiagram.Rendering _documentationBox = Rectangle.Empty; _childExpandButtonBox = Rectangle.Empty; _boundingBox = Rectangle.Empty; + _documentationMinWidth = 100; _size = new Size(50, 25); _margin = new Size(10, 5); _padding = new Size(10, 15); @@ -539,6 +541,7 @@ namespace XSDDiagram.Rendering int childBoundingBoxWidth = 0; if (_showChildElements) { + // Measure the children foreach (DiagramItem element in _childElements) { //MONOFIX GenerateMeasure not supported??? @@ -555,9 +558,16 @@ namespace XSDDiagram.Rendering string text = GetTextDocumentation(); if (text != null) { + if (_size.Width < _documentationMinWidth) + { + int widthOffset = _documentationMinWidth - _size.Width; + _size.Width += widthOffset; + _boundingBox.Width += widthOffset; + } + SizeF sizeF = g.MeasureString(text, DocumentationFont); double documentationWidth = Math.Max(1.0, _size.Width + _padding.Width); // * 2.0); - double documentationHeight = (Math.Ceiling(sizeF.Width / documentationWidth) + 1) * sizeF.Height; + double documentationHeight = (Math.Ceiling(sizeF.Width / documentationWidth) + 1.8) * sizeF.Height; _documentationBox = new Rectangle(new Point(0, 0), new Size((int)documentationWidth, (int)documentationHeight)); _boundingBox.Height = Math.Max(_size.Height + 2 * _padding.Height + _documentationBox.Height + 2 * _padding.Height, childBoundingBoxHeight); } @@ -583,7 +593,7 @@ namespace XSDDiagram.Rendering case DiagramAlignement.Center: _location.Y = _boundingBox.Y + (_boundingBox.Height - _size.Height) / 2; - if(_diagram.ShowDocumentation && !_documentationBox.IsEmpty) + if(_diagram.ShowDocumentation && !_documentationBox.IsEmpty) { _location.Y = _boundingBox.Y + (_boundingBox.Height - (2 * _padding.Height + _documentationBox.Height)) / 2; diff --git a/XSDDiagrams/Rendering/DiagramSvgRenderer.cs b/XSDDiagrams/Rendering/DiagramSvgRenderer.cs index 234edef..171e14c 100644 --- a/XSDDiagrams/Rendering/DiagramSvgRenderer.cs +++ b/XSDDiagrams/Rendering/DiagramSvgRenderer.cs @@ -542,6 +542,15 @@ namespace XSDDiagram.Rendering Point targetPoint = basePoint + new Size(3, -3); basePoint = drawingItem.ScalePoint(basePoint); targetPoint = drawingItem.ScalePoint(targetPoint); + if (drawingItem.ItemType == DiagramItemType.group) + { + int bevel = (int)(scaledElementBox.Height * 0.30); + int groupCornerOffset = (int)((double)bevel * 0.424264068713); // 0.6/sqr(2) + basePoint.X += groupCornerOffset; + basePoint.Y -= groupCornerOffset; + targetPoint.X += groupCornerOffset; + targetPoint.Y -= groupCornerOffset; + } SVGLine(arrowPen, basePoint, targetPoint); Point[] pathPoint = new Point[5];