@startuml

    namespace edu.kit.iti.formal.stvs.view.spec {

        class SpecificationTab {
            -variableView: VariableView
            -table: TablePane
            -diagram: TimingDiagramCollectionView
            -startButton: Button
            +getTable(): TablePane
            +setTable(table:TablePane): void
            +getDiagram(): TimingDiagramCollectionView
            +setDiagram(diagram:TimingDiagramCollectionView): void
            +getStartButton(): Button
        }

        class SpecificationsPaneController {
            -hybridSpecifications: ObservableList<HybridSpecification>
            -types: ObservableList<Type>
            -ioVars: ObservableList<IOVariable>
            +SpecificationsPaneController(types:ObservableList<Type>, ioVars:ObservableList<IOVariable>, hybridSpecifications:ObservableList<HybridSpecification>)
            +getHybridSpecifications(): ObservableList<HybridSpecification>
        }

        class SpecificationsPane {
            -tabPane: TabPane
            +getTabPane(): TabPane
        }

        class SpecificationTabController {
            -definedVars: ObservableSet<String>
            -types: ObservableList<Type>
            -ioVars: ObservableList<IOVariable>
            -spec: HybridSpecification
            +SpecificationTabController(hybridSpecification:HybridSpecification, types:ObservableList<Type>, ioVars:ObservableList<IOVariable>)
        }

        class javafx.scene.layout.VBox
        javafx.scene.layout.VBox <|-- SpecificationTab

        interface edu.kit.iti.formal.stvs.view.Controller {
            {abstract} +getView(): Node
        }
        edu.kit.iti.formal.stvs.view.Controller <|.. SpecificationsPaneController

        class javafx.scene.layout.AnchorPane
        javafx.scene.layout.AnchorPane <|-- SpecificationsPane

        edu.kit.iti.formal.stvs.view.Controller <|.. SpecificationTabController

        SpecificationsPaneController --> SpecificationsPane: view

        SpecificationTabController --> SpecificationTab: view

    }

@enduml
