Use more reliable multiple select instead of checkboxes.
I couldn't figure out how to use setCellValue to change and display
the checkbox values. The current implementation adds a "Set Tags"
button which reads off the selected rows and uploads any tag changes.
Problem with the current implementation:
When the tree is rebuilt following a data refresh, the rebuild seems
to unselect any repainted rows. I'm not sure why. The current
workaround is to run setup_checkboxes() some reasonable delay after
refreshing the data. Too bad I can't find a blocking refresh, or
better yet, a post-refresh hook to use instead of setTimeout().
Anyhow, any tag selection activity by the user that happens during the
timeout will, obviously, be overwritten by the setup_checkboxes()
call.