Page Index Toggle Pages: [1] 2  Send TopicPrint
Hot Topic (More than 10 Replies) FlowChart.NET V.5 preview (Read 11617 times)
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3347
Joined: Oct 19th, 2005
FlowChart.NET V.5 preview
May 2nd, 2007 at 11:49am
Print Post  
In the following days we are going to post here our daily builds of Flowchart.NET 5, in order to show the major new features and hopefully get some feedback from you guys. Here is the first preview version, along with a small sample project -

https://www.mindfusion.org/_temp/fcnet5.zip

There are many API changes (even more than the changes in the version 4 release).

* Now we develop several flow diagramming controls, and decided to move their common code to a separate assembly, "MindFusion.Diagramming.dll". All common classes such as Box, Arrow, automatic layout classes, etc were moved to the corresponding namespace "MindFusion.Diagramming". The Windows Forms related stuff is in "MindFusion.Diagramming.WinForms.dll".

* The control will follow strictly the .NET class library naming conventions, and use common property and class names found in the standard .NET controls. So, following ListView as a model, now there are DiagramView, DiagramItem, DiagramItemCollection classes. ChartObject.BoundingRect is now DiagramView.Bounds. In addition, many cryptic property and method names have been renamed, e.g. check the new names of the mouse cursor related properties.

* The "Webchart.dll" won't be supported anymore. Instead of Webchart, you can use the "MindFusion.Diagramming.dll", since it does not refer to any Windows Forms assemblies. As a bonus, all export / import components will work in the Webchart scenario. Hopefully that will also help us release new versions more often, since we won't have to maintain two almost identical versions of the source code.

g.
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3347
Joined: Oct 19th, 2005
Major new feature #1 - MDI support
Reply #1 - May 2nd, 2007 at 11:51am
Print Post  
The control now supports the model / view architecture. Actually this wasn't a planned feature, but it came naturally from the division of the Flowchart.NET classes between the shared "MindFusion.Diagramming" and the Windows Forms specific "MindFusion.Diagramming.WinForms" assemblies. The document class is called Diagram, and the view class is called DiagramView. The printing, clipboard, inplace text editing and mouse cursor -related properties and methods have been moved to DiagramView.

For compatibility with old code, we might implement the current FlowChart class API in version 5 too by inheriting from DiagramView and exposing the Diagram properties through FlowChart wrapper properties. Please let us know if you'd like to see this.

g.
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3347
Joined: Oct 19th, 2005
Major new feature #2 - OrthogonalLayout
Reply #2 - May 2nd, 2007 at 12:23pm
Print Post  
Version 5 introduces a new automatic layout algorithm, useful for diagrams where the number of links is much larger than the number of nodes. The class that implements the algorithm is called OrthogonalLayout, and the kind of layouts it produces is shown below.



OrthogonalLayout starts from a configuration of nodes produced by other FlowChart.NET layouts, e.g. tree, layered or grid, and distributes the arrows in the unoccupied space, displacing the nodes a bit if necessary. You can choose the base layout via the UseLayout property, or optionally can set it to Custom to start the layout using the current node configuration.

g.
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3347
Joined: Oct 19th, 2005
Re: FlowChart.NET V.5 preview
Reply #3 - May 3rd, 2007 at 10:12am
Print Post  
We are pondering another change in the Flowchart.NET API. Consider the following

* the ControlHost class will be implemented in an external assembly;
* version 5 will include a new node type – Container;
* we want to make it easier to implement custom node types;

So, we plan to ditch the type specific events and methods, and leave only generic ones. I.e. the control won’t raise BoxCreated, TableCreated, ContainerCreated, etc. events, but just NodeCreated. Similarly, there won’t be a set of Create, Find and GetAt methods for each type, but just a common method used for all node types.

This will help you integrate custom types seamlessly into the Flowchart.NET API, and having a common event handler for an action done on several node types could be good too.

The bad side is that there will be some type casting and reflection needed when handling/calling such generic events and methods. And of course there will be more work needed to port your applications to the new API.

Please let us know your opinion.

g.
  
Back to top
 
IP Logged
 
mjweyland
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 37
Joined: Apr 2nd, 2007
Re: FlowChart.NET V.5 preview
Reply #4 - May 8th, 2007 at 1:43pm
Print Post  
What is the expected release date for this?

How will customers who recently purchased V 4 be handled? 

Thanks
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: FlowChart.NET V.5 preview
Reply #5 - May 8th, 2007 at 3:54pm
Print Post  
If you have an active upgrade subscription, you will receive version 5 as a part of it. We are already past the scheduled release date, and might defer some of the planned features to v.5.0.1. Hopefully we'll release a beta version in a couple of weeks.

Stoyan
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3347
Joined: Oct 19th, 2005
Major new feature #3 - Custom item types support
Reply #6 - May 22nd, 2007 at 1:03pm
Print Post  
FlowChart.NET 5 lets you inherit from the base node and link classes, add your own properties, implement custom drawing, serialization, undo/redo etc.

This sample shows how you can define and use your own item types -

https://mindfusion.org/_samples/IconNodes.zip

It shows some of the new API members for working with items and handling their events. Here are some points of notice -

* Now you can add new items by calling diagram.Nodes.Add(node) or diagram.Links.Add(link)

* There's just one set of node events, as opposed to the type-specific ones from the previous releases, e.g. NodeCreated instead of BoxCreated / TableCreated / ControlHostCreated

* You must call the Diagram.RegisterItemClass method in order to enable serialization for custom types. The method takes a type, a string id used in binary and XML formats, and revision id, as follows

Diagram.RegisterItemClass(typeof(IconNode), "IconNode", 1);

The method must be invoked in the initialization phase of the application. Afterwards the control saves the string id before saving items to binary or XML files. When loading, it creates items from the appropriate type based on the specified mapping.

* You can specify what items are created interactively by the users when they draw with the mouse by setting CustomNodeType and CustomLinkType, e.g.

diagramView.CustomNodeType = typeof(IconNode);
diagramView.Behavior = Behavior.Custom;

* You can implement your custom serialization logic by overriding the SaveTo and LoadFrom methods.

I hope we've made it easy enough to use custom item types. Please let us know if you have any suggestions how we could improve this further.

g.

p.s. XML serialization is not implemented yet.
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3347
Joined: Oct 19th, 2005
Re: FlowChart.NET V.5 preview
Reply #7 - Jun 1st, 2007 at 11:42am
Print Post  
Hi all,

Here is a new update along with a sample project.

https://mindfusion.org/_samples/ControlNodes.zip

1. ControlHost  nodes

a) The sample shows how ControlHost nodes can be used in the new MDI model. The first view in the sample form lets you draw buttons and text boxes.

b) As you know a Windows Forms control cannot be contained in more than one parent control at the same time. So actually the controls are hosted in only one of the views. In all other views Flowhart.NET tries to paint them by either calling their OnPaint method (e.g. check the buttons in the example) or by raising an event that will let you draw some representation of the controls yourself (e.g. check the text boxes).

c) DiagramView provides an AdoptHostedControl method that moves the controls to the calling view. In a MDI application you can call this method when a view becomes active.

2. How exporter components handle your custom drawing code.

a) Now all drawing methods, either custom-draw event handlers or DiagramItem.Draw overrides, receive an IGraphics interface reference. When drawing to screen, Flowchart.NET passes a GdiGraphics implementation of that interface, which simply delegates the method calls to GDI+.

b) Components that export diagrams to various graphics formats can implement the IGraphics interface and call the Diagram.Draw method passing an instance of the class that implements IGraphics. This will let you create exporters to various formats that are not natively supported by Flowchart.NET.

c) An SvgGraphics implementation will be included in the version 5 release, so any custom drawing code will be reflected in files created by the SvgExporter.

d) We had been planning to include a PdfGraphics implementation as well, but due to time constraints we deferred it to the 5.0.1 release.

3. More API changes

The .NET library design guidelines state that class names should differ from the names of classes included with the base .NET class library. It is also recommended to use a common name suffix for classes derived from the same base type. Since there are Table and Container classes both in FlowChart.NET and in the .NET class library, we have renamed the node types as follows:

Node       -> DiagramNode
Box          -> ShapeNode
Table       -> TableNode
Container-> ContainerNode

That's for now. Hopefully we will be ready with the containers implementation next week and will start the beta tests.

g.
  
Back to top
 
IP Logged
 
Kortexito
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 11
Joined: Jun 6th, 2007
Re: FlowChart.NET V.5 preview
Reply #8 - Jun 6th, 2007 at 7:50am
Print Post  
Hi guys,

I am disiding if the FlowChart.Net fits my requirements. I've spent some time playing with it, looks pretty nice.

The only thing I have not seen is nodes grouping (Tree view). I'd like to have a possiblity to put trees _inside_ nodes of other trees. Is it possible? Does the new container class solve the issue?

P.S. I've also tried to use the ControlHost as node and put FlowChart inside, but I am not happy with speed and quailty of drawing of the ControlHost object.

Thanks,
Chris.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: FlowChart.NET V.5 preview
Reply #9 - Jun 6th, 2007 at 10:19am
Print Post  
Hi Chris,

Yes, you will be able to place other nodes and links inside container nodes. We will try to post here a preview version with the initial ContainerNode implementation by the end of this week.

Stoyan
  
Back to top
 
IP Logged
 
Kortexito
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 11
Joined: Jun 6th, 2007
Re: FlowChart.NET V.5 preview
Reply #10 - Jun 6th, 2007 at 10:33am
Print Post  
Thanks Stoyan,

Looking forward to play with container nodes.

Btw, do you have an estimate date when will the final version of FlowChart 5 be ready?

Regards,
Chris.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: FlowChart.NET V.5 preview
Reply #11 - Jun 6th, 2007 at 10:46am
Print Post  
We will start beta tests in a couple of weeks, and then the release date will depend on how many bugs our developers will have to fix.

Regards,
Stoyan
  
Back to top
 
IP Logged
 
Slavcho
YaBB Moderator
*****
Offline


tech.support

Posts: 3347
Joined: Oct 19th, 2005
Major new feature #4 - Container nodes
Reply #12 - Jun 8th, 2007 at 10:51am
Print Post  
This shows the initial implementation of container nodes:
https://www.mindfusion.org/_temp/Containers.zip

To see containers in action, use the button to create one, then draw some boxes and drag them into the container. Containers have a fold/unfold button, which lets you hide and show their contents.

We are yet to implement a public API that lets you manipulate containers contents from code. Containers in containers don't work quite well yet either.

g.
  
Back to top
 
IP Logged
 
Marbry
YaBB Newbies
*
Offline


I love YaBB 1G - SP1!

Posts: 1
Joined: Jun 28th, 2007
Re: FlowChart.NET V.5 preview
Reply #13 - Jun 28th, 2007 at 5:23pm
Print Post  
A few questions regarding the containers,

I take it from your previous post that we will be able to nest containers, will there be a limit on how many levels of nesting are allowed?

Will we be able to make custom container nodes?

If one is following the flow from a linked node into a container, will there be a way to link from external node -> container (entry) -> internal node -> container (exit) - another external node?

Using the example, I could link from an external node to the container entry and container exit to an external node.  But I could not link from the container entry to an internal node, or an internal node to the container exit.
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: FlowChart.NET V.5 preview
Reply #14 - Jun 29th, 2007 at 5:36am
Print Post  
Hi,

There isn't any limit on how deep you can nest containers. It is possible to derive from the Container class if you wish to modify it. The links scenario you have described seems to work fine with the latest version of the control:

https://www.mindfusion.org/_temp/Containers.zip
https://www.mindfusion.org/_temp/fcnet5dlls.zip

Stoyan
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: [1] 2 
Send TopicPrint