Tools are functions for interacting with user inputs on the visualization window.

### How-to create a tool implementation

1. Create a class which implement `Tool` interface
2. Add the following annotation to your class to be declared as a new implementation `@ServiceProvider(service=Tool.class)`
3. Declare `ToolEventListener` instances for specifying how the tool is interacting with user input like node click or mouse drag.
4. Provide a `ToolUI` instance for giving a name and an icon to your tool.