Client API. The Codename One framework your app is built on: this runs on the device, not in a backend.

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.

Types

class AbstractScheduleModelThe listener list and the refusals every read-only model shares.
class CalendarScheduleModelA schedule read from a CalendarSource: the device’s calendars, CalDAV, Google or Microsoft.
class DefaultScheduleModelA schedule held in memory, which accepts every edit.
class GanttTaskA task in a project: a piece of work, a milestone, or a summary of the tasks under it.
class LevelingResultWhat ResourceLeveler.level proposes: a delay for some tasks, and what the project would look like with them.
interface ProjectChangeListenerTold when a ProjectModel changes: a task, a link, or the dates a scheduling pass produced.
class ProjectModelA project: a tree of tasks, the links between them, the resources they use and the calendar their durations are measured in.
class ProjectSchedulerWorks out when every task of a project happens.
class ResourceAssignmentHow much of a resource a task uses while it runs.
class ResourceLevelerFinds where a project asks more of a resource than there is, and proposes delays that take the excess away.
class ResourceOverallocationA stretch of time in which the tasks assigned to a resource need more of it than there is.
interface ScheduleChangeListenerTold when the items or resources of a ScheduleModel change.
class ScheduleItemOne thing on a schedule: an appointment, a shift, a block of busy time.
interface ScheduleModelWhat a Scheduler shows and edits.
class ScheduleResourceSomething work is booked against: a person, a room, a machine, a calendar.
class TaskDependencyA link between two tasks: the successor waits for the predecessor.
class TimeMathCalendar arithmetic on epoch milliseconds in a time zone.
class WorkCalendarThe hours work happens in: a weekly pattern, and the days that differ from it.