The project editor is used to plan and manage marketing projects in a visual editor.

This article describes the main components which are used in the Project Editor:

  • AAProjectPlanning
  • ProjectPlanningApplication
  • ProjectPlanningService

AAProjectPlanning

Asset automation module that triggers the recalculation of related project planning items for changes which are made outside the ProjectPlanningApplication.

It is triggered by:

  • changing the Planned or the Actual dates;
  • changing the duration;
  • creating a new dependency;
  • removing a dependent task.

It receives server events on changes in metadata, or dependencies changes which are described above, and creates jobs that persist changes asynchronously which result in updating a project or a task's position on the timeline.

Supported event types:

  • checkin: an existing asset is checked in;
  • new-child: a new child relation to another asset is created;
  • del-child: a child relation is deleted.

These events will trigger the ProjectPlanningService to recalculate a project's or a task's positions with respect to each other. This is done by recalculating child items, predecessors and successors and to move items of which the positions are changed, to reflect the changes on the timeline.

ProjectPlanningApplication

It extends AbstractAssetApplication and overrides the updateModel method which rebuilds the Project Editor view model after changes happened on the timeline. It registers and unregisters asset dependencies for a live query.

It can be triggered by:

  • creating or deleting a project or a task on the timeline;
  • moving a project or a task on the timeline;
  • resizing a project or a task on the timeline, except for milestones that cannot be resized.

ProjectPlanningService

It is a service for calculating dates of project planning items, such as project and task subtypes, and for removing dependencies. The ProjectPlanningService is used in the ProjectPlanningApplication and AAProjectPlanning modules.