@@ -296,6 +296,21 @@ def set_identifier(self, new_identifier):
296296 self .attributes ['id' ] = new_identifier
297297 runtimeInstances [new_identifier ] = self
298298
299+ def innerHTML (self , local_changed_widgets ):
300+ ret = ''
301+ for k in self ._render_children_list :
302+ s = self .children [k ]
303+ if isinstance (s , Tag ):
304+ ret = ret + s .repr (local_changed_widgets )
305+ elif isinstance (s , type ('' )):
306+ ret = ret + s
307+ elif isinstance (s , type (u'' )):
308+ ret = ret + s .encode ('utf-8' )
309+ else :
310+ ret = ret + repr (s )
311+ ret += '\n '
312+ return ret
313+
299314 def repr (self , changed_widgets = None ):
300315 """It is used to automatically represent the object to HTML format
301316 packs all the attributes, children and so on.
@@ -307,23 +322,13 @@ def repr(self, changed_widgets=None):
307322 if changed_widgets is None :
308323 changed_widgets = {}
309324 local_changed_widgets = {}
310- innerHTML = ''
311- for k in self ._render_children_list :
312- s = self .children [k ]
313- if isinstance (s , Tag ):
314- innerHTML = innerHTML + s .repr (local_changed_widgets )
315- elif isinstance (s , type ('' )):
316- innerHTML = innerHTML + s
317- elif isinstance (s , type (u'' )):
318- innerHTML = innerHTML + s .encode ('utf-8' )
319- else :
320- innerHTML = innerHTML + repr (s )
325+ _innerHTML = self .innerHTML (local_changed_widgets )
321326
322327 if self ._ischanged () or ( len (local_changed_widgets ) > 0 ):
323328 self ._backup_repr = '' .join (('<' , self .type , ' ' , self ._repr_attributes , '>' ,
324- innerHTML , '</' , self .type , '>' ))
329+ _innerHTML , '</' , self .type , '>' ))
325330 #faster but unsupported before python3.6
326- #self._backup_repr = f'<{self.type} {self._repr_attributes}>{innerHTML }</{self.type}>'
331+ #self._backup_repr = f'<{self.type} {self._repr_attributes}>{_innerHTML }</{self.type}>'
327332 if self ._ischanged ():
328333 # if self changed, no matter about the children because will be updated the entire parent
329334 # and so local_changed_widgets is not merged
@@ -957,19 +962,7 @@ def repr(self, changed_widgets=None):
957962 if changed_widgets is None :
958963 changed_widgets = {}
959964 local_changed_widgets = {}
960- innerHTML = ''
961- for k in self ._render_children_list :
962- s = self .children [k ]
963- if isinstance (s , Tag ):
964- innerHTML = innerHTML + s .repr (local_changed_widgets )
965- elif isinstance (s , type ('' )):
966- innerHTML = innerHTML + s
967- elif isinstance (s , type (u'' )):
968- innerHTML = innerHTML + s .encode ('utf-8' )
969- else :
970- innerHTML = innerHTML + repr (s )
971- innerHTML += '\n '
972- return '' .join (('<' , self .type , '>\n ' , innerHTML , '\n </' , self .type , '>' ))
965+ return '' .join (('<' , self .type , '>\n ' , self .innerHTML (local_changed_widgets ), '\n </' , self .type , '>' ))
973966
974967
975968class HEAD (Tag ):
@@ -1040,8 +1033,7 @@ def __init__(self, title, net_interface_ip, pending_messages_queue_length, webso
10401033 /*var idRootNodeWidget = received_msg.substr(0,index-1);*/
10411034 var content = received_msg.substr(index,received_msg.length-index);
10421035
1043- document.body.innerHTML = '<div id="loading" style="display: none;"><div id="loading-animation"></div></div>';
1044- document.body.innerHTML += decodeURIComponent(content);
1036+ document.body.innerHTML = decodeURIComponent(content);
10451037 }else if( received_msg[0]=='1' ){ /*update_widget*/
10461038 var focusedElement=-1;
10471039 var caretStart=-1;
@@ -1248,19 +1240,7 @@ def repr(self, changed_widgets=None):
12481240 if changed_widgets is None :
12491241 changed_widgets = {}
12501242 local_changed_widgets = {}
1251- innerHTML = ''
1252- for k in self ._render_children_list :
1253- s = self .children [k ]
1254- if isinstance (s , Tag ):
1255- innerHTML = innerHTML + s .repr (local_changed_widgets )
1256- elif isinstance (s , type ('' )):
1257- innerHTML = innerHTML + s
1258- elif isinstance (s , type (u'' )):
1259- innerHTML = innerHTML + s .encode ('utf-8' )
1260- else :
1261- innerHTML = innerHTML + repr (s )
1262- innerHTML += '\n '
1263- return '' .join (('<' , self .type , '>\n ' , innerHTML , '\n </' , self .type , '>' ))
1243+ return '' .join (('<' , self .type , '>\n ' , self .innerHTML (local_changed_widgets ), '\n </' , self .type , '>' ))
12641244
12651245
12661246class BODY (Widget ):
@@ -1274,8 +1254,10 @@ class BODY(Widget):
12741254 def __init__ (self , * args , ** kwargs ):
12751255 super (BODY , self ).__init__ (* args , _type = 'body' , ** kwargs )
12761256 loading_anim = Widget ()
1257+ del loading_anim .style ['margin' ]
12771258 loading_anim .set_identifier ("loading-animation" )
1278- loading_widget = Widget (children = [loading_anim ])
1259+ loading_widget = Widget (children = [loading_anim ], style = {'display' :'none' })
1260+ del loading_widget .style ['margin' ]
12791261 loading_widget .set_identifier ("loading" )
12801262
12811263 self .append (loading_widget )
0 commit comments