Alexander Smirnov

  • Content count

  • Joined

  • Last visited

  • Days Won


Alexander Smirnov last won the day on June 9 2016

Alexander Smirnov had the most liked content!

About Alexander Smirnov

  • Rank
    Staff Member
  • Birthday 11/29/82

Contact Methods

  • Skype

Profile Information

  • Gender
  • Interests
    .NET development, quantum science, graph theory, nice weather and sea
  1. After a quite long break in dev process GraphX got some improvements. Recent updates made it UAP compatible and brought some new features like multiple edge labels.
  2. Should be fixed in the latest version
  3. Hi, you can look at the showcase app. There is an example of grouped vertices rendering and layout. I can't tell if this will help you to work with SCXML charts as it wasn't built with this in mind.
  4. Hi, sorry for late responce but this feature is available in the latest GraphX sources. You can add multiple attached edge labels and assign LabelHorizontalOffset property for each of them.
  5. We have updated forum engine to the most recent version. If you'll find any problems please do not hesitate to contact administration. Thank you!
  6. GraphX is in the maintenance mode currently. Merged all pull requests and fixing reported bugs.
  7. This is tricky. Group background itself is a simple border, so you can add some mouse handling events for it and store a link that will point that this particular Border is for particular vertex group. So when you drag your Border you can iterate through related vertices and translate them to new coordinates according to the dragged Border. This approach will require a lot of coordinates calculations. As of collapseble groups you can try to implement custom Filter which will hide/show group vertices and add/remove an edge instead of them.
  8. Hi, i've never tried it, but you can try to specify GroupingLayoutAlgorithm as the primary GroupingLayoutAlgorithm parameter so the vertices in a primary group can be layouted by some secondary group.
  9. Hello Tom, sorry for no response. The mail system is out of order again There is no default support for center point, but you can use EdgeLabel for that, as it is placed in the center of the line. Or you can check edge generation code to get the math behind the edge center calculation and then use own EdgeControl implementation for this,
  10. Thank you for an example!
  11. Hello, please try to set args.MouseArgs.Handled = true
  12. GraphX for .NET version 2.3.6 is out featuring minor improvements and fixes.
  13. RELEASE 2.3.6 DETAILED CHANGELOG: + Added edge endpoint calculation for rotated vertex that use ellipse, circle and rectangle math shape + Added VertexControl::LabelAttached and LabelDetached events which fires when new label is attached to VertexControl or detached from it + Added new parameter to GraphArea::UpdateParallelEdgesData(Dictionary<TEdge, EdgeControl> edgeList) to be able to specify edges list to parse for parallelization instead of full edge list parse + Added support for object visbility and attachable labels to GraphX serialization data + Added ZoomControl::ResetKeyBindings() method to clear all (incl default) set key bindings + Fixed ZoomControl dynamic content switch to corectly refresh viewfinder + Improved ZoomControl handling with disabled animation + Renamed ZoomControl::IsAnimationDisabled to IsAnimationEnabled and changed the logic according the modification + Renamed ZoomControl::MaximumZoomStep to ZoomStep and updated description + Implemented easy ZoomControl key bindings with BindKey() method and exposed base commands for zoom and pan actions to be able to bind keys for them + Some class refactoring Go to the archive & sources download page NuGet version is also available
  14. Update: now we have one in GraphX for .NET PRO bundle. FYI.
  15. RELEASE 2.3.5 FEATURES HIGHLIGHT: - Added new awesome vertex snapping feature on vertex drag. Many thanks to perturbare for this wonderful contibution! The feature is implemented around DragBehaviour class and is represented in several new settings allowing the drag to be perform around some sort of virtual snap grid. Please read the comment for the DragBehaviour class for detailed info. - Added new feature & example preview in showcase app: graph data filtering. This feature allows you to filter the graph prior to layout generation or relayout based on the pipeline of LogicCore::Filters that are processed sequentially. These filters can modify graph using custom logic. The output graph will be available for interaction along with the copy of the original graph. User then may choose if he wish to revert graph to the original state or apply filtering results permanently. Please read the details at: DETAILED CHANGELOG: - Added Universal Windows Application support and example project - Added StateStorage::ImportState() method to allow state import/export logic between several graphs - Added GraphArea::IsDisposed property that indicated that GraphArea object has been disposed and shouldn't be used anymore - Added GraphArea::CreateNewStateStorage() protected method to be able to implement custom state storage logic for GraphArea - Added ParameterizedLayoutAlgorithmBase::EnsureUniqueRandomInitialPositions property that enables unique random positions generation for layout algorithms. False by default, True for LinLog algorithm. - Added VertexControl::VCPRoot property whcih represents the VCP root container for easier runtime VCP management. To be able to use it you have to define PART_vcproot template element as Panel descendant. - Added new awesome vertex snapping feature on vertex drag (thanks to perturbare) - Added GraphArea::EnableVisualsRenewOnFiltering property which is True by default. Specifies if visual graph should be updated up on relayout method call. - Added methods LogicCore::PushFilters(), LogicCore::ApplyFilters() and LogicCore::PopFilters along with LogicCore::Filters property which implements graph data filtering feature - Added LogicCore::IsFiltered property to identify graph filtering state. If graph is filtered the filter results can be applied or popped back. - Added new porperty EdgeControlBase::HideEdgePointerOnVertexOverlap which can hide edge pointer on zero length edge - Added new property EdgeControlBase::HideEdgePointerByEdgeLength to be able to hide edge pointers if edge length is less than or equal to the specified value. Off by default (0 value). - Fixed LogicCore::GetVertexSizeRectangles() method input params and description - Fixed incorrect edge pointer position on zero length edge - Fixed Avalon Dock interaction which caused strange exception by skipping ZooomControl viewfinder unnecessary refresh pass in some cases - Fixed edge label positioning, now it is more accurate for pathed edges - Fixed LinLog negative energy issue (thanks to Katya) - Fixed one vertex ISOM algorithm exception (thanks to jorgensigvardsson) - Fixed external alg vertex sizes grab logic (thanks to ValentinMarinov) - Made StateStorage class extensible by adding virtual modifiers to methods - Improved algorithm factory logic to avoid graph type cast exceptions in some class declaration cases - Improved calc performance for large graphs that use both OR and ER algorithms - Moved code extensions to GraphX.PCL.Common library thus eliminating the need for GraphX.PCL.Logic for *.Controls libraries - Removed GraphArea::EnableWinFormsHostingMode property as it is not needed any more. The WF checks has been automated. Go to the archive & sources download page NuGet version is also available