define([
|
'dojo/_base/declare',
|
'dojo/_base/lang',
|
'dojo/dom-construct',
|
'dojo/topic',
|
'dojo/store/Memory',
|
'./ConfigForm',
|
'dojo/text!./templates/Tree.html',
|
'dgrid/Tree',
|
// for template
|
'dijit/form/FilteringSelect',
|
'dijit/form/RadioButton'
|
], function (declare, lang, domConstruct, topic, Memory, ConfigForm, template, Tree) {
|
return declare(ConfigForm, {
|
templateString: template,
|
defaultsObject: Tree.prototype,
|
|
postCreate: function () {
|
this.inherited(arguments);
|
|
this.own(
|
topic.subscribe('/store/columns/update', lang.hitch(this, '_updateColumnNames'))
|
);
|
},
|
|
_updateColumnNames: function (columnStore) {
|
var self = this;
|
var data = [];
|
var firstValue;
|
|
columnStore.fetch().forEach(function (column) {
|
if (!firstValue) {
|
firstValue = column.field;
|
}
|
data.push({
|
id: column.field,
|
name: column.field
|
});
|
}).then(function () {
|
self.expandoSelect.set('store', new Memory({ data: data }));
|
// Select the first column by default
|
// (in case the user selects tree without first visiting the options)
|
self.expandoSelect.set('value', firstValue);
|
});
|
},
|
|
_getValueAttr: function () {
|
var returnValue = this.inherited(arguments);
|
|
// The renderExpando property needs to be specified on the column definition
|
// (it's not a grid config property)
|
delete returnValue.renderExpando;
|
|
return returnValue;
|
},
|
|
_getExpandoColumnAttr: function () {
|
return this.expandoSelect.get('value');
|
}
|
});
|
});
|