An extension for creating additional interface tabs in the NetLogo GUI and putting custom widgets on them.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
api
core
doc
extensions
project
tests
xw
.gitignore
.travis.yml
LICENSE.txt
README.md
build.sbt
sbt

README.md

eXtraWidgets

An extension for creating additional interface tabs in the NetLogo GUI and putting custom widgets on them.

[Download] [Documentation]

Installing

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.)

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 in the wiki, where you will learn, amongst other things, how to quickly produce something like this:

a screenshot of the result

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.

Or we can chat: Join the chat at https://gitter.im/CRESS-Surrey/eXtraWidgets

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.


Build Status