An extension for creating additional interface tabs in the NetLogo GUI and putting custom widgets on them.
To install the eXtraWidgets extension, assuming that you already have NetLogo 5.3.1 installed, download the extension and unzip it NetLogo's
extensions/ folder, like you would for any other NetLogo extension.
(A beta version of this extension for NetLogo 6.0.2 is now available.)
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 in the wiki, where you will learn, amongst other things, how to quickly produce something like this:
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.
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.
The extension is distributed under the MIT License.