GoDiagram Change Log
Version: 10.1.0
We maintain a GitHub Repository, which you can star to follow version updates. We also notify of
changes on Twitter.
GoDiagram 10.1
New Layered Digraph Layout Option for Better Performance
Version 10.1 adds LayeredDigraphLayout.AlignOption as a potentially faster alternative to LayeredDigraphLayout.PackOption. When using this
option, nodes are assigned coordinates within their layers to produce straighter paths of nodes and small edge lengths.
Viewport Layers
There are two new default layers in each Diagram, "ViewportBackground"
and "ViewportForeground"
. These layers have the new property
Layer.IsViewportAligned set to true
. Parts in viewport aligned layers will not obey the Diagram.Position or
Diagram.Scale properties, so as the user scrolls or pans or zooms they will remain fixed in the viewport.
Layers with Layer.IsViewportAligned set to true
will automatically position and scale their Parts to be relative to the viewport, based on
the Part's GraphObject.Alignment and GraphObject.AlignmentFocus values, not on its Part.Location or GraphObject.Position.
Other New Features
-
Added methods GraphObject.BindModel, GraphObject.BindElement, and GraphObject.BindTwoWay, as convenience functions for adding a Binding
to a GraphObject, which additionally call Binding.OfModel, Binding.OfElement, and Binding.MakeTwoWay, respectively.
-
Added static functions Point.StringifyFixed, Size.StringifyFixed, Rect.StringifyFixed, Margin.StringifyFixed,
Spot.StringifyFixed, and Geometry.StringifyFixed to produce Binding.BackConverters that reduce the size of the output JSON and to make
it easier to read and compare.
-
Added the read-only property Node.IsTreeRoot as a quick way to decide whether a node is a "root" node, while ignoring links that are not
Link.IsTreeLink, ignoring reflexive links, and considering Diagram.IsTreePathToChildren.
-
Added the property LinkReshapingTool.ResegmentingDistance, to control the distance from a straight line that two adjacent nearly straight segments
should be combined into a single segment.
- We have fixed the behavior of CommandHandler.SelectAll not to select Parts/Nodes/Links that are not selectable.
- GoDiagram now targets .NET 8 (and .NET Framework 4.6.2) as .NET 6 is no longer supported.
Older changes
Changes for 10.0.12
Changes for 10.0.11
- Updated license agreement.
Changes for 10.0.10
Changes for 10.0.9
Changes for 10.0.8
- Fixed initialization logic for Palette and Overview to avoid extra constructor calls.
- Updated LayeredDigraphLayout to gracefully handle links with no points.
Changes for 10.0.7
- Improved memory handling.
Changes for 10.0.6
- Documentation updates only.
Changes for 10.0.5
- Improved equality checking for Brushes.
Changes for 10.0.4
- Added the ability to use TTF fonts by specifying a family ending with '.ttf' when constructing a Font.
Changes for 10.0.3
- Point.IntersectingLineSegments now tests for collapsed lines.
- Fixed updating the cursor when dragging after possibly auto-scrolling.
- Fixed Overview drawing when the scale is very small.
- Fixed an animation issue with collapsed links incorrectly saving nested routes that were no longer valid.
- Fixed updating other links' JumpOver or JumpGap rendering when a link changes visibility.
-
Elements of Spot Panels that have a GraphObject.Stretch set and have a negative GraphObject.Margin value will expand beyond their stretch size
by that margin value.
Changes for 10.0.2
- Pictures with SVG sources now scale appropriately, maintaining image quality.
- Improved Link.MakeGeometry so that overrides do not need to test for situations where a Link has fewer than two points.
- Improved shadows when Diagram and Part are scaled.
-
Improved LinkingTool.DoActivate to assign the location of the LinkingBaseTool.TemporaryToNode (or the
LinkingBaseTool.TemporaryFromNode, if drawing a link in the reverse direction) so as to avoid momentarily seeing where the temporary node had been
the last time the user tried to draw a new link.
- Corrected GraphObject.MouseLeave sometimes not getting called when the user's pointer leaves the Diagram.
-
Graduated panels no longer display shadows on Shape and TextBlock elements when those elements explicitly disable shadows with
GraphObject.ShadowVisible.
- Fix for some initialization animations which could set Part.Location incorrectly.
- Link bounds now always contain all JumpOvers.
- When a Diagram.AutoScale is applied, dragging Parts outside of the viewport now reliably triggers a redraw.
- Improved the calculation of the midpoint of Bezier curve Links that have exactly three points in their route.
- Fixed some empty Table panels causing an exception.
-
Diagram Layouts with Layout.IsRealtime set to
true
will no longer attempt real-time layouts during the DraggingTool operation.
- Graduated Panels now deal with highly precise floating point numbers more accurately.
- Fixed asynchronous model loading which might intermittently fail to perform AvoidsNodes routing.
-
Table panel separator strokes no longer draw if a row or column is empty of visual elements, and will not draw a separator above the first-rendered row/col.
- The Group.Layout property setter now checks to make sure that the new layout is not also the value of Diagram.Layout.
- Fixed operation of the LinkShiftingTool extension when the mouse is inside the connected node.
- LinkLabelDraggingTool extension now supports labels with GraphObject.SegmentIndex of NaN.
-
Enhanced the ArrangingLayout extension to support placing the side nodes about the middle of the side, by supporting values such as
go.Spot.Bottom
for the ArrangingLayout.Side property.
-
Improved the "HyperlinkText" builder extension so that it works by default in Adornments and other Parts that are in temporary layers, by setting
GraphObject.IsActionable to true.
- Improved GenogramLayout in the Genogram sample to support a horizontal direction as well as the standard vertical direction.
-
Improved the Selectable Fields and Selectable Ports samples so that clicking on fields or ports within a node respects the Control and Shift modifiers to
toggle or add to the collection of selected fields or ports.
Changes for 10.0.1
- Added more overloads for Rect.Deflate.
- Added further diagnostic output when a TRACE constant is present.
- Improved bookkeeping of Pictures.
Changes for 10.0.0
- Fixed resolving of references to node/link keys that are added to models at a later time.
Changes for 10.0.0-rc1
-
Moved PanelLayouts to a separate namespace, Northwoods.Go.PanelLayouts. Added the static PanelType class to hold strings for predefined
PanelLayout types.
-
Renamed various API members:
- Part.MoveTo -> Part.Move
- Link.SetPointAt, InsertPointAt, AddPointAt -> SetPoint, InsertPoint, AddPoint
- GenericNetwork -> Network
- GridSorting.Forward -> GridSorting.Forwards
- Rect.AddMargin, Grow -> Inflate, Rect.SubtractMargin -> Rect.Deflate
- Brush.LightenBy, DarkenBy -> Lighten, Darken
- Model.AddNodeDataCollection, RemoveNodeDataCollection -> AddNodeData, RemoveNodeData
- GraphLinksModel.AddLinkDataCollection, RemoveLinkDataCollection -> AddLinkData, RemoveLinkData
- ImageElement.SDImage -> PlatformImage
- EqualTo -> Equals
- Added Size.Inflate method.
- Removed GradientPaint.AddColorStop.
- Reorganized samples to allow more sharing of code for future platforms.
Changes for 10.0.0-beta6
- Fixed an issue where setting Diagram.AutoScale wouldn't immediately update the Diagram.
Changes for 10.0.0-beta5
- Renamed DLL and NuGet package to Northwoods.GoDiagram.WinForms.
- Added support for SVG images.
- Fixed a bug with scaling of Overviews.