gruppe07-1337-projekt2-tasklist

Klassendiagramm

@startuml
class Tasklist {
  + {static} void main(String[] args)

}

@enduml

@startuml
package source {

    enum Priority {
        IMPORTANT
        NOT_IMPORTANT
    }

    note bottom of ProjectSource: Directory
    class ProjectSource {
        - Project parent
        - Path path
        - List<Project> children
        - List<Appointment> appointments
        - List<Note> notes
        - List<Workspace> workspaces
        - List<Quicklink> quicklinks
        + List<Appointment> getAllAppointments()
    }
    class AppointmentSource {
        - String title
        - String comment
        - Priority priority
        - String repeatCron
        - LocalDateTime start
        - LocalDateTime end
    }

    note bottom of NoteSource: File
    class NoteSource {
    }

    note bottom of QuicklinkSource: eg Moodle Link
    class QuicklinkSource {
        - URI uri
    }
    class WorkspaceSource {
        - List<Quicklink> quicklinks
    }

    WorkspaceSource <|-- Source
    QuicklinkSource <|-- Source
    NoteSource <|-- Source
    AppointmentSource <|-- Source
    ProjectSource <|-- Source
    class Source {
        - String name
        - Path path
        + {abstract} create(String name)
        + {abstract} rename(String name)
        + {abstract} delete()
    }
}
package core {

    Project *-- ProjectSource
    class Project {

    }

    Appointment *-- AppointmentSource
    class Appointment {

    }

    Note *-- NoteSource
    class Note {

    }

    Quicklink *-- QuicklinkSource
    class Quicklink {

    }


    Workspace *-- WorkspaceSource
    class Workspace {

    }



    interface IProjectManager {
            + ProjectSource deserializeProject(File directory)
            + Project watchProjectChanges(ProjectSource project)
            + Project loadProject(File directory)
        }

    interface ISerializer {
        + String serialize(AppointmentSource appointment)
        + AppointmentSource deserialize(String data)

        + String serialize(WorkspaceSource workspace)
        + WorkspaceSource deserialize(String data)

    }

}



package logic {
    ProjectManager <|-- IProjectManager
    class ProjectManager  {

    }

    Serializer <|-- ISerializer
    class Serializer {

    }

    class AppointmentFilter {
        - Project rootProject


    }
}
@enduml

@startuml


package ui {
   class AppointmentsViewController{

   }

   class FileBrowserViewController{

   }

   class WorkspaceViewController{

   }

   class SettingsViewController{

   }

   class TasklistController {

   }

    note bottom of UI: start javafx
   class UI {

   }
}




@enduml

Libraries

Markdown parser yaml parser open files