mirror of
https://github.com/nasa/openmct.git
synced 2025-06-16 14:18:16 +00:00
Implements selection and reorder in stacked plots (#2371)
* working selection in stacked plots * reorder in stacked plots works * tabs code cleanup
This commit is contained in:
committed by
Pegah Sarram
parent
548286bacd
commit
ee1d92d4a9
@ -54,6 +54,7 @@ define(
|
|||||||
if (isDestroyed) {
|
if (isDestroyed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var removeSelectable = openmct.selection.selectable(
|
var removeSelectable = openmct.selection.selectable(
|
||||||
element[0],
|
element[0],
|
||||||
scope.$eval(attrs.mctSelectable),
|
scope.$eval(attrs.mctSelectable),
|
||||||
|
@ -43,12 +43,16 @@
|
|||||||
<div class="l-view-section">
|
<div class="l-view-section">
|
||||||
<div class="c-loading--overlay loading"
|
<div class="c-loading--overlay loading"
|
||||||
ng-show="!!currentRequest.pending"></div>
|
ng-show="!!currentRequest.pending"></div>
|
||||||
<div class="gl-plot child-frame"
|
<div class="gl-plot child-frame u-inspectable"
|
||||||
ng-repeat="telemetryObject in telemetryObjects"
|
ng-repeat="telemetryObject in telemetryObjects"
|
||||||
ng-class="{
|
ng-class="{
|
||||||
's-status-timeconductor-unsynced': telemetryObject
|
's-status-timeconductor-unsynced': telemetryObject
|
||||||
.getCapability('status')
|
.getCapability('status')
|
||||||
.get('timeconductor-unsynced')
|
.get('timeconductor-unsynced')
|
||||||
|
}"
|
||||||
|
mct-selectable="{
|
||||||
|
item: telemetryObject.useCapability('adapter'),
|
||||||
|
oldItem: telemetryObject
|
||||||
}">
|
}">
|
||||||
<mct-overlay-plot domain-object="telemetryObject"></mct-overlay-plot>
|
<mct-overlay-plot domain-object="telemetryObject"></mct-overlay-plot>
|
||||||
</div>
|
</div>
|
||||||
|
@ -79,6 +79,15 @@ define([
|
|||||||
$scope.$broadcast('plot:tickWidth', _.max(tickWidthMap));
|
$scope.$broadcast('plot:tickWidth', _.max(tickWidthMap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function compositionReorder(reorderPlan) {
|
||||||
|
let oldComposition = telemetryObjects.slice();
|
||||||
|
|
||||||
|
reorderPlan.forEach((reorder) => {
|
||||||
|
telemetryObjects[reorder.newIndex] = oldComposition[reorder.oldIndex];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
thisRequest.pending += 1;
|
thisRequest.pending += 1;
|
||||||
openmct.objects.get(domainObject.getId())
|
openmct.objects.get(domainObject.getId())
|
||||||
.then(function (obj) {
|
.then(function (obj) {
|
||||||
@ -89,10 +98,12 @@ define([
|
|||||||
composition = openmct.composition.get(obj);
|
composition = openmct.composition.get(obj);
|
||||||
composition.on('add', addChild);
|
composition.on('add', addChild);
|
||||||
composition.on('remove', removeChild);
|
composition.on('remove', removeChild);
|
||||||
|
composition.on('reorder', compositionReorder);
|
||||||
composition.load();
|
composition.load();
|
||||||
unlisten = function () {
|
unlisten = function () {
|
||||||
composition.off('add', addChild);
|
composition.off('add', addChild);
|
||||||
composition.off('remove', removeChild);
|
composition.off('remove', removeChild);
|
||||||
|
composition.off('reorder', compositionReorder);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
}">
|
}">
|
||||||
<div class="c-drop-hint"
|
<div class="c-drop-hint"
|
||||||
@drop="onDrop"
|
@drop="onDrop"
|
||||||
ref="dropHint">
|
@dragenter="dragenter"
|
||||||
|
@dragleave="dragleave">
|
||||||
</div>
|
</div>
|
||||||
<div class="c-tabs-view__empty-message"
|
<div class="c-tabs-view__empty-message"
|
||||||
v-if="!tabsList.length > 0">Drag objects here to add them to this view.</div>
|
v-if="!tabsList.length > 0">Drag objects here to add them to this view.</div>
|
||||||
@ -197,13 +198,6 @@ export default {
|
|||||||
|
|
||||||
document.addEventListener('dragstart', this.dragstart);
|
document.addEventListener('dragstart', this.dragstart);
|
||||||
document.addEventListener('dragend', this.dragend);
|
document.addEventListener('dragend', this.dragend);
|
||||||
|
|
||||||
let dropHint = this.$refs.dropHint;
|
|
||||||
|
|
||||||
if (dropHint) {
|
|
||||||
dropHint.addEventListener('dragenter', this.dragenter);
|
|
||||||
dropHint.addEventListener('dragleave', this.dragleave);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.composition.off('add', this.addItem);
|
this.composition.off('add', this.addItem);
|
||||||
@ -212,12 +206,6 @@ export default {
|
|||||||
|
|
||||||
document.removeEventListener('dragstart', this.dragstart);
|
document.removeEventListener('dragstart', this.dragstart);
|
||||||
document.removeEventListener('dragend', this.dragend);
|
document.removeEventListener('dragend', this.dragend);
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
let dropHint = this.$refs.dropHint;
|
|
||||||
|
|
||||||
dropHint.removeEventListener('dragenter', this.dragenter);
|
|
||||||
dropHint.removeEventListener('dragleave', this.dragleave);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -51,6 +51,22 @@ mct-plot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.is-editing {
|
||||||
|
.gl-plot.child-frame {
|
||||||
|
&:hover {
|
||||||
|
background: rgba($editUIColorBg, 0.1);
|
||||||
|
box-shadow: inset rgba($editUIColorBg, 0.8) 0 0 0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&[s-selected] {
|
||||||
|
border: 1px solid $editUIColorFg !important;
|
||||||
|
color: $editUIColorFg !important;
|
||||||
|
box-shadow: $editFrameSelectedShdw;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.gl-plot {
|
.gl-plot {
|
||||||
color: $colorPlotFg;
|
color: $colorPlotFg;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
Reference in New Issue
Block a user