!7 set flag DynModule. sclass TestBot extends DynObjectTable { InputChooser inputChooser = new(this); S source, facts, rules; S inputAs = "Input:"; // "Input:" or "Fact:" start { dm_useLocalMechListCopies(); inputChooser.delay = 1000; itemToMap = itemToMap_ExecutedRule(); } visualize { ret withMargin(northAndCenter(vstackWithSpacing( westCenterAndEast(dm_fieldComboBox('inputAs, ll("Input:", "Fact:")), wrap(inputChooser), jbutton("Compute", rThread compute)) /*, withLabel("Rules mech list (empty for default rules&facts):", onEnter(dm_fieldTextField('source), rThread compute))*/), jvsplit(super.visualize(), jhsplit( withTitle("Facts", jLiveValueWordWrapTypeWriterTextArea(dm_fieldLiveValue('facts))), withTitle("Rules", jLiveValueWordWrapTypeWriterTextArea(dm_fieldLiveValue('rules)))) ))); } void compute { update(inputChooser.input()); } void update { if (inputChooser.update()) update(inputChooser.input()); } void update(S input) { temp enter(); bool inputAsFact = cic(inputAs, 'fact); NLLogicChecker_v2.staticVerbose = true; // TODO setData(nlLogic_processInputOrFact(input, inputAsFact, or2(trim(source), ""))); } }