+ if not self.threaded_search:
+ for item in self.do_search():
+ self.children.append(item)
+ return
+
+ def refresh():
+ return self.do_search()
+
+ def refresh_finished(exception, retval):
+ if not self.is_loading:
+ log.info("model is not loading")
+ return
+
+ if exception is not None:
+ if type(exception) is socket.gaierror or \
+ type(exception) is urllib2.URLError:
+ emsg = "Unable to connect to server.<br>" + \
+ "Check your connection and try again."
+ else:
+ emsg = "An unknown error has occured."
+
+ log.error(exception)
+
+ if self.callback_notify:
+ self.callback_notify(CanolaError(emsg))
+
+ if retval is None:
+ self.inform_loaded()
+ return
+
+ for item in retval:
+ self.children.append(item)
+
+ if end_callback:
+ end_callback()
+
+ self.inform_loaded()
+
+ self.is_loading = True
+ ThreadedFunction(refresh_finished, refresh).start()