remove trailing whitesapce
[scilab.git] / scilab / node / static / scilab_setter.js
1 function setParent(uid, parent) {
2     var __child__ = getElementById(uid);
3     var __parent__ = getElementById(parent);
4     __parent__.appendChild(__child__);
5 }
6
7 function setFigureSize(uid, val) {
8     var __child__ = getElementById(uid);
9     __child__.style.width = val[0] + 'px';
10     __child__.style.height = val[1] + 'px';
11 }
12
13 function setUIPosition(uid, val) {
14     var __child__ = getElementById(uid);
15     __child__.style.left = val[0] + 'px';
16     __child__.style.bottom = val[1] + 'px';
17     __child__.style.width = val[2] + 'px';
18     __child__.style.height = val[3] + 'px';
19 }
20
21 function setUIString(uid, val, parent) {
22     var __child__ = getElementById(uid);
23     switch(__child__.className) {
24         case 'GO_UI_CHECKBOX':
25         case 'GO_UI_RADIOBUTTON':
26            var __label__ = getElementById(uid + '_label');
27             __label__.innerHTML = val[0];
28             break;
29
30         case 'GO_UI_POPUPMENU' :
31         case 'GO_UI_LISTBOX':
32             //remove previous values
33             while (__child__.length) {__child__.remove(0);}
34
35            var size = val.length;
36             for(var i = 0 ; i < size ; ++i) {
37                 __child__.add(new Option(val[i]));
38             }
39
40             if(__child__.className === 'GO_UI_LISTBOX') {
41                 //switch to listbox instead of combobox
42                __child__.size = 2;
43             }
44
45             break;
46
47         case 'GO_UI_TAB':
48             //nothing to do
49            break;
50
51        case 'GO_UI_FRAME':
52            var __parent__ = getElementById(parent);
53             if(__parent__ && __parent__.className === 'GO_UI_TAB') {
54                var __btn__ = getElementById(uid + '_btn');
55                 __btn__.value = val[0];
56             }
57             break;
58
59         default:
60             if(isInputType(uid)) {
61                 __child__.value = val[0];
62             } else {
63                 __child__.innerHTML = val[0];
64             }
65             break;
66     }
67 }
68
69 function setVisible(uid, val) {
70     var __child__ = getElementById(uid);
71     __child__.style.visibility = val;
72 }
73
74 function setUIEnable(uid, val) {
75     var __child__ = $('#' + getIdString(uid));
76     if(val) {
77         __child__.removeClass("disabled");
78     } else {
79         __child__.addClass("disabled");
80     }
81 }
82
83 function setUIForegroundColor(uid, val) {
84     var __child__ = getElementById(uid);
85     __child__.style.color = val;
86 }
87
88 function setUIBackgroundColor(uid, val) {
89     var __child__ = getElementById(uid);
90     __child__.style.backgroundColor = val;
91 }
92
93 function setUIFontAngle(uid, val) {
94     var __child__ = getElementById(uid);
95     __child__.style.fontStyle = val;
96 }
97
98 function setUIFontName(uid, val) {
99     var __child__ = getElementById(uid);
100     __child__.style.fontFamily = val;
101 }
102
103 function setUIFontSize(uid, val) {
104     var __child__ = getElementById(uid);
105     __child__.style.fontSize = val;
106 }
107
108 function setUIFontWeight(uid, val) {
109     var __child__ = getElementById(uid);
110     __child__.style.fontWeight = val;
111 }
112
113 function setUIHorizontalAlignment(uid, val) {
114     var __child__ = getElementById(uid);
115     __child__.style.textAlign = val;
116 }
117
118 function setUIVerticalAlignment(uid, val) {
119     var __child__ = getElementById(uid);
120     __child__.style.lineHeight = val;
121 }
122
123 function setUILayout(uid, val) {
124     var __child__ = getElementById(uid);
125
126     switch(val) {
127         case LayoutType.LAYOUT_BORDER :
128             //add 'frame' in child to be more ... flexible ;)
129            var __layout__ = createElement('DIV');
130             __layout__.id = getIdString(uid, '_layout');
131             __layout__.style.display = 'flex';
132             __layout__.style.flexDirection = 'column';
133             __layout__.style.width = '100%';
134             __layout__.style.height = 'inherit';
135
136             //add top
137            var __top__ = createElement('HEADER');
138             __top__.id = getIdString(uid, '_top');
139             __top__.style.width = '100%';
140
141             //add middle band
142            var __middle__ = createElement('DIV');
143             __middle__.id = getIdString(uid, '_middle');
144             __middle__.style.flex = '1';
145             __middle__.style.display = 'flex';
146
147             //add left
148            var __left__ = createElement('ASIDE');
149             __left__.id = getIdString(uid, '_left');
150             __left__.style.display = 'flex';
151
152             //add center
153            var __center__ = createElement('ARTICLE');
154             __center__.id = getIdString(uid, '_center');
155             __center__.style.flex = '1';
156             __center__.style.display = 'flex';
157             __center__.style.width = '100%';
158
159             //add right
160            var __right__ = createElement('ASIDE');
161             __right__.id = getIdString(uid, '_right');
162             __right__.style.display = 'flex';
163
164             //add bottom
165            var __bottom__ = createElement('FOOTER');
166             __bottom__.id = getIdString(uid, '_bottom');
167             __bottom__.style.width = '100%';
168
169             //hierarchy
170             __middle__.appendChild(__left__);
171             __middle__.appendChild(__center__);
172             __middle__.appendChild(__right__);
173
174             __layout__.appendChild(__top__);
175             __layout__.appendChild(__middle__);
176             __layout__.appendChild(__bottom__);
177
178             __child__.appendChild(__layout__);
179             break;
180
181         case LayoutType.LAYOUT_GRID:
182             break;
183
184         case LayoutType.LAYOUT_GRIDBAG:
185             //add empty table
186            var __table__ = createElement('TABLE');
187             __table__.id = getIdString(uid, '_table');
188             __table__.style.margin = '0';
189             __table__.style.padding = '0';
190             __table__.style.width = '100%';
191             __table__.style.height = '100%';
192             __table__.style.borderCollapse = 'collapse';
193
194             //insert table in parent
195             __child__.appendChild(__table__);
196             break;
197
198         default:
199         case LayoutType.LAYOUT_NONE:
200             break;
201     }
202 }
203
204 function setUIMin(uid, val) {
205     var __child__ = getElementById(uid);
206     __child__.min  = val;
207 }
208
209 function setUIMax(uid, val) {
210     var __child__ = getElementById(uid);
211     __child__.max  = val;
212 }
213
214 function setUIStep(uid, val) {
215     var __child__ = getElementById(uid);
216     __child__.step  = val;
217 }
218
219 function setUIValue(uid, val) {
220     var __child__ = getElementById(uid);
221     switch(__child__.className) {
222         case 'GO_UI_SPINNER':
223         case 'GO_UI_SLIDER':
224             __child__.value  = '' + val;
225             break;
226         case 'GO_UI_TAB':
227             tabSelectHelper(__child__, val);
228             break;
229     }
230 }
231
232 function setUIBorder(uid, parent, pos, pad, size) {
233     var __child__ = getElementById(uid);
234     var position;
235     var padding;
236     switch(pos) {
237         case BorderLayoutType.BORDER_CENTER:
238             position = '_center';
239             __child__.style.width = 'inherit';
240             __child__.style.height = 'inherit';
241             padding = getPadding(0, 0, 0, 0);
242             break;
243
244         case BorderLayoutType.BORDER_BOTTOM:
245             position = '_bottom';
246             __child__.style.width = '100%';
247             if(size[1] === -1) {
248                 __child__.style.height = 'inherit';
249             } else {
250                 __child__.style.height = getSubPadding(size[1]);
251             }
252
253             padding = getPadding(pad[1], 0, 0, 0);
254             break;
255
256         case BorderLayoutType.BORDER_TOP:
257             position = '_top';
258             __child__.style.width = '100%';
259
260             if (size[1] === -1) {
261                 __child__.style.height = 'inherit';
262             } else {
263                 __child__.style.height = getSubPadding(size[1]);
264             }
265
266             padding = getPadding(0, 0, pad[1], 0);
267             break;
268
269         case BorderLayoutType.BORDER_LEFT:
270             position = '_left';
271
272             if (size[0] == -1){
273                 __child__.style.width = 'inherit';
274             } else {
275                 __child__.style.width = getSubPadding(size[0]);
276             }
277
278             __child__.style.height = 'inherit';
279             padding = getPadding(0, pad[0], 0, 0);
280             break;
281
282         case BorderLayoutType.BORDER_RIGHT:
283             position = '_right';
284
285             if (size[0] == -1) {
286                 __child__.style.width = 'inherit';
287             } else {
288                 __child__.style.width = getSubPadding(size[0]);
289             }
290
291             __child__.style.height = 'inherit';
292             padding = getPadding(0, 0, 0, pad[0]);
293             break;
294     }
295
296     //move child in targeted cell
297     var __parent__ = getElementById(parent, position);
298     __parent__.appendChild(__child__);
299     __parent__.style.padding = padding;
300
301     //to well perform positionning, we must clear some default properties
302     //position left, right, width, height,
303
304     __child__.style.position = 'inherit';
305     __child__.style.left = 'inherit';
306     __child__.style.bottom = 'inherit';
307 }
308
309 function setUIGridBag(uid, parent, grid) {
310     var __child__ = getElementById(uid);
311     __child__.style.position = 'inherit';
312     __child__.style.left = 'inherit';
313     __child__.style.bottom = 'inherit';
314     __child__.style.width = '100%';
315     __child__.style.height = '100%';
316
317     //create a td with grid information and add it to the good cell ( or create if not exist ! )
318
319     //build td child
320     var __td__ = createElement('TD');
321     __td__.id = getIdString(parent, '_' + grid[0] + '_' + grid[1]);
322
323     if (grid[2] !== '1') {
324         __td__.colSpan = grid[2];
325     }
326
327     if (grid[3] !== '1') {
328         __td__.rowSpan = grid[3];
329     }
330
331     __td__.appendChild(__child__);
332
333     var __table__ = getElementById(parent, '_table');
334
335     //build or get tr
336     var trName = '_' + grid[1];
337     var __tr__ = getElementById(parent, trName);
338
339     if(__tr__ == null) {
340         __tr__ = createElement('TR');
341         __tr__.id = getIdString(parent, trName);
342         gridbagHelperTR(__table__, __tr__, grid[1]);
343     }
344
345     gridbagHelperTD(__tr__,__td__, grid[0]);
346
347     //force refresh of table, move it to another component and rollback
348     var __scilab__ = document.getElementById('scilab');
349     __scilab__.appendChild(__table__);
350     var __parent__ = getElementById(parent);
351     __parent__.appendChild(__table__);
352 }
353
354
355
356 function setUIFrameBorder(uid, border, parent, title) {
357     var __child__ = getElementById(uid);
358     var __border__ = createCommonIUControl(border, 'DIV', 'GO_UI_FRAME_BORDER');
359
360     var __fieldset__ = createElement('FIELDSET');
361    __fieldset__.id = getIdString(uid, '_fieldset');
362     var __legend__ = createElement('LEGEND');
363     __legend__.id = getIdString(uid, '_legend');
364     __legend__.innerHTML = title;
365
366     __fieldset__.appendChild(__legend__);
367     __fieldset__.appendChild(__child__);
368     __border__.appendChild(__fieldset__);
369     var __parent__ = getElementById(parent);
370     __parent__.appendChild(__border__);
371 }
372
373 function setUIIcon(uid, icon, val) {
374     var __child__ = getElementById(uid);
375
376     //add span element in button to show image
377     var __icon__ = createElement('SPAN');
378     __icon__.style.background = '#f3f3f3 url(' + icon + ') no-repeat left center';
379     __icon__.style.paddingLeft = '20px';
380     __child__.appendChild(__icon__);
381     //__child__.innerHTML += val;
382 }
383
384 function setCallback(uid) {
385     var event;
386     var func;
387
388     var __child__ = getElementById(uid);
389
390     switch(__child__.className) {
391         case 'btn' :
392             event = "click";
393             func = onPushButton;
394             break;
395         case 'GO_UI_CHECKBOX' :
396             event = "click";
397             func = onCheckBox;
398             break;
399         case 'GO_UI_RADIOBUTTON' :
400             event = "click";
401             func = onRadioButton;
402             break;
403         case 'GO_UI_LISTBOX' :
404             event = "change";
405             func = onListBox;
406             break;
407         case 'GO_UI_POPUPMENU' :
408             event = "change";
409             func = onComboBox;
410             break;
411         case 'GO_UI_SLIDER' :
412             event = "input";
413             func = onSlider;
414             break;
415         case 'GO_UI_EDIT' :
416             event = "input";
417             func = onEditBox;
418             break;
419         case 'GO_UI_SPINNER' :
420             event = "input";
421             func = onSpinner;
422             break;
423         default :
424             return;
425     }
426
427     //add callback listener
428     __child__.addEventListener(event, func);
429 }