[prev in list] [next in list] [prev in thread] [next in thread]
List: kupu-checkins
Subject: [epoz-checkins] r3506 - epoz/branch/plone-drawers/common
From: philikon () codespeak ! net
Date: 2004-03-29 17:21:17
Message-ID: 20040329172117.979215A142 () thoth ! codespeak ! net
[Download RAW message or body]
Author: philikon
Date: Mon Mar 29 19:21:07 2004
New Revision: 3506
Modified:
epoz/branch/plone-drawers/common/kupudrawertool.js
Log:
Cleanup.
Modified: epoz/branch/plone-drawers/common/kupudrawertool.js
==============================================================================
--- epoz/branch/plone-drawers/common/kupudrawertool.js (original)
+++ epoz/branch/plone-drawers/common/kupudrawertool.js Mon Mar 29 19:21:07 2004
@@ -108,6 +108,8 @@
this._loadXML(this.xsluri, wrapped_callback.execute);
};
+ /*** bootstrapping ***/
+
this._libsXslCallback = function(dom) {
/* callback for when the xsl for the libs is loaded
@@ -158,13 +160,16 @@
};
this.deselectActiveCollection = function() {
- var selected = this.xmldata.selectSingleNode('//*[@selected]');
- if (selected) {
- // deselect selected DOM node
- selected.removeAttribute('selected');
- };
+ /* Deselect the currently active collection or library */
+ var selected = this.xmldata.selectSingleNode('//*[@selected]');
+ if (selected) {
+ // deselect selected DOM node
+ selected.removeAttribute('selected');
+ };
};
+ /*** Load a library ***/
+
this.selectLibrary = function(id) {
/* unselect the currently selected lib and select a new one
@@ -173,85 +178,107 @@
*/
// remove selection in the DOM
this.deselectActiveCollection();
- // as well as visual selection in CSS
- var divs = this.document.getElementsByTagName('div');
- for (var i=0; i<divs.length; i++ ) {
- if (divs[i].className == 'selected') {
- divs[i].className = 'epd-libsource';
- };
- };
+ // as well as visual selection in CSS
+ var divs = this.document.getElementsByTagName('div');
+ for (var i=0; i<divs.length; i++ ) {
+ if (divs[i].className == 'selected') {
+ divs[i].className = 'epd-libsource';
+ };
+ };
var libnode_path = '/libraries/library[@id="' + id + '"]';
var libnode = this.xmldata.selectSingleNode(libnode_path);
libnode.setAttribute('selected', '1');
- var items_xpath = "items";
- var items_node = libnode.selectSingleNode(items_xpath);
- if (items_node) {
+ var items_xpath = "items";
+ var items_node = libnode.selectSingleNode(items_xpath);
+ if (items_node) {
// The library has already been loaded before or was
// already provided with an items list. No need to do
// anything except for displaying the contents in the
// middle pane.
- this.displayMiddlePane();
- } else {
+ this.displayMiddlePane();
+ } else {
// We have to load the library from XML first.
var uri_node = libnode.selectSingleNode('src/text()');
var src_uri = uri_node.nodeValue;
- src_uri = src_uri.strip(); // needs kupuhelpers.js
+ src_uri = src_uri.strip(); // needs kupuhelpers.js
// Now load the library into the items pane. Since we have
// to load the XML, do this via a call back
- var wrapped_callback = new ContextFixer(this._libraryContentCallback, this);
- this._loadXML(src_uri, wrapped_callback.execute, null);
- };
+ var wrapped_callback = new ContextFixer(this._libraryContentCallback, this);
+ this._loadXML(src_uri, wrapped_callback.execute, null);
+ };
// instead of running the full transformations again we get a
// reference to the element and set the classname...
var newseldiv = this.document.getElementById(id);
newseldiv.className = 'selected';
};
+ this._libraryContentCallback = function(dom, src_uri) {
+ /* callback for when a library's contents (item list) is loaded
+
+ XXX with slight modifications to the below xpath, this can
+ also be as the handler for reloading a standard collection.
+ */
+ var libnode = this.xmldata.selectSingleNode('//*[@selected]');
+ var itemsnode = libnode.selectSingleNode("items");
+ var newitemsnode = dom.selectSingleNode("//items");
+ newitemsnode = this.xmldata.importNode(newitemsnode, true);
+ if (!itemsnode) {
+ // We're loading this for the first time
+ libnode.appendChild(newitemsnode);
+ } else {
+ // User has clicked reload
+ libnode.replaceChild(newitemsnode, itemsnode);
+ };
+ this.displayMiddlePane();
+ };
+
+ /*** Load a collection ***/
+
this.selectCollection = function(id) {
this.deselectActiveCollection();
- var leafnode_path = "//collection[@id='" + id + "']";
- var leafnode = this.xmldata.selectSingleNode(leafnode_path);
+ var leafnode_path = "//collection[@id='" + id + "']";
+ var leafnode = this.xmldata.selectSingleNode(leafnode_path);
- // Case 1: We've already loaded the data, so we just need to
- // refer to the data by id.
- var loadedInNode = leafnode.getAttribute('loadedInNode');
- if (loadedInNode) {
+ // Case 1: We've already loaded the data, so we just need to
+ // refer to the data by id.
+ var loadedInNode = leafnode.getAttribute('loadedInNode');
+ if (loadedInNode) {
var collnode_path = "/libraries/collection[@id='" + loadedInNode + "']";
- var collnode = this.xmldata.selectSingleNode(collnode_path);
- if (collnode) {
- collnode.setAttribute('selected', '1');
- this.displayMiddlePane();
- return;
- };
- };
-
- // Case 2: We've already loaded the data, but there hasn't
- // been a reference made yet. So, make one :)
- uri = leafnode.selectSingleNode('uri/text()');
- uri = (new String(uri)).strip(); // needs kupuhelpers.js
- var collnode_path = "/libraries/collection/uri[text()='" + uri + "']/..";
- var collnode = this.xmldata.selectSingleNode(collnode_path);
- if (collnode) {
- alert("already loaded. attaching loadedInNode"); //XXX
- id = collnode.getAttribute('id');
- leafnode.setAttribute('loadedInNode', id);
- collnode.setAttribute('selected', '1');
- this.displayMiddlePane();
- return;
- };
-
- // Case 3: We've not loaded the data yet, so we need to load it
- // this is just so we can find the leafnode much easier in the
- // callback.
- leafnode.setAttribute('selected', '1');
- var uri_node = leafnode.selectSingleNode('src/text()');
- var src_uri = uri_node.nodeValue;
- src_uri = src_uri.strip(); // needs kupuhelpers.js
- var wrapped_callback = new ContextFixer(this._collectionContentCallback, this);
- this._loadXML(src_uri, wrapped_callback.execute, null);
+ var collnode = this.xmldata.selectSingleNode(collnode_path);
+ if (collnode) {
+ collnode.setAttribute('selected', '1');
+ this.displayMiddlePane();
+ return;
+ };
+ };
+
+ // Case 2: We've already loaded the data, but there hasn't
+ // been a reference made yet. So, make one :)
+ uri = leafnode.selectSingleNode('uri/text()');
+ uri = (new String(uri)).strip(); // needs kupuhelpers.js
+ var collnode_path = "/libraries/collection/uri[text()='" + uri + "']/..";
+ var collnode = this.xmldata.selectSingleNode(collnode_path);
+ if (collnode) {
+ alert("already loaded. attaching loadedInNode"); //XXX
+ id = collnode.getAttribute('id');
+ leafnode.setAttribute('loadedInNode', id);
+ collnode.setAttribute('selected', '1');
+ this.displayMiddlePane();
+ return;
+ };
+
+ // Case 3: We've not loaded the data yet, so we need to load it
+ // this is just so we can find the leafnode much easier in the
+ // callback.
+ leafnode.setAttribute('selected', '1');
+ var uri_node = leafnode.selectSingleNode('src/text()');
+ var src_uri = uri_node.nodeValue;
+ src_uri = src_uri.strip(); // needs kupuhelpers.js
+ var wrapped_callback = new ContextFixer(this._collectionContentCallback, this);
+ this._loadXML(src_uri, wrapped_callback.execute, null);
};
this._collectionContentCallback = function(dom, src_uri) {
@@ -260,45 +287,25 @@
// use a different callback for that
// (--> _libraryContentCallback).
- // We need to give the newly retrieved data a unique ID, we
- // just use the time.
- date = new Date();
- time = date.getTime();
+ // We need to give the newly retrieved data a unique ID, we
+ // just use the time.
+ date = new Date();
+ time = date.getTime();
- // attach 'loadedInNode' attribute to leaf node so Case 1
- // applies next time.
+ // attach 'loadedInNode' attribute to leaf node so Case 1
+ // applies next time.
var leafnode = this.xmldata.selectSingleNode('//*[@selected]');
- leafnode.setAttribute('loadedInNode', time);
- this.deselectActiveCollection()
+ leafnode.setAttribute('loadedInNode', time);
+ this.deselectActiveCollection()
var collnode = dom.selectSingleNode('/collection');
- collnode.setAttribute('id', time);
- collnode.setAttribute('selected', '1');
+ collnode.setAttribute('id', time);
+ collnode.setAttribute('selected', '1');
- var libraries = this.xmldata.selectSingleNode('/libraries');
- collnode = this.xmldata.importNode(collnode, true);
- libraries.appendChild(collnode);
- this.displayMiddlePane();
- };
-
- this._libraryContentCallback = function(dom, src_uri) {
- /* callback for when a library's contents (item list) is loaded
-
- XXX with slight modifications to the below xpath, this can
- also be as the handler for reloading a standard collection.
- */
- var libnode = this.xmldata.selectSingleNode('//*[@selected]');
- var itemsnode = libnode.selectSingleNode("items");
- var newitemsnode = dom.selectSingleNode("//items");
- newitemsnode = this.xmldata.importNode(newitemsnode, true);
- if (!itemsnode) {
- // We're loading this for the first time
- libnode.appendChild(newitemsnode);
- } else {
- // User has clicked reload
- libnode.replaceChild(newitemsnode, itemsnode);
- };
- this.displayMiddlePane();
+ var libraries = this.xmldata.selectSingleNode('/libraries');
+ collnode = this.xmldata.importNode(collnode, true);
+ libraries.appendChild(collnode);
+ this.displayMiddlePane();
};
this.displayMiddlePane = function() {
@@ -312,6 +319,8 @@
this._replaceNodeContents(this.document, drawerdiv, newdrawerdiv);
};
+ /*** Selecting a resource ***/
+
this.selectItem = function(id) {
/* select an item in the item pane, show the item's metadata
@@ -358,7 +367,7 @@
throw "Not yet implemented";
};
- /* auxiliary methods */
+ /*** Auxiliary methods ***/
this._transformXml = function() {
/* transform this.xmldata to HTML using this.xsl and return it */
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic