DefSchedulePDM class (Gantt)

DefSchedulePDM()

new DefSchedulePDM()

The DefSchedulePDM type defines the options to call the Items.SchedulePDM() method. The Items.SchedulePDM method computes the start and end dates of the project tasks based on the tasks' dependencies and durations. The DefSchedulePDM type includes options to customize the scheduling process, such as handling cycles in dependencies, highlighting critical paths, and fixing project start or end dates. Also, the DefSchedulePDM type includes options to specify shapes to apply on bars that are part of the critical path, bars that are not part of the critical path, bars that are in a cycle, and bars that make the layout impossible to complete. The DefSchedulePDM type also includes options to specify the appearance of links that are part of the critical path and links that are not part of the critical path.

Members

(static) callHasCycle :boolean

The callHasCycle (exPDMCallHasCycle) field determines whether the control displays the full dependency cycle when the layout cannot be completed. A cycle occurs when a set of activities depends on each other in a circular manner, making it impossible to calculate a valid schedule.

The cycleShape (exPDMCycleColor) field specifies the shape used to highlight bars that are part of such a cycle. These two fields work together and control how cycles are visually indicated. When the SchedulePDM() method is called, the control attempts to arrange activities based on their dependencies. If the layout fails because a dependency cycle exists:

  • If callHasCycle is set to true or null, all bars involved in the cycle are highlighted using the shape defined by the cycleShape field. This ensures the entire cycle is visible, not just the first bar that caused the scheduling failure.
  • If callHasCycle is set to false, the cycle is not displayed, and no bars are highlighted as part of the cycle, even though the layout cannot be completed.

In addition to cycle detection, if there are bars that prevent the layout from being completed for other reasons (such as missing dependencies, invalid references, or inconsistent links), those bars are highlighted using the shape specified by the errorShape field. By distinguishing between cycle-related issues (cycleShape) and other scheduling errors (errorShape), the control makes it easier to identify, understand, and resolve problems in the project schedule.

Type:
  • boolean
Example
false {boolean}, no cycle is displayed
true {boolean} or null {null}, the entire cycle is shown with a different shape, as specified by cycleShape field
callHasCycle

(static) criticalPathBarShape :any

The criticalPathBarShape(exPDMCriticalPathBarColor) field specifies shape to apply on critical-path bars (highlights the bars that are part of the critical-path). The critical path is the sequence of tasks that determines the minimum project duration. If any task on the critical path is delayed, the entire project will be delayed. By highlighting the bars that are part of the critical path using the shape specified by the criticalPathBarShape field, users can easily identify which tasks are critical to the project's timeline and focus their attention on managing those tasks effectively. The ItemBar.CriticalPath property indicates whether the current bar is part of the critical path (1-based).

The criticalPathBarShape field can be any of the following:

  • the shape's name within the exontrol.Shapes.Tree or exontrol.Shapes namespace
  • a CSS color
  • a JSON string-representation of an object of exontrol.Def.Shape type, for the column itself
  • an object of {normal,hover,click,disabled} type. The normal, hover, click and disabled are objects of exontrol.Def.Shape type
Type:
  • any
Example
"" {string} or null {null}, no shape is applied
"red" {string}, fills the object's background in red (CSS color)
'{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type)
{fillColor: "red"} {object}, fills the object's background in red
{frameColor: "rgb(0,255,0)", frameSize: 2, opacity: 0.5} {object}, shows the object as semi-transparent and displays a green and ticker-frame arround it
"xxx" {string}, indicates that exontrol.Shapes.Gantt.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied)
"Button" or exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace (@since 5.2)
criticalPathBarShape

(static) criticalPathLenMethod :number

The criticalPathLenMethod(exPDMCriticalPathLenMethod) field defines the way how the length of the critical path is computed (internal use only). The length of the critical path can be computed in different ways, such as by counting the number of tasks on the critical path, summing the durations of tasks on the critical path, or using other criteria. The criticalPathLenMethod field allows users to specify which method to use for calculating the critical path length, which can be useful for reporting, analysis, or visualization purposes. By customizing how the critical path length is determined, users can gain insights into their project schedule and make informed decisions about resource allocation and task management.
Type:
  • number
criticalPathLenMethod

(static) criticalPathLinkApp :DisplayLinkType

The criticalPathLinkApp(exPDMCriticalPathLinkColor) field specifies the appearance (color, width, ...) to apply on links of the critical path (highlights the links that are part of the critical-path). The critical path is the sequence of tasks that determines the minimum project duration. If any task on the critical path is delayed, the entire project will be delayed. By highlighting the bars that are part of the critical path using the shape specified by the criticalPathBarShape field, users can easily identify which tasks are critical to the project's timeline and focus their attention on managing those tasks effectively. The ItemBar.CriticalPath property indicates whether the current bar is part of the critical path (1-based).

Specifies the CSS color to show links of the critical path, or an object of {type, dir, width, color, arrow, style, startPos, endPos} type as explained below:

  • type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round)
  • dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides
  • width {number}, specifies the link's width or size (1 by default)
  • color {string}, indicates the link's color (partial-black by default)
  • arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default)
  • arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2)
  • arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2)
  • style {array}, specifies the link's dash pattern to show the lines (solid by default)
  • startPos {any}, indicates the list of corners of in-element, the link can start from
  • endPos {any}, indicates the list of corners of out-element, the link can end to
Type:
Example
"red" {string}, shows the link in red
"#ff0000" {string}, shows the link in red
"rgba(255,0,0,0.5)" {string}, shows the link in partial-red
"rgba(0,0,0,0)", hides the link (transparent-color)
{color: "green", width: 2} {object}, shows the off-link ticker in green
criticalPathLinkApp

(static) criticalPathOffBarShape :any

The criticalPathOffBarShape(exPDMCriticalPathOffBarColor) field specifies shape to apply on non critical-path bars (highlights the bars that are not part of the critical-path). By highlighting the bars that are not part of the critical path using the shape specified by the criticalPathOffBarShape field, users can easily distinguish between critical and non-critical tasks in their project schedule. This allows them to focus on managing critical tasks effectively while still keeping an eye on non-critical tasks that may have more scheduling flexibility. The ItemBar.CriticalPath property indicates whether the current bar is part of the critical path (1-based), so bars with ItemBar.CriticalPath equal to 0 are considered non-critical and will be highlighted using the criticalPathOffBarShape.

The criticalPathOffBarShape field can be any of the following:

  • the shape's name within the exontrol.Shapes.Tree or exontrol.Shapes namespace
  • a CSS color
  • a JSON string-representation of an object of exontrol.Def.Shape type, for the column itself
  • an object of {normal,hover,click,disabled} type. The normal, hover, click and disabled are objects of exontrol.Def.Shape type
Type:
  • any
Example
"" {string} or null {null}, no shape is applied
"red" {string}, fills the object's background in red (CSS color)
'{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type)
{fillColor: "red"} {object}, fills the object's background in red
{frameColor: "rgb(0,255,0)", frameSize: 2, opacity: 0.5} {object}, shows the object as semi-transparent and displays a green and ticker-frame arround it
"xxx" {string}, indicates that exontrol.Shapes.Gantt.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied)
"Button" or exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace (@since 5.2)
criticalPathOffBarShape

(static) criticalPathOffLinkApp :DisplayLinkType

The criticalPathOffLinkApp(exPDMCriticalPathOffLinkColor) field specifies the appearance (color, width, ...) to apply on links that are not part of the critical path (highlights the links that are not part of the critical-path). The critical path is the sequence of tasks that determines the minimum project duration. If any task on the critical path is delayed, the entire project will be delayed. By highlighting the bars that are part of the critical path using the shape specified by the criticalPathBarShape field, users can easily identify which tasks are critical to the project's timeline and focus their attention on managing those tasks effectively. This field allows users to visually differentiate between links that are part of the critical path and those that are not, making it easier to analyze dependencies and focus on critical tasks. The ItemBar.CriticalPath property indicates whether the current bar is part of the critical path (1-based), so links connected to bars with ItemBar.CriticalPath equal to 0 are considered non-critical and will be highlighted using the criticalPathOffLinkApp.

Specifies the CSS color to show links that are not part of the critical path, or an object of {type, dir, width, color, arrow, style, startPos, endPos} type as explained below:

  • type {exontrol.LinkTypeEnum}, specifies the type of the link as 0 (rectangular), 1 (direct), 2(straight) or 3(round)
  • dir {number}, specifies whether the link's direction is shown or hidden as 0 (hidden), 1(shows the direction/arrow where the link begins), 2(shows the direction where the link ends, default) or 3 shows the arrows in both sides
  • width {number}, specifies the link's width or size (1 by default)
  • color {string}, indicates the link's color (partial-black by default)
  • arrow {string}, indicates the arrow's color. If it is missing or not specified the arrow is shown using the link's color (gray by default)
  • arrowSize {number}, indicates the arrow's size. If it is missing or not specified the arrow's size is defined by link's width (1 by default) (since 2.2)
  • arrowShape {object}, defines an object of exontrol.Def.Shape type to customize the shape of the link's arrow (for instance shows the link's arrow as a circle instead of a triangle) (since 2.2)
  • style {array}, specifies the link's dash pattern to show the lines (solid by default)
  • startPos {any}, indicates the list of corners of in-element, the link can start from
  • endPos {any}, indicates the list of corners of out-element, the link can end to
Type:
Example
"gray" {string}, shows the off-link in gray
"#bebebe" {string}, shows the off-link in gray
"rgba(0,0,0,0.5)" {string}, shows the off-link in partial-black
"rgba(0,0,0,0)", hides the off-link (transparent-color)
{color: "rgba(190, 190, 190, 0.1)", style: 2} {object}, shows the off-link dotted in light-gray
criticalPathOffLinkApp

(static) cycleShape :any

The cycleShape (exPDMCycleColor) field specifies the shape applied to cycling bars. Set the callHasCycle field to true to ensure the chart displays the entire cycle, not just the node that fails to be arranged in the layout. The cycleShape field works together with the callHasCycle field. When the SchedulePDM() method is invoked, and the layout cannot be completed because of a dependency cycle, the control highlights all bars involved in the cycle using the shape defined by the cycleShape field. If certain bars prevent the layout from being completed (for example, due to missing dependencies or other issues), those bars are highlighted using the shape specified by the errorShape field. This helps users quickly identify and resolve scheduling problems within the project.

The cycleShape field can be any of the following:

  • the shape's name within the exontrol.Shapes.Tree or exontrol.Shapes namespace
  • a CSS color
  • a JSON string-representation of an object of exontrol.Def.Shape type, for the column itself
  • an object of {normal,hover,click,disabled} type. The normal, hover, click and disabled are objects of exontrol.Def.Shape type
Type:
  • any
Example
"" {string}, null {null}, no shape is applied
"red" {string}, fills the object's background in red (CSS color)
'{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type)
"xxx" {string}, indicates that exontrol.Shapes.Gantt.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied)
"Button" or exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace (@since 5.2)
cycleShape

(static) errorShape :any

The errorShape(exPDMErrorColor) field specifies shape to apply on error-bars (highlights the bars that makes the layout impossible to complete). The errorShape field is used in conjunction with the callHasCycle field. When the SchedulePDM() method is called, if the layout can not be completed due to a cycle in dependencies, the control highlights the bars that are part of the cycle using the shape specified by the cycleShape field. If there are bars that make the layout impossible to complete (e.g., due to missing dependencies or other issues), those bars are highlighted using the shape specified by the errorShape field. This allows users to easily identify and address issues in their project schedule.

The errorShape field can be any of the following:

  • the shape's name within the exontrol.Shapes.Tree or exontrol.Shapes namespace
  • a CSS color
  • a JSON string-representation of an object of exontrol.Def.Shape type, for the column itself
  • an object of {normal,hover,click,disabled} type. The normal, hover, click and disabled are objects of exontrol.Def.Shape type
Type:
  • any
Example
"" {string}, null {null}, no shape is applied
"red" {string}, fills the object's background in red (CSS color)
'{"fillColor": "red"}' or '{"normal":{"fillColor": "red"}}' {string}, fills the object's background in red (JSON-representation of an object of exontrol.Def.Shape type)
"xxx" {string}, indicates that exontrol.Shapes.Pivot.xxx or exontrol.Shapes.xxx is applied on the object's background. If the xxx field is missing, no custom shape is applied (no default object's shape is be applied)
"Button" or exontrol.Shapes.Button {object}, applies the "Button" shape on the object as defined into exontrol.Shapes namespace (@since 5.2)
errorShape

(static) scheduleDate :any

The scheduleDate(exPDMScheduleDate) field specifies the date to start or end the project (valid only if the scheduleType field is 1 or 2). The scheduleType field indicates the type the next SchedulePDM call executes.

The type the scheduleDate field supports are:

  • scheduleDate {string}, defines the date in string-format as "#MM/DD/YYYY[ HH:mm:ss]#"
  • scheduleDate {Date}, indicates a JavaScript date to be copied
  • scheduleDate {number} integer value representing the year of the date to be created sch
  • eduleDate {null}, indicates the current date and time (equivalent of Now)
Type:
  • any
Example
null {null}, the project starts or ends today (depending on scheduleType field)
"#12/1/2020#" {string}, the project starts or ends on Dec 1st, 2020 (depending on scheduleType field)
scheduleDate

(static) scheduleType :number

The scheduleType(exPDMScheduleType) field indicates the type the next SchedulePDM call executes. The scheduleDate field specifies the date to start or end the project (valid only if the scheduleType field is 1 or 2).

The scheduleType field specifies the type the next SchedulePDM call executes, as explained:

  • 0 {number}, no effect. The start and end of the project is not fixed, so once a bar is moved the starting or ending point of the project may be variable
  • 1 {number}, fixes the start of the project to date indicated by the scheduleDate field (the scheduleDate indicates the start of the project)
  • 2 {number}, fixes the end of the project to date indicated by the scheduleDate field (the scheduleDate indicates the end of the project)
Type:
  • number
Example
null {null}, defaults to 0, no effect
1 {number}, the scheduleDate indicates the start of the project
scheduleType