optionsInput is gone now and it sort of actually works!
Chris Pressey
10 years ago
60 | 60 | var process = function() { |
61 | 61 | var t = transformer['identity'].makeTransformer({}); |
62 | 62 | for (var i = 0; i < transformerSlots.length; i++) { |
63 | console.log(uneval(transformerSlots[i])); | |
63 | 64 | var transformerName = transformerSlots[i].name; |
64 | 65 | var selectedParams = transformerSlots[i].selectedParams; |
65 | 66 | var t2 = transformer[transformerName].makeTransformer(selectedParams); |
81 | 82 | }); |
82 | 83 | yoob.makeLineBreak(transformersPanel); |
83 | 84 | |
84 | var updateParametersPanel = function(panel, parameters) { | |
85 | var updateParametersPanel = function(slot, panel) { | |
86 | var parameters = transformer[slot.name].parameters; | |
85 | 87 | panel.innerHTML = ""; // delete any previous controls |
86 | 88 | for (var key in parameters) { |
87 | 89 | if (parameters.hasOwnProperty(key)) { |
90 | 92 | var input = yoob.makeTextInput(panel, 24); |
91 | 93 | input.style.width = "50%"; |
92 | 94 | // TODO: populate it with the default |
95 | // TODO: and assign it to slot.selectedParams[key] | |
93 | 96 | input.onchange = function() { |
94 | alert('TODO: update transformerSlots.selectedParameters or smth here'); | |
97 | slot.selectedParams[key] = input.value; | |
95 | 98 | if (liveMode) { |
96 | 99 | process(); |
97 | 100 | } |
108 | 111 | yoob.makeLineBreak(transformersPanel); |
109 | 112 | var parametersPanel = yoob.makeDiv(transformersPanel); |
110 | 113 | |
111 | var getSelectedParams = function(panel) { | |
112 | // TODO FIXME | |
113 | return parseOptions(transformerSlots[i].optionsInput.value); | |
114 | }; | |
115 | ||
116 | 114 | select.onchange = function(e) { |
117 | updateParametersPanel(parametersPanel); | |
118 | 115 | transformerSlots[index].name = select.options[select.selectedIndex].value; |
119 | transformerSlots[index].selectedParams = getSelectedParams(parametersPanel); | |
116 | updateParametersPanel(transformerSlots[index], parametersPanel); | |
120 | 117 | if (liveMode) { |
121 | 118 | process(); |
122 | 119 | } |
123 | 120 | }; |
124 | 121 | |
125 | //------------ deprecated... | |
126 | var optionsInput = yoob.makeTextInput(transformersPanel, 24); | |
127 | optionsInput.onchange = function(e) { | |
128 | if (liveMode) { | |
129 | process(); | |
130 | } | |
131 | }; | |
132 | optionsInput.title = "Options"; | |
133 | yoob.makeLineBreak(transformersPanel); | |
134 | //------------ | |
135 | ||
136 | 122 | return { |
123 | name: 'identity', | |
124 | selectedParams: {}, | |
137 | 125 | select: select, |
138 | optionsInput: optionsInput, | |
139 | 126 | parametersPanel: parametersPanel |
140 | 127 | }; |
141 | 128 | }; |
142 | 129 | |
143 | 130 | for (var i = 0; i < MAX_TRANSFORMER_SLOTS; i++) { |
144 | var slot = makeTransformerSlot(transformersPanel, index); | |
131 | var slot = makeTransformerSlot(transformersPanel, i); | |
145 | 132 | transformerSlots.push(slot); |
146 | 133 | } |
147 | 134 |