|
1 | | -# Gephi Plugins Bootcamp |
| 1 | +# Gephi Plugins Bootcamp |
| 2 | + |
| 3 | +Get started with the [Gephi](http://gephi.org) Platform and start to create [Gephi Plugins](http://gephi.org/plugins) by looking at these examples. |
| 4 | + |
| 5 | +The Gephi Plugins Bootcamp is the best sources of examples and good practices to create all types of plug-ins (layout, filter, io, visualization, ...). Consult the [**Javadoc**](http://gephi.org/docs) to discover the different APIs. Documentation is also available on the [Toolkit Portal](https://wiki.gephi.org/index.php/Plugins_portal) on the wiki. |
| 6 | + |
| 7 | +## What's inside? |
| 8 | + |
| 9 | +Complete list of the plug-ins examples included in the bootcamp: |
| 10 | + |
| 11 | +#### Layout |
| 12 | +<table> |
| 13 | + <tr><td><b>Grid Layout</b></td><td>Place all nodes in a simple grid. Users can configure the size of the area and the speed.</td></tr> |
| 14 | + <tr><td><b>Sorted Grid Layout</b></td><td>Same example as Grid Layout but users can sort nodes with an attribute column.</td></tr> |
| 15 | +</table> |
| 16 | + |
| 17 | +#### Filter |
| 18 | +<table> |
| 19 | + <tr><td><b>Transform to Undirected</b></td><td>Edge filter to remove mutual edges in a directed graph.</td></tr> |
| 20 | +<tr><td><b>Top nodes</b></td><td>Keep the top K nodes using an attribute column.</td></tr> |
| 21 | + <tr><td><b>Remove Edge Crossing</b></td><td>Example of a complex filter implementation which removes edges until no crossing occurs.</td></tr> |
| 22 | +</table> |
| 23 | + |
| 24 | +#### Tool |
| 25 | +<table> |
| 26 | + <tr><td><b>Find</b></td><td>Tool with a autocomplete text field to find any node based on labels and zoom by it.</td></tr> |
| 27 | +<tr><td><b>Add Nodes</b></td><td>Listen to mouse clicks and adds nodes. Also adds edges if selecting other nodes.</td></tr> |
| 28 | +</table> |
| 29 | + |
| 30 | +#### Export |
| 31 | +<table> |
| 32 | + <tr><td><b>JPG Export</b></td><td>Vectorial export to the JPG image format. Contains a settings panel to set the width and height.</td></tr> |
| 33 | +<tr><td><b>SQLite Database Export</b></td><td>Current graph export to a SQLite Database file. A new sub-menu is added in the Export menu and an example of a custom exporter is shown.</td></tr> |
| 34 | +</table> |
| 35 | + |
| 36 | +#### Preview |
| 37 | +<table> |
| 38 | + <tr><td><b>Highlight Mutual Edges</b></td><td>Colors differently mutual edges. Overwrites and extends the default edge renderer.</td></tr> |
| 39 | +<tr><td><b>Glow Renderer</b></td><td>Adds a new renderer for node items which draws a glow effect around nodes.</td></tr> |
| 40 | +<tr><td><b>Node Z-ordering</b></td><td>Extends the default node builder by reordeing the node items by size or any number columns. Also shows how to create complex Preview UI.</td></tr> |
| 41 | +</table> |
| 42 | + |
| 43 | +#### Import |
| 44 | +<table> |
| 45 | + <tr><td><b>Matrix Market Importer</b></td><td>File importer for the Matrix Market format. Lot's of datasets [here](http://www2.research.att.com/~yifanhu/GALLERY/GRAPHS/index.html).</td></tr> |
| 46 | +</table> |
| 47 | + |
| 48 | +#### Statistic |
| 49 | +<table> |
| 50 | + <tr><td><b>Count Self-Loop</b></td><td>Example of a statistics result at the global level. Simply counts the number of self-loop edges in the graph</td></tr> |
| 51 | +<tr><td><b>Average Euclidean Distance</b></td><td>Example of a per-node calculation. For a given node it calculates the average distance to others.</td></tr> |
| 52 | +</table> |
| 53 | + |
| 54 | +#### Plugins sub-menu |
| 55 | +<table> |
| 56 | + <tr><td><b>Test action</b></td><td>Simple action which display a message and a dialog.</td></tr> |
| 57 | +<tr><td><b>Remove self loops</b></td><td>Action which accesses the graph and remove self-loops, if any.</td></tr> |
| 58 | +<tr><td><b>Using Progress and Cancel</b></td><td>Action which creates a long task and execute it with progress and cancel support.</td></tr> |
| 59 | +</table> |
| 60 | + |
| 61 | +#### Execute at startup |
| 62 | +<table> |
| 63 | + <tr><td><b>When UI is ready</b></td><td>Do something when the UI finished loading.</td></tr> |
| 64 | +<tr><td><b>Workspace select events</b></td><td>Do something when a workspace is selected.</td></tr> |
| 65 | +</table> |
| 66 | + |
| 67 | +#### Processor |
| 68 | +<table> |
| 69 | + <tr><td><b>Initial Position</b></td><td>Set up the nodes' initial position always the same. It calculates a hash with all nodes so the X/Y position is randomized always in the same way.</td></tr> |
| 70 | +</table> |
| 71 | + |
| 72 | +### New Panel |
| 73 | +<table> |
| 74 | + <tr><td><b>New panel</b></td><td>Example of a new panel plugin set up at the ranking position.</td></tr> |
| 75 | +</table> |
| 76 | + |
| 77 | +## Installation |
| 78 | + |
| 79 | +Follow the steps to get the right development environment for developing Gephi plug-ins. The bootcamp contains the latest version of the Gephi Platform plus the examples. |
| 80 | + |
| 81 | +- Download and install the latest version of [Netbeans IDE](http://netbeans.org). |
| 82 | +- Checkout the latest version of the Gephi Plugins Bootcamp |
| 83 | + |
| 84 | + git@github.com:gephi/gephi-plugins-bootcamp.git |
| 85 | + |
| 86 | +- Start Netbeans and Open Project. The bootcamp is automatically recognized as a module suite. |
| 87 | +- Right click on the project and do 'Run'. This starts Gephi with all the example plug-ins loaded. |
| 88 | +- Expand the list of modules and double-click on each to open them and browse the sources. |
| 89 | + |
| 90 | +Once you feel comfortable starting your own plug-in, follow the [Plugin Quick Start (5 minutes)](http://wiki.gephi.org/index.php/Plugin_Quick_Start_(5_minutes)). |
| 91 | + |
| 92 | +Consult the [**Javadoc**](http://gephi.org/docs) to browse the APIs. |
| 93 | + |
| 94 | +#### Without Netbeans |
| 95 | + |
| 96 | +You can also see existing example and develop new plug-ins without Netbeans IDE. |
| 97 | + |
| 98 | +At the root directory of the bootcamp just do |
| 99 | + |
| 100 | + ant run |
| 101 | + |
| 102 | +to start Gephi with the plug-ins. |
| 103 | + |
| 104 | + |
| 105 | + |
0 commit comments