mirror of
https://github.com/nasa/openmct.git
synced 2025-05-11 04:52:57 +00:00
Enable independent time conductor for stacked plot and overlay plot and bar graphs (#4646)
* Enable independent time conductor for stacked plot and overlay plot. * Lint fixes * Fixes for #4503 and #4606 - Added `flex: 0 0 auto` to toggle switch when in ITC to prevent element from being crunched when window or frame is very small; * Add independent time conductor to bar graphs * Add timeContext to bar graphs Co-authored-by: Charles Hacskaylo <charlesh88@gmail.com>
This commit is contained in:
parent
22a7537974
commit
f6934a43c9
@ -62,12 +62,14 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.refreshData = this.refreshData.bind(this);
|
||||||
|
this.setTimeContext();
|
||||||
|
|
||||||
this.loadComposition();
|
this.loadComposition();
|
||||||
|
|
||||||
this.openmct.time.on('bounds', this.refreshData);
|
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
this.openmct.time.off('bounds', this.refreshData);
|
this.stopFollowingTimeContext();
|
||||||
|
|
||||||
this.removeAllSubscriptions();
|
this.removeAllSubscriptions();
|
||||||
|
|
||||||
@ -79,6 +81,21 @@ export default {
|
|||||||
this.composition.off('remove', this.removeTelemetryObject);
|
this.composition.off('remove', this.removeTelemetryObject);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
setTimeContext() {
|
||||||
|
this.stopFollowingTimeContext();
|
||||||
|
|
||||||
|
this.timeContext = this.openmct.time.getContextForView(this.path);
|
||||||
|
this.followTimeContext();
|
||||||
|
|
||||||
|
},
|
||||||
|
followTimeContext() {
|
||||||
|
this.timeContext.on('bounds', this.refreshData);
|
||||||
|
},
|
||||||
|
stopFollowingTimeContext() {
|
||||||
|
if (this.timeContext) {
|
||||||
|
this.timeContext.off('bounds', this.refreshData);
|
||||||
|
}
|
||||||
|
},
|
||||||
addTelemetryObject(telemetryObject) {
|
addTelemetryObject(telemetryObject) {
|
||||||
// grab information we need from the added telmetry object
|
// grab information we need from the added telmetry object
|
||||||
const key = this.openmct.objects.makeKeyString(telemetryObject.identifier);
|
const key = this.openmct.objects.makeKeyString(telemetryObject.identifier);
|
||||||
@ -147,7 +164,7 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
getOptions() {
|
getOptions() {
|
||||||
const { start, end } = this.openmct.time.bounds();
|
const { start, end } = this.timeContext.bounds();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
end,
|
end,
|
||||||
@ -247,10 +264,10 @@ export default {
|
|||||||
this.addTrace(trace, key);
|
this.addTrace(trace, key);
|
||||||
},
|
},
|
||||||
isDataInTimeRange(datum, key) {
|
isDataInTimeRange(datum, key) {
|
||||||
const timeSystemKey = this.openmct.time.timeSystem().key;
|
const timeSystemKey = this.timeContext.timeSystem().key;
|
||||||
let currentTimestamp = this.parse(key, timeSystemKey, datum);
|
let currentTimestamp = this.parse(key, timeSystemKey, datum);
|
||||||
|
|
||||||
return currentTimestamp && this.openmct.time.bounds().end >= currentTimestamp;
|
return currentTimestamp && this.timeContext.bounds().end >= currentTimestamp;
|
||||||
},
|
},
|
||||||
format(telemetryObjectKey, metadataKey, data) {
|
format(telemetryObjectKey, metadataKey, data) {
|
||||||
const formats = this.telemetryObjectFormats[telemetryObjectKey];
|
const formats = this.telemetryObjectFormats[telemetryObjectKey];
|
||||||
|
@ -185,6 +185,11 @@
|
|||||||
&__inputs,
|
&__inputs,
|
||||||
&__time-bounds {
|
&__time-bounds {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
|
.c-toggle-switch {
|
||||||
|
// Used in independent Time Conductor
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__inputs {
|
&__inputs {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div v-if="domainObject && domainObject.type === 'time-strip'"
|
<div v-if="supportsIndependentTime"
|
||||||
class="c-conductor-holder--compact l-shell__main-independent-time-conductor"
|
class="c-conductor-holder--compact l-shell__main-independent-time-conductor"
|
||||||
>
|
>
|
||||||
<independent-time-conductor :domain-object="domainObject"
|
<independent-time-conductor :domain-object="domainObject"
|
||||||
@ -20,6 +20,12 @@ import StyleRuleManager from "@/plugins/condition/StyleRuleManager";
|
|||||||
import {STYLE_CONSTANTS} from "@/plugins/condition/utils/constants";
|
import {STYLE_CONSTANTS} from "@/plugins/condition/utils/constants";
|
||||||
import IndependentTimeConductor from '@/plugins/timeConductor/independent/IndependentTimeConductor.vue';
|
import IndependentTimeConductor from '@/plugins/timeConductor/independent/IndependentTimeConductor.vue';
|
||||||
|
|
||||||
|
const SupportedViewTypes = [
|
||||||
|
'plot-stacked',
|
||||||
|
'plot-overlay',
|
||||||
|
'bar-graph.view',
|
||||||
|
'time-strip.view'
|
||||||
|
];
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
IndependentTimeConductor
|
IndependentTimeConductor
|
||||||
@ -64,6 +70,11 @@ export default {
|
|||||||
},
|
},
|
||||||
font() {
|
font() {
|
||||||
return this.objectFontStyle ? this.objectFontStyle.font : this.layoutFont;
|
return this.objectFontStyle ? this.objectFontStyle.font : this.layoutFont;
|
||||||
|
},
|
||||||
|
supportsIndependentTime() {
|
||||||
|
const viewKey = this.getViewKey();
|
||||||
|
|
||||||
|
return this.domainObject && SupportedViewTypes.includes(viewKey);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user