Skip to content

Issues with soma.web.ControllerWidget #64

Description

@denisri

This ticket is not a single issue but will discuss and try to improve soma.web.ControllerWidget. We can summarize a short problems list here (by editing the ticket) and discuss in answers.

  • First, I had difficulties when opening it on a controller containing None values. I have fixed a few problems by adding tests, and I will push fixes.
  • The ControllerWidget opened on a Morphologist instance displays nothing, without a visible error.
  • The ControllerWidget opened on a Morphologist instance displays all values empty.
  • Deleting the widget (del controller_widget) doesn't actually destroy it: it remains visible. But gc.collect() does delete it afterwards.
  • ControllerWidget lacks the former set_visible() method to hide or show some selected fields
  • Values manually modified in ControllerWidget are not marked as modified as they used to do in Capsul 2. This is required to block completion on manually forced fields.
  • Fields names / values display layout should be adjusted / fixed. For now they cannot be properly resized, and there is no horizontal scrollbar, thus we need to set the widget fullscreen to get a chance to read the value
  • A number of field types are not supported, resulting in the full ControllerWidget to be completely empty.
  • Errors like unsupported types are not displayed nor logged and do not raise an exception, thus debugging is difficult.
  • A Controller view is either read-only, or completely modifiable, that is not only values can be edited, but fields canbe removed etc. We need a 3rd state where only values can be edited, and fields are fixed (except for OpenKeyControllers).
  • We should also be able to specify when expandable fields (like lists, dicts etc) are displayed expanded or folded at the beginning.
  • A few fields metadata may prove useful also, in order to display things to the user in tooltips, colors, or other visual hints: for instance input/ouput state, locked fields, or other information. Thus considering this and earlier points in this list, I guess controller descriptions should be passed in a 2-level JSON dict rather than the "direct" one passed now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    6.0bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions