Capability required - Is it supported?

Hi, We are looking for library or solution which we can leverage in one of our customer engagement for org. chart related requirement. (Not exactly org. chart). I have below question which will help me to determine if your library can be useful for me or not.

1. How many nodes or connector possible on single graph? We have very large number of nodes which can be go up to ~5000+. What is the minimum memory and hardware requirement?
2. Can nodes support multiple connector between 2 nodes where connectors are different? Like example:
Example: Node A and Node B, connected from Node A to Node B with 2 connector, one is solid line and one is dotted line, while Node B connect to Node A with Solid line and dotted line with different information on connector like string or number.
3. Can I preserve what user have changed on graph by manually arrange the nodes? and reload with that same information. Also after reloading is there any automated way to add nodes programmatically?
4. How auto layout is going to work? means, once I have done auto layout and then preserve user arrangement, can I override auto layout if required?
5. Is there any way to save graph as image like png or other?
6. Is there any way where I can export graph as pdf with proper numbering, header and footer?
7. Is there any way to support printing graph in specific print layout with numbering, header and footer? or any suggestion for possibility?
8. Is there possibility to define custom shapes such as rectangle with custom lines or texture?
9. Is there possible to create multiple connector with different line types and color coding?
10. What are the browser support? We are looking for leverage in IE7-10, FireFox latest, Chrome Latest and Safari Latest, with devises such as Desktop, laptop, tablet etc.

Thanks in advance for your support and helping me on this.

1. There is no strict limit, and the resource usage depends on the complexity of the nodes and links and the kind of layout you use. But if you try out the Tree Layout sample, http://gojs.net/latest/samples/tlayout.html, set the minimum and maximum number of nodes, and click the "GenerateTree" button, you can time it for yourself.

2. Yes, this is easy to do. I cannot think of any sample that demonstrates this, but it is easy to implement using either data binding or different templates to get the difference in appearances between links (or between nodes, for that matter). However GoJS does not currently have support for dotted or dashed lines because most browsers do not support that feature when drawing lines onto a Canvas element. But you could easily change the color and/or thickness of the link, or have different labels on the links.

3. Yes, just include a TwoWay Binding of the Node.location to a property on your node data. Then you can save the model and load it later. There are lots of samples that demonstrate this, including http://gojs.net/latest/samples/flowchart.html.

4. I'm not sure what you are asking about. You can certainly change properties on the layout to change its behavior. You can decide to only do a layout when you first initialize the diagram. There is a lot of flexibility.

5. Yes, call Diagram.makeImage. However, I think the functionality that you want will only be available in version 1.1. We should be starting beta testing of version 1.1 soon.

6. No, not yet.

7. Support for page numbering and headers and footers depends on the quality of the CSS support that the browser provides. This is beyond our control.

8. Yes, this is easy to do. That should be clear when you look at the Tiger sample, http://gojs.net/latest/samples/tiger.html. Basically you just want to set the Shape.geometry and the Shape.fill (http://gojs.net/latest/api/symbols/Shape.html).

9. Yes, see the answer for #2.

10. We support all browsers that support the Canvas element. That includes everything on your list except IE7 and IE8. If interactivity is not required for IE7 and IE8, you could generate an image from your diagram. If interactivity is required for IE7 and IE8, the user will need to install Google Chrome Frame.

Thank you Walter for your quick response. just few questions

  1. For us dotted line is kind of deal breaker, is there any option for custom style/css which can be useful in such scenario. Is it going to supported? Any timeline we are looking?

  2. We are looking for production release at March, 2013, will it be possible to have support for image export by that time?
    <span =“Apple-tab-span” style=“white-space:pre”> 1. Also is it possible to break very large chart in multiple layout based image such as, i want to specify paper size as “Letter” then i know what is the height and width of paper apart from header/footer needs and knows that i need Landscape orientation, is there possibility to break such big diagram in multiple images so that i can utilize server side solution by passing those image on server to create PDF etc. I believe this will solve my problem for generating PDF as well as creating hard copy of diagram.

  3. Also you have mentioned that you can generate image for IE7 and IE8 users, how i can generate image in first place while browser do not support canvas element. Are you referring any server side component?

Are the dotted/dashed lines that you want drawn straight?

I believe all of the image generation functionality that you need has already been implemented. We just haven’t started the beta-test for version 1.1.

I am hopeful that one can run GoJS on the server, using node.js and a canvas extension to generate the image(s) that you want. But we should test this to make sure.

Thanks Walter for answering all my questions.

1. Yes, We need dotted/dashed in different curve as well and not necessary to be straight, but we can definitely consider to place on hold with curve and ask you, if you are planning to support in future release?

2. Export in PDF is big thing for us or any hard copy deliverable. Technically I understand that in client browser it may not be feasible or straight forward. but Vision is we need org. chart kind of drawing tool which can be used by different form factor and users and when they want to share with thier external customer, they can export as pdf/xps. What we want that somehow we can export image in form of collection so we can arrange and place appropriate image on different pages, because in nutshell it will not be possible to have very large chart with ~5000+ shapes on single page which is not going to be readable.

We can do straight dashed lines pretty easily. Dashed lines in curves is more difficult, but we will consider it.

So you don’t just need the ability for the end user to be able to print the multi-page diagram, but you actually have to create a file (probably PDF)? Can this PDF file only contain the page-sized images needed to form the whole diagram, maybe with some header and/or footer?

We are releasing a Beta of GoJS 1.1 that can be found here: http://gojs.net/beta/

We have implemented dashed lines as two new properties on shape: strokeDashArray and strokeDashOffset

strokeDashArray takes a JavaScript array of segments that create the dash, for instance a value of [6, 2] will create a dotted line of 6 pixels with spaces of 2 pixels.

strokeDashOffset is a number used to use as a pulsing offset, for instance to generate animated “marching ant” lines this value could be continuously incremented or decremented on a timer.

Both of these new properties use the Canvas’ native functionality in Firefox, Chrome, and iOS Safari (and probably desktop Safari). On other browsers they are approximated and do not work on curves.

We have also added several new options for makeImage, allowing arbitrary Diagram images to be created. Please see the introduction page for more on making images here: http://gojs.net/beta/intro/makingImages.html

@shrenikone,
we are also evaluating GoJS for a tablet application, and concerned about performance.
can you tell how was your experience with a large number of Nodes?
I am also looking for a similar benchmark (~5000 Nodes, Links).
We had (and still having) a very good experience with GoXam, and recommend it to everyone!