You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.9 KiB
JavaScript

import Check from "../Core/Check.js";
import defined from "../Core/defined.js";
/**
* A static class with helper functions used by the CesiumInspector and Cesium3DTilesInspector
* @private
*/
var InspectorShared = {};
/**
* Creates a checkbox component
* @param {String} labelText The text to display in the checkbox label
* @param {String} checkedBinding The name of the variable used for checked binding
* @param {String} [enableBinding] The name of the variable used for enable binding
* @return {Element}
*/
InspectorShared.createCheckbox = function (
labelText,
checkedBinding,
enableBinding
) {
//>>includeStart('debug', pragmas.debug);
Check.typeOf.string("labelText", labelText);
Check.typeOf.string("checkedBinding", checkedBinding);
//>>includeEnd('debug');
var checkboxContainer = document.createElement("div");
var checkboxLabel = document.createElement("label");
var checkboxInput = document.createElement("input");
checkboxInput.type = "checkbox";
var binding = "checked: " + checkedBinding;
if (defined(enableBinding)) {
binding += ", enable: " + enableBinding;
}
checkboxInput.setAttribute("data-bind", binding);
checkboxLabel.appendChild(checkboxInput);
checkboxLabel.appendChild(document.createTextNode(labelText));
checkboxContainer.appendChild(checkboxLabel);
return checkboxContainer;
};
/**
* Creates a section element
* @param {Element} panel The parent element
* @param {String} headerText The text to display at the top of the section
* @param {String} sectionVisibleBinding The name of the variable used for visible binding
* @param {String} toggleSectionVisibilityBinding The name of the function used to toggle visibility
* @return {Element}
*/
InspectorShared.createSection = function (
panel,
headerText,
sectionVisibleBinding,
toggleSectionVisibilityBinding
) {
//>>includeStart('debug', pragmas.debug);
Check.defined("panel", panel);
Check.typeOf.string("headerText", headerText);
Check.typeOf.string("sectionVisibleBinding", sectionVisibleBinding);
Check.typeOf.string(
"toggleSectionVisibilityBinding",
toggleSectionVisibilityBinding
);
//>>includeEnd('debug');
var section = document.createElement("div");
section.className = "cesium-cesiumInspector-section";
section.setAttribute(
"data-bind",
'css: { "cesium-cesiumInspector-section-collapsed": !' +
sectionVisibleBinding +
" }"
);
panel.appendChild(section);
var sectionHeader = document.createElement("h3");
sectionHeader.className = "cesium-cesiumInspector-sectionHeader";
sectionHeader.appendChild(document.createTextNode(headerText));
sectionHeader.setAttribute(
"data-bind",
"click: " + toggleSectionVisibilityBinding
);
section.appendChild(sectionHeader);
var sectionContent = document.createElement("div");
sectionContent.className = "cesium-cesiumInspector-sectionContent";
section.appendChild(sectionContent);
return sectionContent;
};
export default InspectorShared;