Author: jmorliaguet
Date: Wed Dec 21 21:43:45 2005
New Revision: 2072

Modified:
   cpsskins/branches/jmo-perspectives/browser/skin/popup_macros.pt
   cpsskins/branches/jmo-perspectives/ui/authoring/authoring.js
   cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.js
   cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.pt
   cpsskins/branches/jmo-perspectives/ui/framework/utils.js
Log:

- added a javascript Util object for the functions in utils.js



Modified: cpsskins/branches/jmo-perspectives/browser/skin/popup_macros.pt
==============================================================================
--- cpsskins/branches/jmo-perspectives/browser/skin/popup_macros.pt     
(original)
+++ cpsskins/branches/jmo-perspectives/browser/skin/popup_macros.pt     Wed Dec 
21 21:43:45 2005
@@ -9,8 +9,6 @@
       <title metal:define-slot="title">CPSSkins for Zope3</title>
       <link rel="Stylesheet" type="text/css"
        href="/++skin++cpsskins/@@/++resource++editing.css" />
-      <script type="text/javascript"
-       src="/++skin++cpsskins/@@/++resource++utils.js"></script>
       <metal:block define-slot="style" />
       <metal:block define-slot="script" />
       <metal:block define-slot="head" />

Modified: cpsskins/branches/jmo-perspectives/ui/authoring/authoring.js
==============================================================================
--- cpsskins/branches/jmo-perspectives/ui/authoring/authoring.js        
(original)
+++ cpsskins/branches/jmo-perspectives/ui/authoring/authoring.js        Wed Dec 
21 21:43:45 2005
@@ -28,7 +28,7 @@
     this.node = node;
     this.bg = node.style.background;
     this.container = node.parentNode;
-    this.order = getElementOrder(node);
+    this.order = Util.getElementOrder(node);
     this.xpos = null;
     this.ypos = null;
     this.can_move = true;
@@ -115,7 +115,7 @@
         var new_id = request.responseText;
         var rendered = render_element(id=new_id);
         var container = current_elem.parentNode;
-        container.insertBefore(rendered, getNextElement(current_elem));
+        container.insertBefore(rendered, Util.getNextElement(current_elem));
         // set up the new nodes
         pd_setupPage();
       }
@@ -243,7 +243,7 @@
   var speed = vertical_speed(e);
   if (Math.abs(speed) < 1) return;
   if (speed > 0) {
-    var target = getNextElement(el);
+    var target = Util.getNextElement(el);
   } else {
     var target = el;
   }
@@ -258,10 +258,10 @@
 }
 
 function save_move(elem) {
-  var parent = getParentElement(elem);
+  var parent = Util.getParentElement(elem);
   var src_id = elem.getAttribute("id");
   var dest_id = parent.getAttribute("id");
-  var order = getElementOrder(elem);
+  var order = Util.getElementOrder(elem);
   current_elem = elem;
   current_container = parent;
   model.move({'src_id': src_id, 'dest_id': dest_id, 'order': order});
@@ -275,15 +275,15 @@
   if (!Element.hasClassName(moving, 'draggable')) return;
   var target = Event.element(e);
   if (!Element.hasClassName(target, 'container')) return;
-  if (!isNodeEmpty(target)) return;
+  if (!Util.isNodeEmpty(target)) return;
   target.appendChild(moving);
   current_elem = moving;
 }
 
 function add_element(container, el, type_name) {
-  var container_id = getTargetElement(container).getAttribute("id");
+  var container_id = Util.getTargetElement(container).getAttribute("id");
   if (el) {
-    var order = getElementOrder(el);
+    var order = Util.getElementOrder(el);
   } else {
     var order = 0;
   }
@@ -330,7 +330,7 @@
     setCursor("default");
     if (!moved) return;
     if (!current_elem) return;
-    if ((moved.order == getElementOrder(current_elem))
+    if ((moved.order == Util.getElementOrder(current_elem))
      && (moved.container == current_elem.parentNode)) return;
     save_move(current_elem);
     moved = null;
@@ -360,11 +360,11 @@
   Event.observe(mo, 'mouseup', function(e) {
     if (factory) {
       var type_name = factory.node.getAttribute("type_name");
-      if (isNodeEmpty(mo)) {
+      if (Util.isNodeEmpty(mo)) {
         var el = null; 
       } else {
         var target = Event.element(e);
-        var el = getTargetElement(target);
+        var el = Util.getTargetElement(target);
       }
       add_element(mo, el, type_name);
     }

Modified: 
cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.js
==============================================================================
--- cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.js 
(original)
+++ cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.js 
Wed Dec 21 21:43:45 2005
@@ -49,7 +49,7 @@
     if (!label) {
       label = 'unknown label';
     }
-    replaceHTML(tooltip_box, label);
+    Util.replaceHTML(tooltip_box, label);
     tooltip_box.style.left = '' + Event.pointerX(e) + "px";
     tooltip_box.style.top = '' + Event.pointerY(e) + "px";
     Element.show(tooltip_box);
@@ -64,7 +64,7 @@
     // ignore inactive elements
     if (elem.getAttribute("inactive")) return;
     // Get the element selector
-    var selector = getSelectorInContext(elem, context=widget_area);
+    var selector = Util.getSelectorInContext(elem, context=widget_area);
     if (selector == this.selector) return;
     this.selector = selector;
     // Set the current selector style
@@ -107,7 +107,7 @@
       style += "#previewArea " + widget_tag + " " + sel + "{" + attrs + "}";
     }
     // XXX this does not work with IE
-    replaceHTML($('style'), style);
+    Util.replaceHTML($('style'), style);
   },
 
   getSelectorStyle: function() {
@@ -249,7 +249,7 @@
 
 /* Debug */
 function write_message(msg) {
-  if (message_box) replaceHTML(message_box, msg);
+  if (message_box) Util.replaceHTML(message_box, msg);
 }
 
 function clear_message() {

Modified: 
cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.pt
==============================================================================
--- cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.pt 
(original)
+++ cpsskins/branches/jmo-perspectives/ui/default/filters/style/style_editor.pt 
Wed Dec 21 21:43:45 2005
@@ -10,6 +10,8 @@
       <script type="text/javascript"
               src="/++skin++cpsskins/@@/++resource++prototype.js"></script>
       <script type="text/javascript"
+              src="/++skin++cpsskins/@@/++resource++utils.js"></script>
+      <script type="text/javascript"
               src="/++skin++cpsskins/@@/++resource++json.js"></script>
       <script type="text/javascript"
               src="/++skin++cpsskins/@@/++resource++style_editor.js"></script>

Modified: cpsskins/branches/jmo-perspectives/ui/framework/utils.js
==============================================================================
--- cpsskins/branches/jmo-perspectives/ui/framework/utils.js    (original)
+++ cpsskins/branches/jmo-perspectives/ui/framework/utils.js    Wed Dec 21 
21:43:45 2005
@@ -13,135 +13,133 @@
   return false;
 }
 
+if (!window.Util) var Util = new Object();
 
-/* DOM ELEMENTS */
+Object.extend(Util, {
 
-// Replace the element's html
-function replaceHTML(elem, html) {
-  if (elem.nodeName == "TEXTAREA" || elem.nodeName == "INPUT") {
-    elem.value = html;
-  } else {
-    elem.innerHTML = html;
-  }
-}
-
-// Return the element's selector relative to a context element.
-// e.g. "div.box ul li"
-function getSelectorInContext(elem, context) {
-  var i, node, tag, name, selector;
-  node = elem;
-
-  // If no context is passed, use the document itself.
-  if (!context) context = document;
-
-  var selectors = new Array()
-  while (node) {
-    if (node == context) break;
-    tag = node.tagName;
-    if (!tag) break;
-    tag = tag.toLowerCase();
-    name = node.className;
-    selector = name ? tag + '.' + name : tag;
-
-    // ignore tags that have the "ignore" attribute set
-    if (!node.getAttribute("ignore")) selectors.push(selector);
-    node = node.parentNode;
-  }
-  // reverse the array
-  selectors.reverse();
-  return selectors.join(" ");
-}
-
-function isElement(elem) {
-  return (elem.nodeType == 1 &&
-          elem.getAttribute("id"));
-}
-
-function getElementOrder(elem) {
-  var order=0;
-  var nodes = elem.parentNode.childNodes;
-  for (var i=0;i<nodes.length;i++) {
-    var node = nodes[i];
-    if (node == elem) return order;
-    if (isElement(node)) order += 1;
-  }
-  return order;
-}
-
-function shiftElement(elem, direction) {
-  var container = elem.parentNode;
-  var order = getElementOrder(elem);
-  if (direction == "down") {
-    var new_node = getNextElement(elem);
-    if (!new_node) return null;
-    var old_node = elem;
-    var new_order = order +1;
-  } else {
-    if (order == 0) return null;
-    var new_node = elem;
-    var old_node = getPreviousElement(elem);
-    var new_order = order -1;
-  }
-  container.insertBefore(new_node, old_node);
-  return new_order;
-}
-
-function getNextElement(elem) {
-  var node = elem;
-  while (node) {
-    node = node.nextSibling;
-    if (!node) return null;
-    if (isElement(node)) return node;
-  }
-  return null;
-}
-
-function getPreviousElement(elem) {
-  var node = elem;
-  while (node) {
-    node = node.previousSibling;
-    if (!node) return null;
-    if (isElement(node)) return node;
-  }
-  return null;
-}
-
-function getParentElement(elem) {
-  var node = elem;
-  while (node) {
-    node = node.parentNode;
-    if (!node) return null;
-    if (isElement(node)) return node;
-  }
-  return null;
-}
-
-function getTargetElement(node) {
-  if (isElement(node)) return node;
-  return getParentElement(node);
-}
-
-function isNodeEmpty(node) {
-  var is_empty = true;
-  var nodes = node.childNodes;
-  for (var i=0;i<nodes.length;i++) {
-    if (isElement(nodes[i])) is_empty = false;
-  }
-  return is_empty;
-}
-
-function getChildById(node, id) {  
-  if (node.getAttribute) 
-    if (node.getAttribute("id") == id)
-      return node;
-  var i, c;
-  for (i=0;i<node.childNodes.length;i++) {
-    c = getChildById(node.childNodes[i], id);
-    if (c != null)
-      return c;
-  }
-  return null;
-}
+  replaceHTML: function(element, html) {
+    if (element.nodeName == "TEXTAREA" || element.nodeName == "INPUT") {
+      element.value = html;
+    } else {
+      element.innerHTML = html;
+    }
+  },
+
+  getSelectorInContext: function(element, context) {
+    var i, node, tag, name, selector;
+    node = element;
+
+    // If no context is passed, use the document itself.
+    if (!context) context = document;
+
+    var selectors = new Array()
+    while (node) {
+      if (node == context) break;
+      tag = node.tagName;
+      if (!tag) break;
+      tag = tag.toLowerCase();
+      name = node.className;
+      selector = name ? tag + '.' + name : tag;
+
+      // ignore tags that have the "ignore" attribute set
+      if (!node.getAttribute("ignore")) selectors.push(selector);
+      node = node.parentNode;
+    }
+    // reverse the array
+    selectors.reverse();
+    return selectors.join(" ");
+  },
+
+  isElement: function(node) {
+    return (node.nodeType == 1 && node.getAttribute("id"));
+  },
+
+  getElementOrder: function(element) {
+    var order=0;
+    var nodes = element.parentNode.childNodes;
+    for (var i=0;i<nodes.length;i++) {
+      var node = nodes[i];
+      if (node == element) return order;
+      if (this.isElement(node)) order += 1;
+    }
+    return order;
+  },
+
+  shiftElement: function(element, direction) {
+    var container = element.parentNode;
+    var order = this.getElementOrder(element);
+    if (direction == "down") {
+      var new_node = this.getNextElement(element);
+      if (!new_node) return null;
+      var old_node = element;
+      var new_order = order +1;
+    } else {
+      if (order == 0) return null;
+      var new_node = element;
+      var old_node = this.getPreviousElement(element);
+      var new_order = order -1;
+    }
+    container.insertBefore(new_node, old_node);
+    return new_order;
+  },
+
+  getNextElement: function(element) {
+    var node = element;
+    while (node) {
+      node = node.nextSibling;
+      if (!node) return null;
+      if (this.isElement(node)) return node;
+    }
+    return null;
+  },
+
+  getPreviousElement: function(element) {
+    var node = element;
+    while (node) {
+      node = node.previousSibling;
+      if (!node) return null;
+      if (this.isElement(node)) return node;
+    }
+    return null;
+  },
+
+  getParentElement: function(element) {
+    var node = element;
+    while (node) {
+      node = node.parentNode;
+      if (!node) return null;
+      if (this.isElement(node)) return node;
+    }
+    return null;
+  },
+
+  getTargetElement: function(node) {
+    if (this.isElement(node)) return node;
+    return this.getParentElement(node);
+  },
+
+  isNodeEmpty: function(node) {
+    var is_empty = true;
+    var nodes = node.childNodes;
+    for (var i=0;i<nodes.length;i++) {
+      if (this.isElement(nodes[i])) is_empty = false;
+    }
+    return is_empty;
+  },
+
+  getChildById: function(node, id) {
+    if (node.getAttribute)
+      if (node.getAttribute("id") == id)
+        return node;
+    var i, c;
+    for (i=0;i<node.childNodes.length;i++) {
+      c = this.getChildById(node.childNodes[i], id);
+      if (c != null)
+        return c;
+    }
+    return null;
+  },
+});
 
 function trim(text) {
   return text.replace(/^\s*|\s*$/g,"");
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to