An extension for creating additional interface tabs in the NetLogo GUI and putting custom widgets on them.
Installing
To install the eXtraWidgets extension, assuming that you already have NetLogo 6.4 installed, download the extension and unzip it NetLogo's extensions/
folder, like you would for any other NetLogo extension.
(For use with the 5.x series of NetLogo, you need eXtraWidgets 1.1.0.)
Using
Unlike regular NetLogo widgets, the extra widgets and tabs are created through code. While this may sound daunting at first, it has some advantages:
- You can create dynamic interfaces that change with the circumstances (a bit like with the Goo extension, but more powerful.)
- The extra widgets provided here are a bit more flexible than the regular NetLogo widgets: you have control over colors and font sizes, the widgets can be hidden or disabled, their labels are independent from their names, etc.
- It can provides widget kinds that are unavailable in regular NetLogo. The only one of those at the moment is the multi-chooser widget, but more could be added.
- Writing code allows precise positioning: no fiddling with the mouse to get your widgets aligned.
And besides, it's really not that hard: the extension works in such a way that manipulating widgets is just like manipulating turtles!
To learn more about how to use the extension, take a look at the documentation, where you will learn, amongst other things, how to quickly produce something like this:
If you encounter any difficulties, ask a question on StackOverflow. If you believe you have found a bug (or would like to request a feature) open a new issue.
Extending
We believe that eXtraWidgets is the first "extensible extension" for NetLogo. New widgets kinds can be added to the extension just by dropping a JAR in a folder under xw/widgets
. Developer documentation is scarce at the moment, so your best bet is probably to take a look at the source code of existing widgets. The ScalaDoc for the API is also a good ressource.
Just like users, developers encountering any difficulties can either open a new issue or ask a question on StackOverflow.
Credits and licensing
The extension was developed by Nicolas Payette at the Centre for Research in Social Simulation (CRESS), under the supervision of Nigel Gilbert and Jen Badham. Its first use case was for a model that is part of the TELL ME project.
Bryan Head, from the NetLogo team, made some significant contributions.
The extension is distributed under the MIT License.
NetLogo itself is authored by Uri Wilensky and distributed under the GPL.