/* Copyright (c) 2006-2007, ePages GmbH
All Rights Reserved.
epages.cartridges.de_epages.presentation.widget.ProductPickerTree
*/
dojo.provide("epages.cartridges.de_epages.product.widget.ProductPickerTree");
dojo.require("epages.widget.Modaldialog");
dojo.require("epages.widget.FormElement");
dojo.require("epages.cartridges.de_epages.presentation.widget.Objectstore");
dojo.require("epages.cartridges.de_epages.presentation.widget.Objecttree");
dojo.require('epages.epages_scripts');
dojo.require('dijit.Dialog');
dojo.declare("epages.cartridges.de_epages.product.widget.ProductPickerTree",
[epages.widget.LocalizedWidget],
{
/**
* public properties
*/
query : '',
widgetsInTemplate : true,
templatePath : dojo.moduleUrl('epages.cartridges.de_epages.product.widget','templates/ProductPickerTree.html'),
translationName : dojo.moduleUrl('epages.cartridges.de_epages.product.widget','templates/translation'),
useAbsolutePath : false,
url : '?',
selectedProduct : undefined,
/*
* private properties
*/
_timestamp : undefined, // make something unique
postMixInProperties: function() {
// summary: create object store if not already present
// override
this._timestamp = (new Date()).getTime();
if(window.objectStore === undefined){
dojo.require("epages.cartridges.de_epages.presentation.widget.Objectstore");
window.objectStore = new epages.cartridges.de_epages.presentation.widget.Objectstore({
jsId: "objectStore",
id: "objectStore",
queryClasses: "Product,Category",
ignoreSubproducts: "1"
});
}
if (this.query == '') {
if(epages.topWindow && epages.topWindow.objectStore && epages.topWindow.objectStore.objectId != null){
this.query = "{id:" + epages.topWindow.objectStore.objectId + "}";
}else{
this.query = "{id:" + epages.vars.CategoriesID + "}";
}
}
this.inherited('postMixInProperties', arguments);
},
postCreate: function() {
// summary: connect to events
// override
this.inherited("postCreate", arguments);
dojo.subscribe(this.tree.id+'/select', this, function(selectedNode,a) {
this.onSelectItem(selectedNode.item,selectedNode,a);
});
},
selectedItem : function(){
// summary: return currently selected item
return this.selectedProduct;
},
onSelectItem: function(/*object*/data,item,a) {
// summary: keep in mind which item is currently selected
if(data.isProduct){
this.selectedProduct = data;
} else {
//selected item is a folder --> no valid product
this.selectedProduct = undefined;
}
dojo.publish(this.id+'/select',[this.selectedProduct]);
}
}
);