mirror of
https://github.com/nasa/openmct.git
synced 2024-12-22 22:42:24 +00:00
425655bae0
Updates to sub object selection, first cut of selection APIs. * [API] Add inspector view registry to register inspector view providers and show a view in the inspector. [API] Modify the selection API to register the click event and handle the event. The API will add a class to the selected object and the immediate parent of the selected object. [Directive] Implemenet mct-selectable directive for making an element selectable. [Layout] Update the layout controller to use the Selection API. Also, add double click gesture to allow drilling into a selected object. Populate the Elements pool with contained elements of the selected object. Update toolbar and inspector to listen for the changes in selection. * [Frontend] Mods to markup and CSS for sub-object selection * MCTSelectable allows selection in initialization, use to select on navigation [Frontend] Show grid in first nested layout, hide from deeper nesting. Only show grids when applicable to relative selection. * Fix checkstyle and lint errors * Bring back the change that made mct-init-select work * [Inspector] Make sure the right content is displayed based on whether a view provider exists or not. * Only show table options when editing * Make reviewers' requested changes * Fix broken tests * [Frontend] Cleanups and tweaks Fixes #1811 - Cleanups between frame, editor and selecting.scss; - Hover and selected borders visually pumped up a bit; - Solid borders on hover and selecting when browsing; - Dashed borders for layouts when editing; - Fixed cursor to only show move capability when element is selected; * [Frontend] Tweaks to frame.no-frame layout Fixes #1811 - Margin set to 0; - Overflow set to hidden; * [Frontend] Fixed position items border width fixed Fixes #1811 - Set to 1px; * Add tests for inspector controller and fix broken tests. Clean up code. * [Fixed Position] Stop event propagation on click handlers in fixed position to avoid the event reaching the selection click handlers which caused issues with toolbar and selection." * Fix tests * Add tests * Add test * Remove element from document
83 lines
4.0 KiB
HTML
83 lines
4.0 KiB
HTML
<!--
|
|
Open MCT, Copyright (c) 2014-2017, United States Government
|
|
as represented by the Administrator of the National Aeronautics and Space
|
|
Administration. All rights reserved.
|
|
|
|
Open MCT is licensed under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
http://www.apache.org/licenses/LICENSE-2.0.
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
License for the specific language governing permissions and limitations
|
|
under the License.
|
|
|
|
Open MCT includes source code licensed under additional open source
|
|
licenses. See the Open Source Licenses file (LICENSES.md) included with
|
|
this source code distribution or the Licensing information page available
|
|
at runtime from the About dialog for additional information.
|
|
-->
|
|
|
|
<div class="abs l-layout"
|
|
ng-controller="LayoutController as controller"
|
|
ng-click="controller.bypassSelection($event)">
|
|
|
|
<!-- Background grid -->
|
|
<div class="l-grid-holder"
|
|
ng-show="!controller.drilledIn"
|
|
ng-click="controller.bypassSelection($event)">
|
|
<div class="l-grid l-grid-x"
|
|
ng-if="!controller.getGridSize()[0] < 3"
|
|
ng-style="{ 'background-size': controller.getGridSize() [0] + 'px 100%' }"></div>
|
|
<div class="l-grid l-grid-y"
|
|
ng-if="!controller.getGridSize()[1] < 3"
|
|
ng-style="{ 'background-size': '100% ' + controller.getGridSize() [1] + 'px' }"></div>
|
|
</div>
|
|
|
|
<div class="abs frame t-frame-outer child-frame panel s-selectable s-moveable s-hover-border {{childObject.getId() + '-' + $id}} t-object-type-{{ childObject.getModel().type }}"
|
|
ng-class="{ 'no-frame': !controller.hasFrame(childObject), 's-drilled-in': controller.isDrilledIn(childObject) }"
|
|
ng-repeat="childObject in composition"
|
|
ng-init="controller.selectIfNew(childObject.getId() + '-' + $id, childObject)"
|
|
mct-selectable="controller.getContext(childObject, true)"
|
|
ng-dblclick="controller.drill($event, childObject)"
|
|
ng-style="controller.getFrameStyle(childObject.getId())">
|
|
|
|
<mct-representation key="'frame'"
|
|
class="t-rep-frame holder contents abs"
|
|
mct-object="childObject">
|
|
</mct-representation>
|
|
<!-- Drag handles -->
|
|
<span class="abs t-edit-handle-holder" ng-if="controller.selected(childObject) && !controller.isDrilledIn(childObject)">
|
|
<span class="edit-handle edit-move"
|
|
mct-drag-down="controller.startDrag(childObject.getId(), [1,1], [0,0])"
|
|
mct-drag="controller.continueDrag(delta)"
|
|
mct-drag-up="controller.endDrag()">
|
|
</span>
|
|
|
|
<span class="edit-corner edit-resize-nw"
|
|
mct-drag-down="controller.startDrag(childObject.getId(), [1,1], [-1,-1])"
|
|
mct-drag="controller.continueDrag(delta)"
|
|
mct-drag-up="controller.endDrag()">
|
|
</span>
|
|
<span class="edit-corner edit-resize-ne"
|
|
mct-drag-down="controller.startDrag(childObject.getId(), [0,1], [1,-1])"
|
|
mct-drag="controller.continueDrag(delta)"
|
|
mct-drag-up="controller.endDrag()">
|
|
</span>
|
|
<span class="edit-corner edit-resize-sw"
|
|
mct-drag-down="controller.startDrag(childObject.getId(), [1,0], [-1,1])"
|
|
mct-drag="controller.continueDrag(delta)"
|
|
mct-drag-up="controller.endDrag()">
|
|
</span>
|
|
<span class="edit-corner edit-resize-se"
|
|
mct-drag-down="controller.startDrag(childObject.getId(), [0,0], [1,1])"
|
|
mct-drag="controller.continueDrag(delta)"
|
|
mct-drag-up="controller.endDrag()">
|
|
</span>
|
|
</span>
|
|
</div>
|
|
|
|
</div>
|