Implement in java a component that visualizes a graph. The graph consists of
nodes, represented as dots, and edges, represented as lines between dots. A program, already implemented in java, is adding, dynamically, edges between nodes. Every time a new edge is added, the visualization should be updated and
represent the newly added edge. In addition, the weights of already existing edges can be updated and in the visualization the edges may have to become thicker or thiner.
The main functionality of the component is the following:
1) Draws the dots for the nodes of the graph: Nodes belong to different clusters.
Based on these clusters, that are given as input, dots for nodes of the same cluster, should be placed close together. The actual distances inside a cluster are not important, the only thing that is important is to be able to distinguish the different clusters of dots.
2) Draws edges between dots: As new edges are added to the graph, lines should be added to the visualization. Moreover, the edges will have different color, thickness and style based on their weight.
3) The component should extend a pre-existing component. The API is predefined and it is very simple. In addition, I will explain in detail how the integration can be done, and the specific(quite few) parts of the code that the contractor should know about.
Moreover, there are two main requirements for the outcome of the visualization:
1) When the graph is "small", the user must be able to see clearly each new edge that is being added.
2) When the graph is "huge", the user must be able to see clearly an overview
of what is going on inside a cluster and between clusters(details in person about this).
The component must be implemented in java6, swing.
Please mention in your cover letter, any small or large projects you have done using java swing.