openmct/platform/features/layout/bundle.json

291 lines
12 KiB
JSON
Raw Normal View History

{
"name": "Layout components.",
"description": "Plug in adding Layout capabiltiies.",
"extensions": {
"views": [
{
"key": "layout",
"name": "Layout",
"glyph": "L",
"type": "layout",
"templateUrl": "templates/layout.html",
"uses": [ "composition" ],
"gestures": [ "drop" ]
},
{
"key": "fixed",
"name": "Fixed Position",
"glyph": "3",
"type": "telemetry.panel",
"templateUrl": "templates/fixed.html",
"uses": [ "composition" ],
"gestures": [ "drop" ],
"toolbar": {
"sections": [
{
"items": [
{
"method": "add",
"glyph": "+",
"control": "menu-button",
"text": "Add",
"options": [
{
"name": "Box",
"glyph": "\u2610",
"key": "fixed.box"
},
{
"name": "Line",
"glyph": "-",
"key": "fixed.line"
},
{
"name": "Text",
"glyph": "\u1D1B",
"key": "fixed.text"
},
{
"name": "Image",
"glyph": "\u2353",
"key": "fixed.image"
}
]
}
]
},
{
"items": [
{
"method": "order",
"glyph": "o",
"control": "menu-button",
"options": [
{
"name": "Move to Top",
"glyph": "^",
"key": "top"
},
{
"name": "Move Up",
"glyph": "^",
"key": "up"
},
{
"name": "Move Down",
"glyph": "v",
"key": "down"
},
{
"name": "Move to Bottom",
"glyph": "v",
"key": "bottom"
}
]
},
{
"property": "fill",
"glyph": "X",
"control": "color"
},
{
"property": "stroke",
"glyph": "-",
"control": "color"
},
{
"property": "color",
"glyph": "\u1D1B",
"mandatory": true,
"control": "color"
},
{
"property": "url",
"glyph": "\u2353",
"control": "dialog-button",
"title": "Image Properties",
"dialog": {
"control": "textfield",
"name": "Image URL",
"required": true
}
},
{
"property": "text",
"glyph": "p",
"control": "dialog-button",
"title": "Text Properties",
"dialog": {
"control": "textfield",
"name": "Text",
"required": true
}
},
{
"method": "showTitle",
"glyph": "+",
"control": "button",
"description": "Show telemetry element title."
},
{
"method": "hideTitle",
"glyph": "X",
"control": "button",
"description": "Hide telemetry element title."
}
]
},
{
"items": [
{
"method": "remove",
"control": "button",
"glyph": "Z"
}
]
}
]
}
}
],
"representations": [
{
"key": "frame",
"templateUrl": "templates/frame.html"
}
],
"controllers": [
{
"key": "LayoutController",
"implementation": "LayoutController.js",
"depends": [ "$scope" ]
},
{
"key": "FixedController",
"implementation": "FixedController.js",
"depends": [
"$scope",
"$q",
"dialogService",
"telemetrySubscriber",
"telemetryFormatter"
]
}
],
"templates": [
{
"key": "fixed.telemetry",
"templateUrl": "templates/elements/telemetry.html"
},
{
"key": "fixed.box",
"templateUrl": "templates/elements/box.html"
},
{
"key": "fixed.line",
"templateUrl": "templates/elements/line.html"
},
{
"key": "fixed.text",
"templateUrl": "templates/elements/text.html"
},
{
"key": "fixed.image",
"templateUrl": "templates/elements/image.html"
}
],
"types": [
{
"key": "layout",
"name": "Layout",
"glyph": "L",
"description": "A layout in which multiple telemetry panels may be displayed.",
"features": "creation",
"model": { "composition": [] },
"properties": [
{
"name": "Preferred Size",
"control": "select",
"options": [
{ "name": "Fit to Window", "value": "FIT" },
{ "name": "Fixed Size", "value": "FIXED" }
],
"key": "preferredSize"
},
{
"label": "Layout Grid",
"control": "composite",
"pattern": "^(\\d*[1-9]\\d*)?$",
"items": [
{
"name": "Horizontal grid (px)",
"control": "textfield"
},
{
"name": "Vertical grid (px)",
"control": "textfield"
}
],
"key": "layoutGrid",
"conversion": "number[]"
}
]
},
{
"key": "telemetry.panel",
"name": "Telemetry Panel",
"glyph": "t",
"description": "A panel for collecting telemetry elements.",
"delegates": [ "telemetry" ],
"features": "creation",
"model": { "composition": [] },
"properties": [
{
"name": "Preferred Size",
"control": "composite",
"items": [
{
"name": "Width (px)",
"control": "textfield"
},
{
"name": "Height (px)",
"control": "textfield"
}
],
"pattern": "^(\\d*[1-9]\\d*)?$",
"property": "preferredSize",
"conversion": "number[]"
},
{
"name": "Layout Grid",
"control": "composite",
"items": [
{
"name": "Horizontal grid (px)",
"control": "textfield"
},
{
"name": "Vertical grid (px)",
"control": "textfield"
}
],
"pattern": "^(\\d*[1-9]\\d*)?$",
"property": "layoutGrid",
"conversion": "number[]"
},
{
"name": "Default View",
"control": "select",
"options": [
{ "name": "Plot", "value": "plot" },
{ "name": "Scrolling", "value": "scrolling" }
],
"comment": "TODO: Infer values from type",
"key": "defaultView"
}
]
}
]
}
}