From b5b75f83a207c00d3582745bd2dc1866639028b6 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Fri, 18 Jan 2013 10:47:53 +0100 Subject: Rewrite of javascript engine to be more model-view-controller like. --- handler.js | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 handler.js (limited to 'handler.js') diff --git a/handler.js b/handler.js new file mode 100644 index 0000000..60a6aee --- /dev/null +++ b/handler.js @@ -0,0 +1,102 @@ +/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ + + +document.addEventListener("connectEvent", connectEventHandler, false); +function connectEventHandler(e) +{ + document.getElementById("wstask_status").style.backgroundColor = "#40ff40"; + document.getElementById("wstask_status").textContent = "TaskProto websocket connection opened "; + socket_task.send("observe 0;"); +} + +document.addEventListener("disconnectEvent", disconnectEventHandler, false); +function disconnectEventHandler(e) +{ + document.getElementById("wstask_status").style.backgroundColor = "#ff4040"; + document.getElementById("wstask_status").textContent = "TaskProto websocket connection CLOSED "; +} + +document.addEventListener("removeEvent", removeEventHandler, false); +function removeEventHandler(e) +{ + var observeid = e.detail.observeid; + var id = e.detail.id; + + var task = findTask(id, observeid); + if(task.parent) task.parent.removeChild(task); +} + +document.addEventListener("moveEvent", moveEventHandler, false); +function moveEventHandler(e) +{ + var observeid = e.detail.observeid; + var id = e.detail.id; + var parentid = e.detail.parentid; + + var task = findTask(id, observeid); + var new_parent = findTask(parentid, observeid); + if(task != null && new_parent != null) new_parent.addChild(task); +} + +document.addEventListener("createEvent", createEventHandler, false); +function createEventHandler(e) +{ + var observeid = e.detail.observeid; + var id = e.detail.id; + var parentid = e.detail.parentid; + + var task = new Task(id, observeid); + task.create(); + + if(parentid == -1) { + tasks.push(task); + var board = getBoard(observeid); + board.appendChild(task.element); + return; + } + + var parent = findTask(parentid, observeid); + if(parent != null) { + parent.addChild(task); + } + +} + +document.addEventListener("updateEvent", updateEventHandler, false); +function updateEventHandler(e) +{ + var observeid = e.detail.observeid; + var id = e.detail.id; + var name = e.detail.name; + var value = e.detail.value; + + var task = findTask(id, observeid); + if(task == null) return; + + task.setAttribute(name, value); + + //LogEvent("update handled"); +} + +/////// +////// +///// +//// +/// +// + +document.addEventListener("messageEvent", messageEventHandler, false); +function messageEventHandler(e) { + LogEvent( + "Event: " + e.detail.time.toLocaleString()+": "+e.detail.message + ); +} + +// log event in console +function LogEvent(msg) { + var log = document.getElementById("log"); + log.textContent += msg + "\n"; + var ot = log.scrollHeight - log.clientHeight; + if (ot > 0) log.scrollTop = ot; +} -- cgit v1.2.3