Issues and short-term plan
These are my plans for the coming time, which also involves managing some bugs. You are invited to take part!
- Have a render function for every node, no matter how it was created.
- Provide a convenient way to define the custom render functionality via json code.
- Enhance the overlay property to make it easier to use.(half done 🙂 )
- Enhance the label property of connections for better readability and automatic text aligning.
- Attach a click handler to the nodes to distinguish between drag and click events.
- An option to set a random seed for deterministic layouts.
- Enhancing the layout algorithm to also work with mostly linear graphs.
- Address the bug with numeric IDs.
- Better re-using existing connections.
- Integer positions for nodes, for better node image representation (e.g. while using PNG icons)
Some of the issues I will address in the future:
- Some options don’t work on all browsers: Browser testing (Seems to work on most browsers now!)
- Hide/show nodes (in progress)
- An algorithm showroom, e.g. for search algorithms, binary trees, minimal spanning trees, maximum flows, etc. (working on it)
- Set fixed positions for some nodes
Different layout options Different connection modes and styles
- Some measurement method to calculate the quality of some randomly created layouts and then picking the best one
- Use currying wherever it makes sense and results in cleaner code. (I love currying!)
- default node or edge option
- Implement chained function calling: g.addNode(“Node one”).addNode(“Node two”).addEdge(“Node two”, “Node three”); (maybe)