diff options
author | Darren Bane <darren.bane@gmail.com> | 2020-05-11 01:15:06 +0100 |
---|---|---|
committer | Darren Bane <darren.bane@gmail.com> | 2020-05-11 01:15:06 +0100 |
commit | c066ab2a55a069802009568a051673b3505503d4 (patch) | |
tree | 3cf0613bb334461c1f39f55a78a4ff79d3fb971f /v.el | |
parent | 5eba13b70414e1a40ef2418978082c6e4ac37c19 (diff) | |
download | lsp-c066ab2a55a069802009568a051673b3505503d4.tar.gz |
Lots of unfinished stuff
Diffstat (limited to 'v.el')
-rw-r--r-- | v.el | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/v.el b/v.el new file mode 100644 index 0000000..84903a9 --- /dev/null +++ b/v.el @@ -0,0 +1,31 @@ +(require 'eieio) +(eval-when-compile (require 'cl-lib)) +(eval-when-compile (require 'cl-generic)) +(require 'jsonrpc) +(defclass v-view () + ((button :accessor button) + (model :accessor model) + (controller :writer controller) + )) +(cl-defmethod initialize-instance :after ((self v-view) &rest initargs) + (oset self button (make-instance (find-class 'button) 'm "Click Me")) + (oset self model (make-instance (find-class 'v-model-stub))) + (oset self controller (make-instance (find-class 'v-controller-stub) 'm (model self) 'b (button self)))) +(defconst v--port-num 8194) +(defvar v--conn (make-instance 'jsonrpc-process-connection + :process (lambda () + (open-network-stream + "*MVC JSON-RPC*" nil + "localhost" v--port-num)))) +(defclass v-model-stub () (id :reader id)) +(cl-defmethod initialize-instance :after ((self v-model-stub) &rest initargs) + (oset self id (jsonrpc-request v--conn :create-model))) +(cl-defgeneric get-number (model)) +(cl-defmethod get-number ((model v-model-stub)) + (jsonrpc-request v--conn :get-number '(:id (id model)))) +(defclass v-controller-stub () (id :reader id)) +(cl-defmethod initialize-instance :after ((self v-controller-stub) &rest initargs) + (oset self id (jsonrpc-request v--conn :create-controller))) +(cl-defgeneric on-button-clicked (controller)) +(cl-defmethod on-button-clicked ((controller v-controller-stub)) + (jsonrpc-request v--conn :on-button-clicked '(:id (id controller)))) |