UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

33 lines (25 loc) 1 kB
import { TypeEditor } from "../TypeEditor.js"; import DropDownSelectionView from "../../../../src/view/elements/DropDownSelectionView.js"; import List from "../../../../src/core/collection/list/List.js"; import { objectKeyByValue } from "../../../../src/core/model/object/objectKeyByValue.js"; export class ObservedEnumEditor extends TypeEditor { build(parent, field, registry) { /** * @type {ObservedEnum} */ const value = field.adapter.read(parent, field.name); const valueSet = value.getValidValueSet(); const ctrl = new DropDownSelectionView( new List(Object.keys(valueSet)), { changeListener(key) { const v = valueSet[key]; value.set(v); } } ); ctrl.on.linked.add(() => { ctrl.setSelectedValue(objectKeyByValue(valueSet, value.getValue())); }) return ctrl; } }