Extract common functionality into a new BaseTreeViewer._finishRendering method

Note how the end of the `{PDFOutlineViewer, PDFAttachmentViewer, PDFLayerViewer}.render` methods share *almost* identical code, hence we can reduce some duplication by introducing the new `BaseTreeViewer` helper method here.

Furthermore, setting `this._lastToggleIsShow` can be made ever so slightly more efficient, since we don't care about the number of ".treeItemsHidden"-classes but only want to know if at least one exists.
This commit is contained in:
Jonas Jenwald 2020-12-28 14:42:47 +01:00
parent 57bec090ae
commit 03f10739d8
4 changed files with 17 additions and 21 deletions

View file

@ -103,6 +103,20 @@ class BaseTreeViewer {
this._toggleTreeItem(this.container, !this._lastToggleIsShow);
}
/**
* @private
*/
_finishRendering(fragment, count, hasAnyNesting = false) {
if (hasAnyNesting) {
this.container.classList.add("treeWithDeepNesting");
this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden");
}
this.container.appendChild(fragment);
this._dispatchEvent(count);
}
render(params) {
throw new Error("Not implemented: render");
}