// now, parse again the tree of nodes and set the IsChecked according to the
// the node implementation
for _, rootNode := range nodeCb.treeOfGongObjects.RootNodes {
for _, node := range rootNode.Children {
node.IsCheckboxDisabled = node.Impl.HasToBeDisabled()
node.IsChecked = node.Impl.HasToBeChecked()
for _, node := range node.Children {
node.IsCheckboxDisabled = node.Impl.HasToBeDisabled()
node.IsChecked = node.Impl.HasToBeChecked()
}
}
}
[x] Remove
if nodeImpl != nil {
nodeImpl.SetHasToBeCheckedValue(false)
nodeImpl.SetHasToBeDisabledValue(hasToBeDisabledValue)
}
Situation:
The NodeImplInterface is supposed to implement the control flow from the Node to its implementation.
Problem:
There are other functions in this interface that seem to fullfill control in the other direction.
Solution
Rename function
Notes that GongNodes are DSL Nodes
Clarify the control flow from the node to the node implementation and from the node implementation to the node
When the control computing the configuration of the gong nodes, it computes the "disabled".
So the control flow goes
then later
This is unecessary complication
Steps
DisableNode()
andUncheckNode()
and change the interface of the map of back pointersCleanup contructors....