Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate QuickGraph from PCL to netstandard2.0 #104

Closed
wants to merge 288 commits into from

Conversation

honza77
Copy link

@honza77 honza77 commented Dec 18, 2019

Hello,

i have migrated libs of GraphX to netstandard and used QuickGraphCore (netstandard) instead of QuickGraphPCL. Probably its not good idea to accept this pull request. I haven't done much testing and possibly did not managed well the UAP stuff. But i wanted to let you know.
I guess you are now spending your time more on GraphX Pro or other stuff. But GraphX is a great library and maybe its time to move it to netstandard even in its original location.

Regards,

Jan

panthernet and others added 30 commits January 20, 2015 18:48
+ Added  some sketches for showcase app (internal)
…to get VC by coordinates [METRO, WPF]

+ Fixed annoying data binding error in ZoomControl slider binding [METRO, WPF]
+ Fixed ZoomControl unresponsivness after startup (prev needed to change zoom/translation first to work fine) [WPF,METRO]

!Breaking changes
+ Renamed and changed to Enum - ZoomControl::UseAbsoluteZoomOnMouseWheel to MouseWheelZoomingMode [METRO, WPF]
…r position instead the default top-left

+ Fixed dynamic graph showcase example first vertex auto zooming onto
… [WPF, METRO]

+ Added new showcase example: Templates/Graph editor [WPF]
+ Optimized showcase app media files
…t action will be taken on LogicCore property change. You can rebuild graph now. [WPF, METRO]
…to properly restore internal data for loaded graphs
…bject for EdgeControl template: [WPF]

 1. EdgePointerImage class with name "PART_EdgePointerImageForSource" - marks edge source pointer (new!)
 2. EdgePointerImage class with name "PART_EdgePointerImageForTarget" - marks edge target pointer
 Look in GeneralTemplate.xaml of ShowcaseApp.WPF project.
+ Added extensibility to corresponding controls by inheriting from IEdgeLabelControl and IEdgePointer [WPF]
+ Added extensibility to corresponding controls by inheriting from IVertexLabelControl [WPF]
…Control, VertexLabelControl, EdgeControl

Uploaded sources for metro with latest buggy features
+ Added new property EdgeLabelControl::DisplayForSelfLoopedEdges which is self explaining [WPF, METRO]
Proper calculation of label control position and angle.
…thanks to jorgensigvardsson

+ Made EdgeControl::LabelVerticalOffset property dependecy [WPF, METRO]
+ Updated default control templstes to include some new properties setup by default [WPF, METRO]
* Asynchronous layout is now executed in a Task rather than a BackgroundWorker (Tasks go hand in hand with CancellationToken)
* UI synchronization is now done through the task scheduler of the dispatcher object, which means that any exception that may occur on the UI/dispatcher thread is marshaled back to the task starter, and will not automatically terminate the process with an unhandled exception
Patch for issue panthernet#6
+ Added the whole new async calculation cancellation feature
…regarded.

+ DispatcherHelper bug fix: grab a safe handle to the UI thread dispatcher.
+ WPF control bug fix: cancellation token source was not disposed.
+ Bug fixes for async mode resource management in WPF
+ Misc tweaks to templates
perturbare and others added 26 commits September 1, 2016 10:05
…ing the upper left of the controls instead of the center, which resulted in an increase in undesirable routing outcomes. (panthernet#65)
…terOnVertexOverlap implementation to use dependency property coercion so that underlying pointer visibility settings are not overridden. (panthernet#73)

Thanks!
* Fixing bug when casting from IMutableBidirectionalGraph<TVertex, TEdge> to TGraph.

* Enabling FitButton in ZoomControl's ViewFinder.
panthernet#76)

Fix tree layout
Adding optional gap between connected components.
* + SetEdgesDrag

* + Edge가 Drag 가능하도록 설정

* + Edge Drag

* Fix

* + PrepareEdgePathFromMousePointer Target Position Edit
* Modified the grouping mechanism used for parallel edges. This is in preparation for some other changes related to the way edges with connection points are handled. These code changes will alter the sequence of edges and does not attempt to preserve the exact ordering of the old code. In the old code, the groups were built simply as the edges were encountered and did not appear to have a defined order, so I think this should be fine, but it could change the appearance of existing graphs. The new code also excludes edges that have both ends tied to connection points because those will not be spaced within the group anyway. There is a small performance penalty for very small numbers of edges, but at 50-100 edges a 3-10x speed improvement can be observed.

* Modified the parallel edge logic so that it takes connection points into account. If an edge uses a connection point at only one end and parallel line grouping is in effect, the edge will be rendered parallel, but aligned to the connection point.

* Restored the use of parallel edge groups with just one edge. This way, parallel edge behavior is applied to single edges with one connection point.

* Edge Drag (panthernet#75)

* + SetEdgesDrag

* + Edge가 Drag 가능하도록 설정

* + Edge Drag

* Fix

* + PrepareEdgePathFromMousePointer Target Position Edit
…ameter in its call to RemoveEdgeInternal(). As a result, edges were sometimes being regenerated during graph layout, particularly when the last edge was removed from _edgeList and _finishUpRelayoutGraph() was called. (panthernet#80)
…t#84)

* Bugfix: Must take polymorphic controls into consideration.

* Bugfix: Must save original position of all tagged controls, regardless of the primary drag vertex status.

Before the fix, it was possible to get out of sync with the "IsTagged" status of the primary drag vertex (it was set after the drag start). When that happened, the secondary vertices being dragged, did not have its OriginalX/Y properties updated, resulting in a "jump" from its visual origin to X=0, Y=0.
* Bugfix: Must take polymorphic controls into consideration.

* Bugfix: Must save original position of all tagged controls, regardless of the primary drag vertex status.

Before the fix, it was possible to get out of sync with the "IsTagged" status of the primary drag vertex (it was set after the drag start). When that happened, the secondary vertices being dragged, did not have its OriginalX/Y properties updated, resulting in a "jump" from its visual origin to X=0, Y=0.

* Bugfix: compare with argument, not default initialized field.
…rnet#86)

When the property IsDragSelectByDefault is set to true and the user clicks on the zoom area, the ZoomBox is being set to empty and this breaks bindings resulting in the Canvas/Border 2x2 element to actually be rendered as an annoying random pixel in the upper left corder of the Zoom control.
…ltiple labels across the edge

- Added LabelHorizontalOffset property for labels
- Added new edge pointer GetPosition() method
* Update GraphArea.cs

Have noticed that sometimes during DeSerialization a failure for Source or Target to be updated properly will result in an uncaught exception to the Application Dispatcher.  It is best to test for a valid Source and Target Property value before attempting to retrieve a mapped value.

* Update GraphArea.cs

Testing revealed an issue.
The latest changes that were authored resulted in a defect.  If an edge pointer Visibility happens to be set by either a Binding or Converter, then the original code was overwriting the Visibility property value.
…and PositionChanged callbacks were still bound after Clean() (indirectly due to PropertyChangeNotifier.Dispose() ClearBinding) (panthernet#98)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet