@startuml Namespace TreeView{ QWidget <|-- PdmUiTreeView PdmUiTreeView --* PdmUiTreeViewEditor PdmUiTreeView --* QTreeView PdmUiTreeViewEditor "N" <--> "1" PdmUiItem<> PdmUiTreeViewEditor "UpdateUi()" <--> "setValueFromUi()" PdmUiItem<> PdmUiTreeViewEditor "signals"<--> "confAndUpdate()" QTreeView PdmUiTreeViewEditor ---* PdmUiTreeViewModel 'PdmUiTreeViewEditor --* "?, N" PdmUiTreeItemEditor PdmUiTreeViewModel --> PdmUiTreeItemEditor : "SetValueFromUi()" PdmUiTreeViewModel <-- PdmUiTreeItemEditor : "UpdatUi()" PdmUiTreeViewModel --* PdmUiTreeOrdering 'PdmUiTreeViewModel ---* "?, N" PdmUiTreeItemEditor PdmUiTreeOrdering "N" <--> "1" PdmUiItem2<> PdmUiTreeOrdering --* PdmUiTreeItemEditor PdmUiTreeItemEditor "N" <-- PdmUiItem2<> : UpdateUi(), removeFromList() PdmUiTreeItemEditor --> "1" PdmUiItem2<> : setValueFromUi() } namespace Properties{ QWidget <|-- PdmUiPropertyView PdmUiPropertyView --* PdmUiDefaultObjectEditor PdmUiDefaultObjectEditor --* "N" PdmUiFieldEditor "QWidget3<>" --* "QWidget2<>" PdmUiPropertyView --* "QWidget3<>" PdmField --> "N" PdmUiFieldEditor : UpdateUi(), removeFromList() PdmUiFieldEditor --> "1" PdmField : setValueFromUi() PdmUiFieldEditor --> "QWidget2<>" : configureAndUpdate() PdmUiFieldEditor <-- "QWidget2<>" : signals() PdmUiDefaultObjectEditor "N" <--> "1" PdmObject } @enduml