saros icon indicating copy to clipboard operation
saros copied to clipboard

Improve UI to chose which resources to start a resource negotiation with

Open tobous opened this issue 5 years ago • 0 comments
trafficstars

As part of the migration to the reference-point-based resource model, #1035 adjusted the BaseResourceSelectionComposite. This composite contains a checkbox tree which can be used by the user to select the resources with which to create a new resource negotiation.

The tree uses the Eclipse CheckboxTreeViewer (org.eclipse.jface.viewers.CheckboxTreeViewer). Still using the tree for the new implementation created some usability issues as it does not support disabling tree nodes. As a result, the new logic handling user input simply reverts "illegal" inputs. This is problematic from a usability viewpoint as the user is not informed of why this input is illegal. They rather have to guess why nothing is happening. As a result, this behavior might also be seen as a bug by the user.

Proposed Solution

A better solution than reverting the user input would be replacing the used tree model to actually allow disabling entries. I am not sure whether such a tree model is actually offered by the Eclipse API or whether we would have to implement it ourselves.

Such a disableable checkbox-tree-model would allow for a much better user experience where invalid tree nodes are still displayed in their current state but are disabled. The tooltip of the node could provide information on why the node is currently disabled.

The following nodes would have to be disabled:

  • Nodes that are children of a currently selected base node. (We only support sharing full resource trees.)
  • Nodes that are parents of already shared content roots. (We don't support nested reference points.)
  • Nodes that are already shared reference points or their children. (We don't support nested reference points.)

In this model, we could also display already shared resources (instead of hiding them) and simply disable them. This would further improve the usability as the displayed resource tree would always still match the resource tree displayed in the project view. (With the current implementation, already shared resource trees are hidden from the view as they are always invalid selections.)

A further improvement would be allowing colored highlighting to better differentiate between already shared resources, currently selected base resources and currently selected child resources. But this is more of a nice to have than a strict requirement of the new tree model.

tobous avatar Jun 22 '20 15:06 tobous