{ "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" } ] } ] } }