def pres(self, pres_ctx):
     textarea = Html(u'<textarea>{text}</textarea>'.format(
         text=Html.escape_str(self.__text)))
     textarea = textarea.js_function_call('larch.controls.initCodeMirror',
                                          self.__config,
                                          self.__immediate_events,
                                          self.__channel)
     p = Html('<div>', textarea, '</div>')
     p = p.use_css('/static/codemirror-3.14/lib/codemirror.css')
     p = p.use_js('/static/codemirror-3.14/lib/codemirror.js')
     for mode in self.__modes:
         p = p.use_js(
             '/static/codemirror-3.14/mode/{0}/{0}.js'.format(mode))
     for addon in _addon_js:
         p = p.use_js('/static/codemirror-3.14/addon/{0}'.format(addon))
     for addon in _addon_css:
         p = p.use_css('/static/codemirror-3.14/addon/{0}'.format(addon))
     if _code_mirror_theme is not None:
         p = p.use_css('/static/codemirror-3.14/theme/{0}.css'.format(
             _code_mirror_theme))
     p = p.use_js('/static/larch/larch_ui.js').use_css(
         '/static/larch/larch_ui.css')
     p = p.with_event_handler('code_mirror_edit',
                              lambda event: self.edit(event, event.data))
     p = p.with_event_handler('code_mirror_focus', self.focus)
     p = p.with_event_handler('code_mirror_blur', self.blur)
     return p
Exemple #2
0
	def __present__(self, fragment):
		def on_execute_key(event, key):
			self.execute()
			return True

		def on_save_key(event, key):
			self._save_containing_document_and_display_notification(fragment)



		self.__incr.on_access()



		contents = []

		for block in self.__blocks:
			contents.extend(['<div>', block, '</div>'])


		p = Html(*contents)
		p = p.with_key_handler([KeyAction(KeyAction.KEY_DOWN, 13, ctrl=True)], on_execute_key)
		p = p.with_key_handler([KeyAction(KeyAction.KEY_DOWN, ord('S'), ctrl=True, prevent_default=True)], on_save_key)
		return p.use_css('/static/larch/notebook.css')