Package com.codename1.scheduling


package com.codename1.scheduling

Schedules and projects as data: what a Scheduler or a Gantt shows, and the engine that works out a project's dates.

Nothing here draws. The components are in com.codename1.ui.scheduler, and everything in this package runs without one, on a server too.

  • ScheduleModel is items in time, optionally per ScheduleResource. DefaultScheduleModel keeps them in memory, and CalendarScheduleModel reads and writes a com.codename1.calendar.CalendarSource.
  • ProjectModel is a tree of GanttTask with TaskDependency links. ProjectScheduler gives every task its dates and its slack, in the working time a WorkCalendar describes, and marks the critical path.
  • ResourceLeveler finds resources that are overbooked and proposes delays that resolve it.

Every instant is epoch milliseconds, and every duration is milliseconds of working time. The classes are not thread safe: use a model from one thread, which for a model shown by a component is the EDT.

  • Class
    Description
    The listener list and the refusals every read-only model shares.
    A schedule read from a CalendarSource: the device's calendars, CalDAV, Google or Microsoft.
    A schedule held in memory, which accepts every edit.
    A task in a project: a piece of work, a milestone, or a summary of the tasks under it.
    A limit on when a task may be scheduled, on top of its dependencies.
    What ResourceLeveler.level proposes: a delay for some tasks, and what the project would look like with them.
    Told when a ProjectModel changes: a task, a link, or the dates a scheduling pass produced.
    A project: a tree of tasks, the links between them, the resources they use and the calendar their durations are measured in.
    Works out when every task of a project happens.
    How much of a resource a task uses while it runs.
    Finds where a project asks more of a resource than there is, and proposes delays that take the excess away.
    A stretch of time in which the tasks assigned to a resource need more of it than there is.
    Told when the items or resources of a ScheduleModel change.
    One thing on a schedule: an appointment, a shift, a block of busy time.
    How an item is drawn, apart from its colour.
    What a Scheduler shows and edits.
    Something work is booked against: a person, a room, a machine, a calendar.
    A link between two tasks: the successor waits for the predecessor.
    Which end of the predecessor holds which end of the successor.
    Calendar arithmetic on epoch milliseconds in a time zone.
    The hours work happens in: a weekly pattern, and the days that differ from it.