lexonomy_custom_editor/src/message/message.py
Ozbolt Menegatti e3792005ba messages now a bit different, less contructions
not constructing one for each possible message but only constructing when message happens
2020-02-16 23:17:46 +01:00

51 lines
1.3 KiB
Python

from update import update
from browser import window
class Message:
def __init__(self, *args):
self._args = args
self.error = None
def update_model(self, model):
raise NotImplementedError("This message does not implement update_model method")
def on_event(self, event):
pass
def get_arg(self, n, argtype=None):
if n > len(self._args):
window.console.log("not enough arguments: {} <= {}".format(n, len(self._args)))
result = self._args[n]
if argtype is not None:
if not type(result) is argtype:
window.console.trace("Error type check!")
return None
return result
def data_change(self):
return True
def add_arg(self, arg):
self._args.append(arg)
def reset(self):
return True
def clear_args(self):
self._args = []
def msg(message_class, params):
def callback(event):
message = message_class(params)
if not issubclass(type(message), Message):
window.console.log("Not scheduling a Message type, this will not work!")
return
message.on_event(event)
update.schedule(message)
return callback