hpi-swa/vivide

Aggregations: #object vs. #objects

Opened this issue · 0 comments

Until now, #objects in a model node is just used via #inputForChildren when computing the node's children. While it might be useful to also expose that in panes -- such as when selecting a model node -- it will confuse the user because a simple #asGroups would yield group contents instead of the group's representative.

That's why I already discarded the following idea:

ViPane >> notifyChangedSelection: selectedNodes
  "..."
	self
		setProperty: #lastSelection
		toValue: (selectedNodes gather: [:node |
			node isDictionary
				flag: #aggregation; "mt: See ViModelNode >> #inputForChildren. Support aggregation."
				ifTrue: [node at: #objects ifAbsent: [(node at: #object ifAbsent: [nil]) wrapList]]
				ifFalse: [node value wrapList]]) asArray.
  "..."

Let's better use #object instead, which the user can easily set to a group's contents instead of its representative while still using the representative for #text, #icon, etc.