2015-09-14 23:45:38 +00:00
{
2015-10-23 20:57:15 +00:00
"name" : "Timelines" ,
2015-09-14 23:45:38 +00:00
"description" : "Resources, templates, CSS, and code for Timelines." ,
"resources" : "res" ,
"extensions" : {
"constants" : [
{
"key" : "TIMELINE_MINIMUM_DURATION" ,
"description" : "The minimum duration to display in a timeline view (one hour.)" ,
"value" : 3600000
} ,
{
"key" : "TIMELINE_MAXIMUM_OFFSCREEN" ,
"description" : "Maximum amount, in pixels, of a Gantt bar which may go off screen." ,
"value" : 1000
} ,
{
"key" : "TIMELINE_ZOOM_CONFIGURATION" ,
"description" : "Describes major tick sizes in milliseconds, and width in pixels." ,
"value" : {
"levels" : [
1000 ,
2000 ,
5000 ,
10000 ,
20000 ,
30000 ,
60000 ,
120000 ,
300000 ,
600000 ,
1200000 ,
1800000 ,
3600000 ,
7200000 ,
14400000 ,
28800000 ,
43200000 ,
86400000
] ,
"width" : 200
}
}
] ,
"types" : [
{
2015-09-15 15:34:15 +00:00
"key" : "timeline" ,
2015-09-14 23:45:38 +00:00
"name" : "Timeline" ,
"glyph" : "S" ,
"description" : "A container for arranging Timelines and Activities in time." ,
"features" : [ "creation" ] ,
2015-09-15 15:34:15 +00:00
"contains" : [ "timeline" , "activity" ] ,
2015-09-14 23:45:38 +00:00
"properties" : [
{
"name" : "Start date/time" ,
2015-11-25 17:04:11 +00:00
"control" : "timeline-datetime" ,
2015-09-14 23:45:38 +00:00
"required" : true ,
"property" : [ "start" ] ,
"options" : [ "SET" ]
} ,
{
"name" : "Battery capacity (Watt-hours)" ,
"control" : "textfield" ,
"required" : false ,
"conversion" : "number" ,
"property" : [ "capacity" ] ,
"pattern" : "^-?\\d+(\\.\\d*)?$"
}
] ,
"model" : { "composition" : [ ] }
} ,
{
2015-09-15 15:34:15 +00:00
"key" : "activity" ,
2015-09-14 23:45:38 +00:00
"name" : "Activity" ,
"glyph" : "a" ,
"features" : [ "creation" ] ,
2015-09-15 15:34:15 +00:00
"contains" : [ "activity" ] ,
2015-09-14 23:45:38 +00:00
"description" : "An action that takes place in time. You can define a start time and duration. Activities can be nested within other Activities, or within Timelines." ,
"properties" : [
{
"name" : "Start date/time" ,
2015-11-25 17:04:11 +00:00
"control" : "timeline-datetime" ,
2015-09-14 23:45:38 +00:00
"required" : true ,
"property" : [ "start" ] ,
"options" : [ "SET" ]
} ,
{
"name" : "Duration" ,
2015-09-15 15:34:15 +00:00
"control" : "duration" ,
2015-09-14 23:45:38 +00:00
"required" : true ,
"property" : [ "duration" ]
}
] ,
"model" : { "composition" : [ ] , "relationships" : { "modes" : [ ] } }
} ,
{
2015-09-15 15:34:15 +00:00
"key" : "mode" ,
2015-09-14 23:45:38 +00:00
"name" : "Activity Mode" ,
"glyph" : "A" ,
"features" : [ "creation" ] ,
"description" : "Define resource utilizations over time, then apply to an Activity." ,
"model" : { "resources" : { "comms" : 0 , "power" : 0 } } ,
"properties" : [
{
"name" : "Comms (Kbps)" ,
"control" : "textfield" ,
"conversion" : "number" ,
"pattern" : "^-?\\d+(\\.\\d*)?$" ,
"property" : [ "resources" , "comms" ]
} ,
{
"name" : "Power (watts)" ,
"control" : "textfield" ,
"conversion" : "number" ,
"pattern" : "^-?\\d+(\\.\\d*)?$" ,
"property" : [ "resources" , "power" ]
}
]
}
] ,
"views" : [
{
2015-09-15 15:34:15 +00:00
"key" : "values" ,
2015-09-14 23:45:38 +00:00
"name" : "Values" ,
"glyph" : "A" ,
"templateUrl" : "templates/values.html" ,
2015-09-15 15:34:15 +00:00
"type" : "mode" ,
2015-09-14 23:45:38 +00:00
"uses" : [ "cost" ] ,
"editable" : false
} ,
{
2015-09-15 15:34:15 +00:00
"key" : "timeline" ,
2015-09-14 23:45:38 +00:00
"name" : "Timeline" ,
"glyph" : "S" ,
2015-09-15 15:34:15 +00:00
"type" : "timeline" ,
2015-09-14 23:45:38 +00:00
"description" : "A timeline view of Timelines and Activities." ,
"templateUrl" : "templates/timeline.html" ,
"toolbar" : {
"sections" : [
{
"items" : [
{
"method" : "add" ,
"glyph" : "+" ,
"control" : "menu-button" ,
"text" : "Add" ,
"options" : [
{
"name" : "Timeline" ,
"glyph" : "S" ,
2015-09-15 15:34:15 +00:00
"key" : "timeline"
2015-09-14 23:45:38 +00:00
} ,
{
"name" : "Activity" ,
"glyph" : "a" ,
2015-09-15 15:34:15 +00:00
"key" : "activity"
2015-09-14 23:45:38 +00:00
}
]
}
]
} ,
{
"items" : [
{
"glyph" : "\u00E9" ,
"description" : "Graph resource utilization" ,
"control" : "button" ,
"method" : "toggleGraph"
} ,
{
"glyph" : "A" ,
"control" : "dialog-button" ,
"description" : "Apply Activity Modes..." ,
"title" : "Apply Activity Modes" ,
"dialog" : {
"control" : "selector" ,
"name" : "Modes" ,
2015-09-15 15:34:15 +00:00
"type" : "mode"
2015-09-14 23:45:38 +00:00
} ,
"property" : "modes"
} ,
{
"glyph" : "\u00E8" ,
"description" : "Edit Activity Link" ,
"title" : "Activity Link" ,
"control" : "dialog-button" ,
"dialog" : {
"control" : "textfield" ,
"name" : "Link" ,
"pattern" : "^(ftp|https?)\\:\\/\\/\\w+(\\.\\w+)*(\\:\\d+)?(\\/\\S*)*$"
} ,
"property" : "link"
} ,
{
"glyph" : "\u0047" ,
"description" : "Edit Properties..." ,
"control" : "button" ,
"method" : "properties"
}
]
} ,
{
"items" : [
{
"method" : "remove" ,
"description" : "Remove item" ,
"control" : "button" ,
"glyph" : "Z"
}
]
}
]
}
}
] ,
2015-11-25 17:04:11 +00:00
"stylesheets" : [
{
"stylesheetUrl" : "css/timeline.css"
} ,
{
"stylesheetUrl" : "css/timeline-espresso.css" ,
"theme" : "espresso"
} ,
{
"stylesheetUrl" : "css/timeline-snow.css" ,
"theme" : "snow"
}
] ,
2015-09-14 23:45:38 +00:00
"representations" : [
{
2015-09-15 15:34:15 +00:00
"key" : "gantt" ,
2015-09-14 23:45:38 +00:00
"templateUrl" : "templates/activity-gantt.html" ,
"uses" : [ "timespan" , "type" ]
}
] ,
"templates" : [
{
"key" : "timeline-tabular-swimlane-cols-tree" ,
"priority" : "mandatory" ,
"templateUrl" : "templates/tabular-swimlane-cols-tree.html"
} ,
{
"key" : "timeline-tabular-swimlane-cols-data" ,
"priority" : "mandatory" ,
"templateUrl" : "templates/tabular-swimlane-cols-data.html"
} ,
{
"key" : "timeline-resource-graphs" ,
"priority" : "mandatory" ,
"templateUrl" : "templates/resource-graphs.html"
} ,
{
"key" : "timeline-resource-graph-labels" ,
"priority" : "mandatory" ,
"templateUrl" : "templates/resource-graph-labels.html"
} ,
{
"key" : "timeline-legend-item" ,
"priority" : "mandatory" ,
"templateUrl" : "templates/legend-item.html"
} ,
{
"key" : "timeline-ticks" ,
"priority" : "mandatory" ,
"templateUrl" : "templates/ticks.html"
}
] ,
"controls" : [
{
2015-11-25 17:04:11 +00:00
"key" : "timeline-datetime" ,
2015-09-14 23:45:38 +00:00
"templateUrl" : "templates/controls/datetime.html"
} ,
{
2015-09-15 15:34:15 +00:00
"key" : "duration" ,
2015-09-14 23:45:38 +00:00
"templateUrl" : "templates/controls/datetime.html"
}
] ,
"controllers" : [
{
"key" : "TimelineController" ,
"implementation" : "controllers/TimelineController.js" ,
2015-09-15 15:34:15 +00:00
"depends" : [ "$scope" , "$q" , "objectLoader" , "TIMELINE_MINIMUM_DURATION" ]
2015-09-14 23:45:38 +00:00
} ,
{
"key" : "TimelineGraphController" ,
"implementation" : "controllers/TimelineGraphController.js" ,
2015-09-15 15:34:15 +00:00
"depends" : [ "$scope" , "resources[]" ]
2015-09-14 23:45:38 +00:00
} ,
{
2015-10-23 20:56:34 +00:00
"key" : "TimelineDateTimeController" ,
"implementation" : "controllers/TimelineDateTimeController.js" ,
2015-09-14 23:45:38 +00:00
"depends" : [ "$scope" ]
} ,
{
"key" : "TimelineZoomController" ,
"implementation" : "controllers/TimelineZoomController.js" ,
"depends" : [ "$scope" , "TIMELINE_ZOOM_CONFIGURATION" ]
} ,
{
"key" : "TimelineTickController" ,
"implementation" : "controllers/TimelineTickController.js"
} ,
{
"key" : "TimelineTableController" ,
"implementation" : "controllers/TimelineTableController.js"
} ,
{
"key" : "TimelineGanttController" ,
"implementation" : "controllers/TimelineGanttController.js" ,
"depends" : [ "TIMELINE_MAXIMUM_OFFSCREEN" ]
} ,
{
"key" : "ActivityModeValuesController" ,
"implementation" : "controllers/ActivityModeValuesController.js" ,
2015-09-15 15:34:15 +00:00
"depends" : [ "resources[]" ]
2015-09-14 23:45:38 +00:00
}
] ,
"capabilities" : [
{
"key" : "timespan" ,
"implementation" : "capabilities/ActivityTimespanCapability.js" ,
"depends" : [ "$q" ]
} ,
{
"key" : "timespan" ,
"implementation" : "capabilities/TimelineTimespanCapability.js" ,
"depends" : [ "$q" ]
} ,
{
"key" : "utilization" ,
"implementation" : "capabilities/UtilizationCapability.js" ,
"depends" : [ "$q" ]
} ,
{
"key" : "graph" ,
"implementation" : "capabilities/GraphCapability.js" ,
"depends" : [ "$q" ]
} ,
{
"key" : "cost" ,
"implementation" : "capabilities/CostCapability.js"
}
] ,
"directives" : [
{
2015-09-15 15:34:15 +00:00
"key" : "mctSwimlaneDrop" ,
2015-10-23 20:48:07 +00:00
"implementation" : "directives/MCTSwimlaneDrop.js" ,
2015-09-14 23:45:38 +00:00
"depends" : [ "dndService" ]
} ,
{
2015-09-15 15:34:15 +00:00
"key" : "mctSwimlaneDrag" ,
2015-10-23 20:48:07 +00:00
"implementation" : "directives/MCTSwimlaneDrag.js" ,
2015-09-14 23:45:38 +00:00
"depends" : [ "dndService" ]
}
] ,
"services" : [
{
2015-09-15 15:34:15 +00:00
"key" : "objectLoader" ,
2015-09-14 23:45:38 +00:00
"implementation" : "services/ObjectLoader.js" ,
"depends" : [ "$q" ]
}
] ,
2015-09-15 15:34:15 +00:00
"resources" : [
2015-09-14 23:45:38 +00:00
{
"key" : "power" ,
"name" : "Power" ,
"units" : "watts"
} ,
{
"key" : "comms" ,
"name" : "Comms" ,
"units" : "Kbps"
} ,
{
"key" : "battery" ,
"name" : "Battery State-of-Charge" ,
"units" : "%"
}
]
}
}