show progress when cell input is collapsed re #130611.

This commit is contained in:
rebornix 2021-08-11 14:29:24 -07:00
parent 0dd8b8c8b6
commit 943036686e
3 changed files with 29 additions and 5 deletions

View file

@ -775,6 +775,7 @@ export interface CodeCellRenderTemplate extends BaseCellRenderTemplate {
focusSinkElement: HTMLElement;
editor: ICodeEditor;
progressBar: ProgressBar;
collapsedProgressBar: ProgressBar;
focusIndicatorRight: HTMLElement;
focusIndicatorBottom: HTMLElement;
dragHandle: HTMLElement;

View file

@ -647,6 +647,10 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
progressBar.hide();
disposables.add(progressBar);
const collapsedProgressBar = new ProgressBar(cellInputCollapsedContainer);
collapsedProgressBar.hide();
disposables.add(collapsedProgressBar);
const statusBar = disposables.add(this.instantiationService.createInstance(CellEditorStatusBar, editorPart));
const outputContainer = DOM.append(container, $('.output'));
@ -673,6 +677,7 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
decorationContainer,
cellContainer,
progressBar,
collapsedProgressBar,
statusBar,
focusIndicatorLeft: focusIndicator,
focusIndicatorRight,
@ -887,10 +892,18 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
const internalMetadata = element.internalMetadata;
this.updateExecutionOrder(internalMetadata, templateData);
if (internalMetadata.runState === NotebookCellExecutionState.Executing && !internalMetadata.isPaused) {
templateData.progressBar.infinite().show(500);
} else {
if (element.metadata.inputCollapsed) {
templateData.progressBar.hide();
} else {
templateData.collapsedProgressBar.hide();
}
const progressBar = element.metadata.inputCollapsed ? templateData.collapsedProgressBar : templateData.progressBar;
if (internalMetadata.runState === NotebookCellExecutionState.Executing && !internalMetadata.isPaused) {
progressBar.infinite().show(500);
} else {
progressBar.hide();
}
}
@ -999,7 +1012,7 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
this.updateForFocus(element, templateData);
cellEditorOptions.setLineNumbers(element.lineNumbers);
elementDisposables.add(element.onDidChangeState((e) => {
if (e.internalMetadataChanged) {
if (e.metadataChanged || e.internalMetadataChanged) {
this.updateForInternalMetadata(element, templateData);
this.updateForLayout(element, templateData);
}

View file

@ -300,7 +300,17 @@ export class CodeCell extends Disposable {
}
private _removeInputCollapsePreview() {
DOM.clearNode(this.templateData.cellInputCollapsedContainer);
const children = this.templateData.cellInputCollapsedContainer.children;
const elements = [];
for (let i = 0; i < children.length; i++) {
if (children[i].classList.contains('cell-collapse-preview')) {
elements.push(children[i]);
}
}
elements.forEach(element => {
element.parentElement?.removeChild(element);
});
}
private _updateOutputInnertContainer(hide: boolean) {