diff -r 46d7d2ce84d2 -r 5c0f34a9ab00 plugins/python/modules/svgui/livesvg.js --- a/plugins/python/modules/svgui/livesvg.js Thu Aug 13 11:48:55 2009 +0200 +++ b/plugins/python/modules/svgui/livesvg.js Fri Aug 14 16:26:19 2009 +0200 @@ -1,14 +1,11 @@ // import Nevow.Athena // import Divmod.Base -function init() { - Nevow.Athena.Widget.fromAthenaID(1).callRemote('HMIexec', 'initClient'); -} function updateAttr(id, param, value) { Nevow.Athena.Widget.fromAthenaID(1).callRemote('HMIexec', 'setattr', id, param, value); } -var svguiWidgets={}; +var svguiWidgets = new Array(); var currentObject = null; function setCurrentObject(obj) { @@ -28,6 +25,7 @@ LiveSVGPage.LiveSVGWidget = Nevow.Athena.Widget.subclass('LiveSVGPage.LiveSVGWidget'); LiveSVGPage.LiveSVGWidget.methods( + function handleEvent(self, evt) { if (currentObject != null) { currentObject.handleEvent(evt); @@ -36,28 +34,20 @@ function receiveData(self, data){ dataReceived = json_parse(data); - newState = json_parse(dataReceived.kwargs).state - svguiWidgets[dataReceived.back_id].updateState(newState); + gadget = svguiWidgets[dataReceived.id] + if (gadget) { + gadget.updateValues(json_parse(dataReceived.kwargs)); + } //console.log("OBJET : " + dataReceived.back_id + " STATE : " + newState); }, - function SvguiButton(self,elt_back, args){ - var btn = new svguilib.button(self, elt_back, args.sele_id, args.toggle, args.state, args.active); - return btn; - }, - - function SvguiTextCtrl(self, elt_back, args){ - var txtCtrl = new svguilib.textControl(self, elt_back, args.state); - return txtCtrl; - }, - function init(self, arg1){ //console.log("Object received : " + arg1); for (ind in arg1) { gad = json_parse(arg1[ind]); args = json_parse(gad.kwargs); - gadget = self[gad.__class__](gad.back_id, args); - svguiWidgets[gadget.back_elt.id]=gadget; + gadget = new svguilib[gad.__class__](self, gad.id, args); + svguiWidgets[gadget.id]=gadget; //console.log('GADGET :' + gadget); } var elements = document.getElementsByTagName("svg"); @@ -67,5 +57,3 @@ //console.log("SVGUIWIDGETS : " + svguiWidgets); } ); - -Divmod.Base.addLoadEvent(init); \ No newline at end of file