<?xml version="1.0" encoding="UTF-8"?>
<d:tdl xmlns="http://www.w3.org/1999/xhtml"
xmlns:d="http://www.backbase.com/2006/tdl">
<d:namespace name="http://www.newtonicaonline.com">
<d:uses element="listGrid" src="./backbase/4_4_0/bindings/www.backbase.com.2006.btl/listGrid/chameleon/listGrid.xml"/>
<d:element name="cpListGrid">
<d:attribute name="width"/>
<d:attribute name="height"/>
<d:attribute name="dataSource"/>
<d:attribute name="readonly"/>
<d:attribute name="rows"/>
<d:property name="grid">
<d:getter><![CDATA[
return this._._grid;
]]>
</d:getter>
<d:setter><![CDATA[
if(this._._grid != null)
this.removeChild(this._._grid);
this.appendChild(value);
this._._grid = value;
]]>
</d:setter>
</d:property>
<d:property name="filtersArea">
<d:getter><![CDATA[
return this._._filtersArea;
]]>
</d:getter>
<d:setter><![CDATA[
if(this._._filtersArea != null)
this.removeChild(this._._filtersArea);
this.appendChild(value);
this._._filtersArea = value;
]]>
</d:setter>
</d:property>
<d:constructor type="text/javascript"><![CDATA[
var id = this.getAttribute('id');
if(id == null || id == "")
throw('id must be assigned to cpListGrid.');
var oBox = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'box');
oBox.setAttribute('id', id + '_filtersArea');
this.setProperty('filtersArea', oBox);
var oGrid = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'listGrid');
var idGrid = id + '_grid';
oGrid.setAttribute('id', idGrid);;
oGrid.setAttribute('width', this.getAttribute('width'));
oGrid.setAttribute('height', this.getAttribute('height'));
oGrid.setAttribute('dataSource', this.getAttribute('dataSource'));
oGrid.setAttribute('readonly', this.getAttribute('readonly'));
oGrid.setAttribute('rows', this.getAttribute('rows'));
this.setProperty('grid', oGrid);
var oPagerBar = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerBar');
oPagerBar.setAttribute('width', 'auto');
var oPager = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pager');
oPager.setAttribute('for', 'id("' + idGrid + '")');
oPager.setAttribute('width', 'auto');
var oPagerButton = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerButton');
oPagerButton.setAttribute('type', 'First');
oPager.appendChild(oPagerButton);
oPagerButton = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerButton');
oPagerButton.setAttribute('type', 'Previous');
oPager.appendChild(oPagerButton);
var oPagerSeparator = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerSeparator');
oPager.appendChild(oPagerSeparator);
var oPagerJumper = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerJumper');
oPager.appendChild(oPagerJumper);
oPagerSeparator = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerSeparator');
oPager.appendChild(oPagerSeparator);
oPagerButton = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerButton');
oPagerButton.setAttribute('type', 'Next');
oPager.appendChild(oPagerButton);
oPagerButton = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'pagerButton');
oPagerButton.setAttribute('type', 'Last');
oPager.appendChild(oPagerButton);
oPagerBar.appendChild(oPager);
this.appendChild(oPagerBar);
]]>
</d:constructor>
<d:method name="addColumn">
<d:argument name="select" type="string" required="true" />
<d:argument name="label" type="string" required="true" />
<d:argument name="width" type="string" required="true" />
<d:argument name="isFiltered" type="boolean" required="true" />
<d:argument name="type" type="string" required="true" />
<d:body type="text/javascript"><![CDATA[
var oCol = bb.document.createElementNS('http://www.backbase.com/2006/btl', 'listGridCol');
oCol.setAttribute('select',select);
oCol.setAttribute('label',label);
var oGrid = this.getProperty('grid');
oGrid.appendChild(oCol);
oCol.setAttribute('width' , width);
var oInput = bb.document.createElementNS('http://www.w3.org/1999/xhtml', 'input');
oInput.setAttribute('type',type);
oInput.setAttribute('style' , 'width:' + width);
var id = this.getAttribute('id');
oInput.setAttribute('id', id + "_" + select);
oInput.setAttribute('select', select);
oInput.setAttribute('isFiltered', isFiltered);
if(!isFiltered)
oInput.setAttribute("disabled", "disabled");
oInput.addEventListener('keyup',
function(event)
{
if(event.keyIdentifier == 'Enter')
{
var inputs = event.viewTarget.parentNode.childNodes;
var stateObject = {};
for(var i = 0; i < inputs.length; i++)
{
var input = bb.getControllerFromView(inputs[i]);
var name = input.getAttribute('select');
var value;
if(input.getAttribute('type') == 'checkbox')
value = input.getProperty('checked');
else
value = input.getProperty('value');
if(value != "")
stateObject[name] = value;
}
oGrid.setProperty('state', {filter:stateObject});
oGrid.refresh();
return true;
}
return false;
},
false);
var oFiltersArea = this.getProperty('filtersArea');
oFiltersArea.appendChild(oInput);
var oMyGrid = this;
oCol.addEventListener('resizeEnd',
function(event)
{
setTimeout(function()
{
oMyGrid.synchFilterWidth();
}, 500);
return true;
},
false);
]]>
</d:body>
</d:method>
<d:method name="synchFilterWidth">
<d:body type="text/javascript"><![CDATA[
oGrid = this.getProperty('grid');
var aColumns = oGrid.getProperty('columns');
var oContent = this.getProperty('filtersArea');
var aInputs = oContent.viewNode.childNodes;
for(var i=0; i < aColumns.length; i++)
{
var oCol = aColumns[i];
var oInput = aInputs[i];
var width = oCol.getAttribute('width');
oInput.setAttribute('style' , 'width:' + width);
}
]]>
</d:body>
</d:method>
<d:template type="application/xhtml+xml">
<div>
<d:content ></d:content>
</div>
</d:template>
</d:element>
</d:namespace>
</d:tdl>