Package org.gephi.preview.spi

Interfaces for creating new renderers, item builders and render targets.

Create a new Item Builder

  1. Create a new module and set Preview API, Graph API, AttributesAPI and Lookup as dependencies.
  2. Create a new item class which implements Item or extends AbstractItem. The AbstractItem class is located in the PreviewPlugin module so add it as dependency first. An item should be very simple but has a unique identifier returned by its getType() method.
  3. Create a new builder class that implements ItemBuilder
  4. Implement the getType() method and returns the same identifier than the Item you created earlier.
  5. Implement the getItems() method by retrieving objects from the given graph.
  6. Add @ServiceProvider annotation to your builder, that it can be found by the system. Set ItemBuilder as the annotation parameter.

Create a new Renderer

  1. Create a new module and set Preview API, GraphAPI, Processing Wrapper, iText Wrapper and Lookup as dependencies.
  2. Create a new class that implements Renderer.
  3. Implement the renderer methods.
  4. Add @ServiceProvider annotation to your builder, that it can be found by the system. Set Renderer as the annotation parameter.

Add data to an existing item

To add an additional data attribute to a Node or Edge item, you need to create a new item builder for the specific type. For instance if one want to add a new attribute to nodes create a new ItemBuilder for the type Item.Node. Simply return item objects with the data you want to add. The system will automatically merge your new data to node items.

Extend or replace an existing renderer

To extend or completely replace a default Renderer by your own implementation, create a new Renderer and set the annotation like below. In addition add Preview Plugin module as a dependency.

@ServiceProvider(service=Renderer.class, position=XXX)
        public class MyRenderer extends NodeRenderer
        

Being XXX the new position of the renderer Then you can reuse parts of the base class or just override them.

Default renderers are:

  • org.gephi.preview.plugin.renderers.NodeRenderer
  • org.gephi.preview.plugin.renderers.EdgeRenderer
  • org.gephi.preview.plugin.renderers.NodeLabelRenderer
  • org.gephi.preview.plugin.renderers.EdgeLabelRenderer
  • org.gephi.preview.plugin.renderers.ArrowRenderer

Add a new PreviewUI settings panel

Plug-ins can add UI components to the Preview Settings module. Additional components are placed in new tabs and have access to the current PreviewModel and therefore PreviewProperties.

  1. Create a new module and set Preview API and Lookup as dependencies.
  2. Create a new class that implements PreviewUI and implements methods.
  3. Add @ServiceProvider annotation to your builder, that it can be found by the system. Set PreviewUI as the 'service' annotation parameter.