1 function setParent(uid, parent) {
2 var $child = getJElementById(uid);
3 var $parent = getJElementById(parent);
5 if($child.hasClass("GO_AXES")) {
6 $child.width($parent.width());
7 $child.height($parent.height());
14 showticklabels: false //for clean display
20 showticklabels: false //for clean display
24 Plotly.newPlot($child.prop('id'), [{}], layout, {displayModeBar:false, showLink:false, scrollZoom:true});
27 if($parent.hasClass("GO_UI_FRAME")) {
28 $parent = getJElementById(parent, "_body");
31 $parent.append($child);
34 function setFigureSize(uid, val) {
35 var child = getElementById(uid);
36 child.style.width = val[0] + 'px';
37 child.style.height = val[1] + 'px';
40 function setFigureName(uid, val) {
41 var $fig = getJElementById(uid, '_btn');
45 function setUIPosition(uid, val, units) {
47 if(units === 'normalized') {
55 var child = getElementById(uid);
56 child.style.left = val[0] + u;
57 child.style.bottom = val[1] + u;
58 child.style.width = val[2] + u;
59 child.style.height = val[3] + u;
62 function setUIString(uid, val, parent) {
63 var child = getElementById(uid);
65 var $child = getJElementById(uid);
67 if($child.hasClass('GO_UI_CHECKBOX') || $child.hasClass('GO_UI_RADIOBUTTON')) {
68 var label = getElementById(uid + '_span');
69 label.textContent = val[0];
73 if($child.hasClass('GO_UI_POPUPMENU') || $child.hasClass('GO_UI_LISTBOX')) {
74 //remove previous values
75 while (child.length) {child.remove(0);}
77 var size = val.length;
78 for(var i = 0 ; i < size ; ++i) {
79 child.add(new Option(val[i]));
82 if(child.className === 'GO_UI_LISTBOX') {
83 //switch to listbox instead of combobox
90 if($child.hasClass('GO_UI_FRAME')) {
91 var $parent = getJElementById(parent);
92 if($parent && $parent.hasClass('GO_UI_TAB')) {
93 var tab = getElementById(uid + '_tab');
94 tab.textContent = val[0];
100 if($child.hasClass('GO_UI_TAB')) {
104 if(isInputType(uid)) {
105 child.value = val[0];
107 child.textContent = val[0];
111 function setVisible(uid, val) {
112 var child = getElementById(uid);
114 console.log("setVisible : " + uid);
117 child.style.visibility = val;
120 function setUIEnable(uid, val) {
121 var child = getJElementById(uid);
123 child.removeClass("disabled");
125 child.addClass("disabled");
129 function setUIForegroundColor(uid, val) {
130 var child = getElementById(uid);
131 child.style.color = val;
134 function setUIBackgroundColor(uid, val) {
135 var child = getElementById(uid);
136 child.style.backgroundColor = val;
139 function setUIFontAngle(uid, val) {
140 var child = getElementById(uid);
141 child.style.fontStyle = val;
144 function setUIFontName(uid, val) {
145 var child = getElementById(uid);
146 child.style.fontFamily = val;
149 function setUIFontSize(uid, val) {
150 var child = getElementById(uid);
151 child.style.fontSize = val;
154 function setUIFontWeight(uid, val) {
155 var child = getElementById(uid);
156 child.style.fontWeight = val;
159 function setUIHorizontalAlignment(uid, val) {
160 var $child = getJElementById(uid);
161 if($child.hasClass('GO_UI_TEXT')) {
174 $child.css("justify-content", val);
176 $child.css("text-align", val);
180 function setUIVerticalAlignment(uid, val) {
181 var child = getElementById(uid);
182 child.style.lineHeight = val;
185 function setUILayout(uid, val) {
186 var child = getElementById(uid);
189 case LayoutType.LAYOUT_BORDER :
190 //add 'frame' in child to be more ... flexible ;)
191 var layout = createElement('DIV');
192 layout.id = getIdString(uid, '_layout');
193 layout.style.display = 'flex';
194 layout.style.flexDirection = 'column';
195 layout.style.width = '100%';
196 layout.style.height = 'inherit';
199 var header = createElement('HEADER');
200 header.id = getIdString(uid, '_top');
201 header.style.width = '100%';
204 var middle = createElement('DIV');
205 middle.id = getIdString(uid, '_middle');
206 middle.style.flex = '1';
207 middle.style.display = 'flex';
210 var left = createElement('ASIDE');
211 left.id = getIdString(uid, '_left');
212 left.style.display = 'flex';
215 var center = createElement('ARTICLE');
216 center.id = getIdString(uid, '_center');
217 center.style.flex = '1';
218 center.style.display = 'flex';
219 center.style.width = '100%';
222 var right = createElement('ASIDE');
223 right.id = getIdString(uid, '_right');
224 right.style.display = 'flex';
227 var footer = createElement('FOOTER');
228 footer.id = getIdString(uid, '_bottom');
229 footer.style.width = '100%';
232 middle.appendChild(left);
233 middle.appendChild(center);
234 middle.appendChild(right);
236 layout.appendChild(header);
237 layout.appendChild(middle);
238 layout.appendChild(footer);
240 child.appendChild(layout);
243 case LayoutType.LAYOUT_GRID:
246 case LayoutType.LAYOUT_GRIDBAG:
248 var table = createElement('TABLE');
249 table.id = getIdString(uid, '_table');
250 table.style.margin = '0';
251 table.style.padding = '0';
252 table.style.width = '100%';
253 table.style.height = '100%';
254 table.style.borderCollapse = 'collapse';
256 //insert table in parent
257 child.appendChild(table);
261 case LayoutType.LAYOUT_NONE:
266 function setUIMin(uid, val) {
267 var child = getElementById(uid);
271 function setUIMax(uid, val) {
272 var child = getElementById(uid);
276 function setUIStep(uid, val) {
277 var child = getElementById(uid);
281 function setUIValue(uid, val) {
282 var child = getElementById(uid);
284 console.log("setUIValue : " + uid);
287 switch(child.className) {
288 case 'GO_UI_SPINNER':
290 child.value = '' + val;
293 tabSelectHelper(child, val);
298 function setUIBorder(uid, parent, pos, pad, size) {
299 var child = getElementById(uid);
303 case BorderLayoutType.BORDER_CENTER:
304 position = '_center';
305 child.style.width = 'inherit';
306 child.style.height = 'inherit';
307 padding = getPadding(0, 0, 0, 0);
310 case BorderLayoutType.BORDER_BOTTOM:
311 position = '_bottom';
312 child.style.width = '100%';
314 child.style.height = 'inherit';
316 child.style.height = getSubPadding(size[1]);
319 padding = getPadding(pad[1], 0, 0, 0);
322 case BorderLayoutType.BORDER_TOP:
324 child.style.width = '100%';
326 if (size[1] === -1) {
327 child.style.height = 'inherit';
329 child.style.height = getSubPadding(size[1]);
332 padding = getPadding(0, 0, pad[1], 0);
335 case BorderLayoutType.BORDER_LEFT:
339 child.style.width = 'inherit';
341 child.style.width = getSubPadding(size[0]);
344 child.style.height = 'inherit';
345 padding = getPadding(0, pad[0], 0, 0);
348 case BorderLayoutType.BORDER_RIGHT:
352 child.style.width = 'inherit';
354 child.style.width = getSubPadding(size[0]);
357 child.style.height = 'inherit';
358 padding = getPadding(0, 0, 0, pad[0]);
362 //move child in targeted cell
363 var parentGrid = getElementById(parent, position);
364 parentGrid.appendChild(child);
365 parentGrid.style.padding = padding;
367 //to well perform positionning, we must clear some default properties
368 //position left, right, width, height,
370 child.style.position = 'inherit';
371 child.style.left = 'inherit';
372 child.style.bottom = 'inherit';
375 function setUIGridBag(uid, parent, grid) {
376 var child = getElementById(uid);
378 console.log("setUIGridBag: " + uid);
381 child.style.position = 'inherit';
382 child.style.left = 'inherit';
383 child.style.bottom = 'inherit';
384 child.style.width = '100%';
385 child.style.height = '100%';
387 //create a td with grid information and add it to the good cell ( or create if not exist ! )
390 var td = createElement('TD');
391 td.id = getIdString(parent, '_' + grid[0] + '_' + grid[1]);
393 if (grid[2] !== '1') {
394 td.colSpan = grid[2];
397 if (grid[3] !== '1') {
398 td.rowSpan = grid[3];
401 td.appendChild(child);
403 var table = getElementById(parent, '_table');
406 var trName = '_' + grid[1];
407 var tr = getElementById(parent, trName);
410 tr = createElement('TR');
411 tr.id = getIdString(parent, trName);
412 gridbagHelperTR(table, tr, grid[1]);
415 gridbagHelperTD(tr,td, grid[0]);
417 //force refresh of table, move it to another component and rollback
418 var scilab = getScilab();
419 scilab.appendChild(table);
420 var elem = getElementById(parent);
421 elem.appendChild(table);
426 function setUIFrameBorder(uid, title) {
428 if(title.position === "") {
432 var header = getElementById(uid, "_header");
433 var footer = getElementById(uid, "_footer");
435 if(title.position === "top") {
436 header.style.display = 'block';
437 footer.style.display = 'none';
440 footer.style.display = 'block';
441 header.style.display = 'none';
445 border.textContent = title.text;
446 border.style.textAlign = title.alignment;
447 border.style.fontName = title.fontName;
448 border.style.fontStyle = title.fontStyle;
449 border.style.fontSize = title.fontSize + 'px';
450 border.style.fontWeight = title.fontWeight;
451 border.style.color = title.fontColor;
454 function setUIIcon(uid, icon, val) {
455 var child = getElementById(uid);
457 //add span element in button to show image
458 var span = createElement('SPAN');
459 if(icon.substring(0, 5) === 'glyph') {
460 span.className = "glyphicon " + icon;
461 span.style.paddingRight = '4px';
463 span.style.background = '#f3f3f3 url(' + icon + ') no-repeat left center';
464 span.style.paddingLeft = '20px';
467 var text = createElement('SPAN');
468 text.textContent = val;
469 text.style = child.style;
471 child.innerHTML = "";
472 child.appendChild(span);
473 child.appendChild(text);
476 function setUIGroupName(uid, val) {
477 var child = getElementById(uid, "_radio");
484 function setCallback(uid) {
488 var child = getElementById(uid);
490 var $child = getJElementById(uid);
492 if($child.hasClass('GO_UI_PUSHBUTTON')) {
495 } else if($child.hasClass('GO_UI_CHECKBOX')) {
496 //change child to real checkbox
497 child = getElementById(uid, "_checkbox");
500 } else if($child.hasClass('GO_UI_RADIOBUTTON')) {
501 //change child to real radio
502 child = getElementById(uid, "_radio");
504 func = onRadioButton;
505 } else if($child.hasClass('GO_UI_LISTBOX')) {
508 } else if($child.hasClass('GO_UI_POPUPMENU')) {
511 } else if($child.hasClass('GO_UI_SLIDER')) {
514 } else if($child.hasClass('GO_UI_EDIT')) {
517 } else if($child.hasClass('GO_UI_SPINNER')) {
522 //add callback listener
523 child.addEventListener(event, func);