in client/client/modules/render/tracks/vcf/multi-sample-vcf.js [455:586]
render(flags) {
let somethingChanged = false;
if (flags.renderReset) {
this.height = this.height;// force track to resize
this.container.removeChildren();
this.container.addChild(this.coverageCoordinateSystemRenderer);
this.container.addChild(this.coverageRenderer.container);
this.container.addChild(this._zoomInRenderer.container);
this._zoomInRenderer.init(this._getZoomInPlaceholderText(), {
height: this._pixiRenderer.height,
width: this._pixiRenderer.width
});
somethingChanged = true;
this.container.addChild(this.sampleGraphics);
if (this.isCollapsedSamplesMode) {
this.collapsedSamplesRenderer.container.y = VcfConfig.getCoverageHeight(this.state);
this.collapsedSamplesRenderer.height = this.height - VcfConfig.getCoverageHeight(this.state);
this.container.addChild(this.collapsedSamplesRenderer.container);
} else {
this.renderers.forEach((rendererBySample, index) => {
rendererBySample.collapsed.clear();
const renderer = this.pickRenderer(rendererBySample);
renderer.container.y = this.getRendererY(index);
renderer.height = VcfConfig.getSampleHeight(this.state, this);
this.container.addChild(renderer.container);
});
}
this.container.addChild(this.sampleTitlesContainer);
this.container.addChild(this.sampleScroller);
this.correctScrollPosition();
} else if (flags.widthChanged || flags.heightChanged) {
this._zoomInRenderer.init(this._getZoomInPlaceholderText(), {
height: this._pixiRenderer.height,
width: this._pixiRenderer.width
});
}
const zoomInPlaceholderVisible = this._variantsMaximumRange < this.viewport.actualBrushSize;
this._zoomInRenderer.container.visible = zoomInPlaceholderVisible;
if (this.coverageCoordinateSystemRenderer) {
this.coverageCoordinateSystemRenderer.visible = !zoomInPlaceholderVisible;
}
if (this.coverageRenderer) {
this.coverageRenderer.container.visible = !zoomInPlaceholderVisible && this.state.variantsDensity;
}
if (this.sampleGraphics) {
this.sampleGraphics.visible = !zoomInPlaceholderVisible;
}
if (this.sampleTitlesContainer) {
this.sampleTitlesContainer.visible = !zoomInPlaceholderVisible;
}
if (this.sampleScroller) {
this.sampleScroller.visible = !zoomInPlaceholderVisible;
}
if (zoomInPlaceholderVisible) {
this.sampleScroller.totalHeight = 0;
}
if (
flags.renderReset ||
flags.widthChanged ||
flags.heightChanged
) {
this.renderSampleGraphics();
this.renderSampleTitles();
this.correctScrollMask();
}
if (
flags.dataChanged ||
flags.renderReset ||
flags.widthChanged ||
flags.heightChanged
) {
this.coverageCoordinateSystemRenderer.renderCoordinateSystem(
this.viewport,
this.cache.coverage,
VcfConfig.getCoverageHeight(this.state),
{
renderBaseLineAsBottomBorder: false
}
);
}
if (
flags.brushChanged ||
flags.widthChanged ||
flags.heightChanged ||
flags.renderReset ||
flags.dataChanged
) {
this.correctScrollPosition();
if (!zoomInPlaceholderVisible) {
this.sampleScroller.x = this.viewport.canvasSize -
VcfConfig.scroll.margin -
VcfConfig.scroll.width;
this.sampleScroller.y = VcfConfig.getCoverageHeight(this.state);
this.sampleScroller.totalHeight = this.totalSamplesHeight;
this.sampleScroller.displayedHeight = this.height - VcfConfig.getCoverageHeight(this.state);
this.sampleScroller.renderScroller(false);
}
this.coverageRenderer.height = VcfConfig.getCoverageHeight(this.state);
this.coverageRenderer.render(
this.viewport,
this.cache,
flags.heightChanged || flags.widthChanged || flags.dataChanged,
this._showCenterLine
);
if (this.isCollapsedSamplesMode) {
this.collapsedSamplesRenderer.height = this.height - VcfConfig.getCoverageHeight(this.state);
this.collapsedSamplesRenderer.container.visible =
this._variantsMaximumRange >= this.viewport.actualBrushSize;
this.collapsedSamplesRenderer.render(
this.viewport,
this.pickCollapsedSamplesCache(),
flags.heightChanged || flags.dataChanged || flags.renderReset,
this._showCenterLine
);
} else {
this.renderers.forEach((rendererBySample, index) => {
const renderer = this.pickRenderer(rendererBySample);
renderer.height = VcfConfig.getSampleHeight(this.state, this);
renderer.container.visible = this.rendererVisible(index) &&
this._variantsMaximumRange >= this.viewport.actualBrushSize;
renderer.render(
this.viewport,
this.pickCache(rendererBySample.sample),
flags.heightChanged || flags.dataChanged || flags.renderReset,
this._showCenterLine
);
});
}
somethingChanged = true;
}
return somethingChanged;
}