diff options
Diffstat (limited to 'lib/systems/global_adjuster.js')
| -rw-r--r-- | lib/systems/global_adjuster.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/systems/global_adjuster.js b/lib/systems/global_adjuster.js new file mode 100644 index 0000000..7f6df91 --- /dev/null +++ b/lib/systems/global_adjuster.js @@ -0,0 +1,57 @@ +import { System } from '@serpentity/serpentity'; +import Frequent from '../nodes/configurable'; +import { settingsContainer, slider } from '../factories/ui'; + +export default class GlobalAdjuster extends System { + + constructor(container) { + + super(); + this.container = container; + } + + added(engine){ + + this.nodes = engine.getNodes(Frequent); + const container = document.getElementById('settings'); + this.adjusterContainer = settingsContainer({ + id: 'global-adjuster', + label: 'Global' + }); + + let i = 0; + for (const node of this.nodes) { + const nodeElement = settingsContainer({ + id: `global-adjuster-${i}`, + label: 'Line', + level: 3 + }); + + nodeElement.appendChild(slider({ + min: '5', + max: '2000', + step: '1', + label: '𝜆', + className: 'lineLength', + get: () => node.configuration.lineLength.toString(), + set: (value) => (node.configuration.lineLength = parseFloat(value)) + })); + + this.adjusterContainer.appendChild(nodeElement); + ++i; + } + + this.container.appendChild(this.adjusterContainer); + } + + removed(){ + + this.container.removeChild(this.adjusterContainer); + delete this.adjusterContainer; + delete this.nodes; + } + + update(){} +}; + + |