I started writing dedicated wiki pages about how to make GUI for scripts/plugin, pointing to the good old script parameters page and a new page dedicated to the Generic Dialog class.
I though this new “GUI” entry could replace the “Parameters” entry in the sidebar of the Learn>Scripting section of the wiki, I dont have the permission for that though.
“Parameters” is less self-explanatory than “Graphical User Interface” I find, and was missing the Generic Dialog option which allows more options.
Firstly, regarding permissions: I looked into adding you to a user group capable of editing templates. But it’s not obvious to me which groups have that permission. Are you saying that you are unable to edit https://imagej.net/Template:Learn ? I did add you to the emailconfirmed group so you should not see CAPTCHA challenges anymore, at least.
Regarding the GUI page: we could change the menu from “Parameters,” sure. But it’s not always about “Graphical User Interface.” Fundamentally, the idea is about obtaining input values from the user, either from a GUI, from the command line, or in some other fashion. It’s true that both #@ parameters and ImageJ1’s GenericDialog do that.
I am reluctant to highlight GenericDialog because it brings with it a hard dependency on ImageJ1. Whereas using #@ parameters can be done with ImageJ2 code alone, or in combination with ImageJ1 as needed. However, I do see the value in giving some GenericDialog examples. So I am bit torn on how to proceed here.
Does anyone else have feelings one way or the other?
Thanks for the status update, I can edit the Template:Learn, maybe I couldn’t before, it’s rather that I did not know how to get to this page at all ! The mistery of wiki…
Maybe “User input” would be better than “Graphical User Interface” then ?
We could keep a redirect from “GUI” to “User input” though if someone use the search bar for that.
I get that point too but currently most plugins relies on ImageJ1 anyway for many functions
I would love to use the script parameters instead of GenericDialog but for many things it is still not as good like having a Help button that opens a documentation page, or with script parameters a simple MESSAGE string breaks the macro-recordability by poping up a window (or was it fixed ?).
I know that the trend is rather to go for ImageJ2 style but the ImageJ1 API is a popular entry point for developers and going for ImageJ2 usually comes next.
The wiki has space for the 2 of them, and I think that it should show the 2 alternatives on the same level, highlighting the strength and flaws of both so that one can choose wisely based on what is the priority.
I would also expect some rare cases for which you dont want any ImageJ2 neither because you build a simple application out of ImageJ1, but you could still look for the documentation on ImageJ.net
@LThomas Thanks for updating the Learn menu. I made some edits to the User input page to clarify the advantages of each approach. I also added screenshots, so people can see them in action. Feel free to edit further.