@startuml

class App {
    -window: Stage

    +start(Stage stage)
    +main(String[] args)
    +goToHomePage()
}

class Item {
    -dueDate: String
    -itemDescription: String
    -isComplete: boolean

    +setComplete(boolean value): void
    +isComplete(): boolean
    +setDescription(String description): void
    +getDescription():
    +setDueDate(String dueDate): void
}

class ControllerHomePage {
    -radioButtonAll
    -radioButtonIncomplete
    -radioButtonComplete
    -tableView
    -tableIsComplete
    -tableDescription
    -tableDueDate

    +clear()
    +add()
    +remove()
    +edit()
    +saveAs()
    +load()
    +help()
    +changeDisplayRadioButtons()
}

class ControllerEdit {
    -item

    +submit()
}

class ControllerLoad {
    +pickFile()
    +loadFile()
    +parseData()
}

class ControllerSaveAs {
    +addLine()
    +pickFile()
    +save()
}

App -> ControllerHomePage

ControllerHomePage -> ControllerLoad
ControllerHomePage -> ControllerEdit
ControllerHomePage -> ControllerSaveAs

ControllerHomePage -> Item
ControllerEdit -> Item
ControllerSaveAs -> Item
ControllerLoad -> Item


@enduml