Skip to content

Update JComboBox choices during SwingChoiceWidget refresh#53

Merged
imagejan merged 2 commits into
scijava:masterfrom
karlduderstadt:master
Jan 10, 2021
Merged

Update JComboBox choices during SwingChoiceWidget refresh#53
imagejan merged 2 commits into
scijava:masterfrom
karlduderstadt:master

Conversation

@karlduderstadt
Copy link
Copy Markdown
Contributor

Currently, JComboBox items are not updated during DynamicCallbacks as noted in the comments of the DynamicCallback example - https://github.com/imagej/tutorials/blob/d3ff8e818bb26cb4713371878b239b36cb7d4877/maven-projects/dynamic-commands/src/main/java/DynamicCallbacks.java#L29-L31

@imagejan suggested implementing JComboBox updates in the doRefresh() method of SwingChoiceWidget to fix this problem on the forum - https://forum.image.sc/t/repaint-scijava-command-ui/42835/2

I quickly wrote a draft of this so that changes in the options of the dialog can update the JComboBox items. This is very useful for situations where you want one JComboBox to change items based on another.

Maybe there are deeper reasons to not implement a fix in this manner. Also, there might be cleaner implementations, but since I was already testing, I figured I would go ahead and file the PR.

These changes ensure JComboBox items update during DynamicCallbacks
@imagesc-bot
Copy link
Copy Markdown

This pull request has been mentioned on Image.sc Forum. There might be relevant details there:

https://forum.image.sc/t/repaint-scijava-command-ui/42835/3

Comment thread src/main/java/org/scijava/ui/swing/widget/SwingChoiceWidget.java Outdated
@imagejan
Copy link
Copy Markdown
Member

With permission of @ctrueden (see this gitter post) I'm merging this PR now. I tested it in the UI with the command from the tutorial, and it works beautifully. I didn't notice any breakage in other widgets.

I did try to implement a unit test for this functionality, but didn't succeed getting it right... my work in progress is in c21f6a1. If someone manages to write a working unit test for this UI behavior, I think it would be great to have it. Otherwise, we might want to add a ChoiceWidgetDemo class to the existing test classes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants