@startuml ""
class "mxGraph\nComponent"
package "application"{
class "Application\nLanguage"
package "actions"{
abstract class "Abstract\nPopupAction"
}
package "editor"{
class "Editor"
abstract class "Stage"
package "stages"{
class "ControlFlow\nDelegationStage"
class "ControlFlow\nDelegationCellEditor"
'------------------------------------------
"Stage" <|--- "ControlFlow\nDelegationStage"
ControlFlow\nDelegationCellEditor o-up-> ControlFlow\nDelegationStage
}
package "views"{
abstract class "PopupMenuBase"
class "Navigation\nWindow"
package "controlFlowDelegation"{
class "ControlFlow\nDelegationStage\nPopupMenu"
class "FlowLayerWindow"
'------------------------------------------
"PopupMenuBase" <|-- "ControlFlow\nDelegationStage\nPopupMenu"
"FlowLayerWindow" o---> "ControlFlow\nDelegationStage"
}
}
"Editor" o-up-> "mxGraph\nComponent"
"Editor" o---> "Stage"
ControlFlow\nDelegationStage\nPopupMenu o--> ControlFlow\nDelegationStage
}
}
package "models"{
package "controlFlowModel"{
class "CallEdge"
class "CallEdge\nAttribute"
class "Composite\nCallEdgeAttribute"
class "EventChannel\nObjectNode"
class "ObjectNode"
class "Stateful\nObjectNode"
class "ObjectNode\nAttribute"
class "CallGraph"
class "ControlFlowGraph"
class "ControlFlow\nDelegator"
'------------------------------------------
"ObjectNode" <|-- "Stateful\nObjectNode"
"ObjectNode" <|-- "EventChannel\nObjectNode"
"CallEdge\nAttribute" o-r-> "CallEdge"
"CallEdge\nAttribute" o--> "ObjectNode"
"Composite\nCallEdgeAttribute" "1 " o----> "1..*" "CallEdge\nAttribute"
"CallEdge\nAttribute" <|---- "Composite\nCallEdgeAttribute"
"ObjectNode\nAttribute" o--> "ObjectNode"
"ControlFlow\nDelegator" o--> "ControlFlowGraph"
"ControlFlowGraph" "1" o--> "2" "CallGraph"
}
}
@enduml