summaryrefslogtreecommitdiff
path: root/src/ws/node.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/ws/node.js')
-rw-r--r--src/ws/node.js197
1 files changed, 108 insertions, 89 deletions
diff --git a/src/ws/node.js b/src/ws/node.js
index 3cb325c..f7deaf7 100644
--- a/src/ws/node.js
+++ b/src/ws/node.js
@@ -1,137 +1,156 @@
-/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set et sw=2 ts=2: */
function createId(boardid, nodeid)
{
- return "b" + boardid + "_t" + nodeid;
+ return "b" + boardid + "_t" + nodeid;
}
function idFromStr(str)
{
- return str.substring(str.search('t') + 1, str.length);
+ return str.substring(str.search('t') + 1, str.length);
}
var nodes = new Array();
function findNode(id, subscribeid)
{
- for(var i = 0; i < nodes.length; i++) {
- var node = nodes[i];
- var child = node.findNode(id, subscribeid);
- if(child != null) return child;
- }
+ for(var i = 0; i < nodes.length; i++)
+ {
+ var node = nodes[i];
+ var child = node.findNode(id, subscribeid);
+ if(child != null)
+ {
+ return child;
+ }
+ }
- return null;
+ return null;
}
function Node(id, subscribeid)
{
- this.id = id;
- this.subscribeid = subscribeid;
- this.children = new Array();
- this.attributes = {};
- this.parent = null;
-
- // Elements:
- this.element = document.createElement("div");
- this.div_id = document.createElement("span");
- this.div_title = document.createElement("span");
+ this.id = id;
+ this.subscribeid = subscribeid;
+ this.children = new Array();
+ this.attributes = {};
+ this.parent = null;
+
+ // Elements:
+ this.element = document.createElement("div");
+ this.div_id = document.createElement("span");
+ this.div_title = document.createElement("span");
}
Node.prototype.dump = function()
{
- alert(this.id);
-}
+ alert(this.id);
+};
Node.prototype.findNode = function(id, subscribeid)
{
- if(this.subscribeid != subscribeid) return null;
+ if(this.subscribeid != subscribeid)
+ {
+ return null;
+ }
- if(this.id == id) return this;
+ if(this.id == id)
+ {
+ return this;
+ }
- for(var i = 0; i < this.children.length; i++) {
- var node = this.children[i];
- var child = node.findNode(id, subscribeid);
- if(child != null) return child;
- }
+ for(var i = 0; i < this.children.length; i++)
+ {
+ var node = this.children[i];
+ var child = node.findNode(id, subscribeid);
+ if(child != null)
+ {
+ return child;
+ }
+ }
- return null;
-}
+ return null;
+};
Node.prototype.addChild = function(node)
{
- if(node.parent != null) node.parent.removeChild(node);
- this.children.push(node);
- node.parent = this;
- this.element.appendChild(node.element);
-}
+ if(node.parent != null)
+ {
+ node.parent.removeChild(node);
+ }
+ this.children.push(node);
+ node.parent = this;
+ this.element.appendChild(node.element);
+};
Node.prototype.removeChild = function(node)
{
- this.children = this.children.filter(
- function(e) {
- return e.id != node.id;
- });
- node.parent = null;
- this.element.removeChild(node.element);
-}
+ this.children = this.children.filter(function(e)
+ {
+ return e.id != node.id;
+ });
+ node.parent = null;
+ this.element.removeChild(node.element);
+};
Node.prototype.create = function()
{
- var node = this.element;
-
- node.name = "node";
- node.setAttribute("class", "node");
- node.setAttribute("ondblclick", "editTitle(this, event)");
- //node.setAttribute("onclick", "showHideChildren(this, event)");
- node.setAttribute("ondrop", "drop(this, event)");
- node.setAttribute("ondragover", "return false");
- node.setAttribute("draggable", true);
- node.setAttribute("ondragstart", "drag(this, event)");
- node.setAttribute("title", this.id);
-
- // This is a hack to make it possible to identify the nodeid and
- // oberveid from the node id alone.
- node.id = createId(this.subscribeid, this.id);
+ var node = this.element;
+
+ node.name = "node";
+ node.setAttribute("class", "node");
+ node.setAttribute("ondblclick", "editTitle(this, event)");
+ //node.setAttribute("onclick", "showHideChildren(this, event)");
+ node.setAttribute("ondrop", "drop(this, event)");
+ node.setAttribute("ondragover", "return false");
+ node.setAttribute("draggable", true);
+ node.setAttribute("ondragstart", "drag(this, event)");
+ node.setAttribute("title", this.id);
+
+ // This is a hack to make it possible to identify the nodeid and
+ // oberveid from the node id alone.
+ node.id = createId(this.subscribeid, this.id);
/*
- var subscribe_button = document.createElement("div");
- subscribe_button.name = "subscribe_button";
- subscribe_button.setAttribute("onclick", "subscribeMe(this, event)");
- subscribe_button.setAttribute("title", this.id);
- subscribe_button.setAttribute("style", "float: left; display: inline-box; width:14px; height: 14px; border: solid green 2px; cursor: pointer;");
- var txt_plus = document.createTextNode("+");
- subscribe_button.appendChild(txt_plus);
- node.appendChild(subscribe_button);
-
- var unsubscribe_button = document.createElement("div");
- unsubscribe_button.name = "unsubscribe_button";
- unsubscribe_button.setAttribute("onclick", "unsubscribeMe(this, event)");
- unsubscribe_button.setAttribute("title", this.id);
- unsubscribe_button.setAttribute("style", "float: left; display: inline-box; width:14px; height: 14px; border: solid red 2px; cursor: pointer;");
- var txt_minus = document.createTextNode("-");
- unsubscribe_button.appendChild(txt_minus);
- node.appendChild(unsubscribe_button);
+ var subscribe_button = document.createElement("div");
+ subscribe_button.name = "subscribe_button";
+ subscribe_button.setAttribute("onclick", "subscribeMe(this, event)");
+ subscribe_button.setAttribute("title", this.id);
+ subscribe_button.setAttribute("style", "float: left; display: inline-box; width:14px; height: 14px; border: solid green 2px; cursor: pointer;");
+ var txt_plus = document.createTextNode("+");
+ subscribe_button.appendChild(txt_plus);
+ node.appendChild(subscribe_button);
+
+ var unsubscribe_button = document.createElement("div");
+ unsubscribe_button.name = "unsubscribe_button";
+ unsubscribe_button.setAttribute("onclick", "unsubscribeMe(this, event)");
+ unsubscribe_button.setAttribute("title", this.id);
+ unsubscribe_button.setAttribute("style", "float: left; display: inline-box; width:14px; height: 14px; border: solid red 2px; cursor: pointer;");
+ var txt_minus = document.createTextNode("-");
+ unsubscribe_button.appendChild(txt_minus);
+ node.appendChild(unsubscribe_button);
*/
- this.element.appendChild(this.div_id);
- var id_txt = document.createTextNode(this.id);
- this.div_id.appendChild(id_txt);
+ this.element.appendChild(this.div_id);
+ var id_txt = document.createTextNode(this.id);
+ this.div_id.appendChild(id_txt);
- this.element.appendChild(this.div_title);
+ this.element.appendChild(this.div_title);
- this.setAttribute("title", "(missing title)");
-}
+ this.setAttribute("title", "(missing title)");
+};
Node.prototype.setAttribute = function(name, value)
{
- this.attributes[name] = value;
-
- if(name == "title") {
- if(this.div_title.firstChild != null) {
- this.div_title.removeChild(this.div_title.firstChild);
+ this.attributes[name] = value;
+
+ if(name == "title")
+ {
+ if(this.div_title.firstChild != null)
+ {
+ this.div_title.removeChild(this.div_title.firstChild);
+ }
+ var title_txt = document.createTextNode(value);
+ this.div_title.appendChild(title_txt);
}
- var title_txt = document.createTextNode(value);
- this.div_title.appendChild(title_txt);
- }
-}
+};