(gui, object, property, params)
| 1132 | } |
| 1133 | |
| 1134 | function add(gui, object, property, params) { |
| 1135 | if (object[property] === undefined) { |
| 1136 | throw new Error(`Object "${object}" has no property "${property}"`); |
| 1137 | } |
| 1138 | |
| 1139 | let controller; |
| 1140 | |
| 1141 | if (params.color) { |
| 1142 | controller = new ColorController(object, property); |
| 1143 | } else { |
| 1144 | const factoryArgs = [object, property].concat(params.factoryArgs); |
| 1145 | controller = ControllerFactory.apply(gui, factoryArgs); |
| 1146 | } |
| 1147 | |
| 1148 | if (params.before instanceof Controller) { |
| 1149 | params.before = params.before.__li; |
| 1150 | } |
| 1151 | |
| 1152 | recallSavedValue(gui, controller); |
| 1153 | |
| 1154 | dom.addClass(controller.domElement, 'c'); |
| 1155 | |
| 1156 | const name = document.createElement('span'); |
| 1157 | dom.addClass(name, 'property-name'); |
| 1158 | name.innerHTML = controller.property; |
| 1159 | |
| 1160 | const container = document.createElement('div'); |
| 1161 | container.appendChild(name); |
| 1162 | container.appendChild(controller.domElement); |
| 1163 | |
| 1164 | const li = addRow(gui, container, params.before); |
| 1165 | |
| 1166 | dom.addClass(li, GUI.CLASS_CONTROLLER_ROW); |
| 1167 | if (controller instanceof ColorController) { |
| 1168 | dom.addClass(li, 'color'); |
| 1169 | } else { |
| 1170 | dom.addClass(li, typeof controller.getValue()); |
| 1171 | } |
| 1172 | |
| 1173 | augmentController(gui, li, controller); |
| 1174 | |
| 1175 | gui.__controllers.push(controller); |
| 1176 | |
| 1177 | return controller; |
| 1178 | } |
| 1179 | |
| 1180 | function getLocalStorageHash(gui, key) { |
| 1181 | // TODO how does this deal with multiple GUI's? |
no test coverage detected