git @ Cat's Eye Technologies Wunnel / 2c209e2
Use yoob.elementFactory to create the UI. Chris Pressey 7 years ago
1 changed file(s) with 36 addition(s) and 11 deletion(s). Raw diff Collapse all Expand all
1717 var loaded = 0;
1818 var onload = function() {
1919 if (++loaded < deps.length) return;
20 /* ----- launch ----- */
21 var programView = new yoob.PlayfieldHTMLView().init({
22 element: document.getElementById('program_display')
20 /* ----- launch, phase 1: create the UI ----- */
21 var controlPanel = yoob.makeDiv(container);
22 controlPanel.id = "panel_container";
23
24 var subPanel = yoob.makeDiv(container);
25 var selectSource = yoob.makeSelect(subPanel, 'example source:', []);
26
27 var displayContainer = yoob.makeDiv();
28 displayContainer.id = 'display_container';
29
30 var programDisplay = yoob.makePre(displayContainer);
31 programDisplay.id = 'program_display';
32
33 var editor = yoob.makeTextArea(displayContainer, 40, 25);
34
35 var stateDisplay = yoob.makeDiv();
36 stateDisplay.id = "state_display";
37
38 var opTableDisplay = yoob.makePre(stateDisplay);
39 opTableDisplay.id = 'op_table_display';
40
41 var tapeSubDisplay = yoob.makeDiv(stateDispay);
42 yoob.makeSpan(tapeSubDisplay, "Tape:");
43 var tapeDisplay = yoob.makeSpan(tapeSubDisplay);
44
45 var ioSubDisplay = yoob.makeDiv(stateDispay);
46 ioSubDisplay.innerHTML = 'Input: <input id="input"></input><br />' +
47 'Output: <div id="output">';
48
49 new yoob.PlayfieldHTMLView().init({
50 element: programDisplay
2351 });
2452 var opTableView = new yoob.PlayfieldHTMLView().init({
25 element: document.getElementById('op_table_display')
53 element: opTableDisplay
2654 });
2755 opTableView.render = function(value) {
2856 return ' ' + value + ' ';
2957 };
3058 var tapeView = new yoob.TapeHTMLView().init({
31 element: document.getElementById('tape_display')
59 element: tapeDisplay
3260 });
3361
34 var controlPanel = document.getElementById("panel_container");
35 var editor = document.getElementById("editor");
36 var display = document.getElementById("program_display");
37
62 /* ----- launch, phase 2: connect the controller ----- */
3863 var WunnelController = getWunnelControllerClass();
3964 var controller = (new WunnelController()).init({
4065 programView: programView,
4873 var sourceManager = (new yoob.SourceManager()).init({
4974 panelContainer: controlPanel,
5075 editor: editor,
51 hideDuringEdit: [display],
76 hideDuringEdit: [programDisplay],
5277 disableDuringEdit: [controller.panel],
5378 storageKey: 'wunnel.js',
5479 onDone: function() {
5681 }
5782 });
5883 var p = (new yoob.PresetManager()).init({
59 selectElem: document.getElementById('select_source'),
84 selectElem: selectSource,
6085 controller: controller
6186 });
6287 function makeCallback(sourceText) {