var self = this;
this.inherited(arguments);
var contentPane = new dijit.layout.ContentPane({
region:'top'
}).placeAt(this);
function addButton(name, action){
var button = new dijit.form.Button({label: name});
contentPane.containerNode.appendChild(button.domNode);
button.onClick = action;
return button;
}
var queryText = contentPane.containerNode.appendChild(document.createElement("span"));
queryText.innerHTML = "Enter query: ";
queryText.id = "queryText";
var queryTextBox = contentPane.containerNode.appendChild(document.createElement("input"));
queryTextBox.type = "text";
queryTextBox.id = "queryTextBox";
addButton("Query",function(){
var query = queryTextBox.value;
self.setQuery(self.stringQueries ? query : dojo.fromJson(query));
});
contentPane.containerNode.appendChild(document.createElement("span")).innerHTML = " ";
var createNewButton = addButton("Create New", dojo.hitch(this, "createNew"));
var deleteButton = addButton("Delete",function(){
var items = grid.selection.getSelected();
for(var i = 0; i < items.length; i++){
self.store.deleteItem(items[i]);
}
});
this.setItemName = function(name){
createNewButton.attr('label',"
 + ")
Create New " + name);
deleteButton.attr('label',"Delete " + name);
};
addButton("Save",function(){
self.store.save({onError:function(error){
alert(error);
}});
//refresh the tree
self.tree.refreshItem();
});
addButton("Revert",function(){
self.store.revert();
});
addButton("Add Column", function(){
var columnName = prompt("Enter column name:","property");
if(columnName){
self.gridLayout.push({
field: columnName,
name: columnName,
formatter: dojo.hitch(self,"_formatCell"),
editable: true
});
self.grid.attr("structure",self.gridLayout);
}
});
var centerCP = new dijit.layout.ContentPane({
region:'center'
}).placeAt(this);
var grid = this.grid = new dojox.grid.DataGrid(
{store: this.store}
);
centerCP.attr("content", grid);
grid.canEdit = function(inCell, inRowIndex){
var value = this._copyAttr(inRowIndex, inCell.field);
return !(value && typeof value == 'object') || value instanceof Date;
}
var trailingCP = new dijit.layout.ContentPane({
region: 'trailing',
splitter: true,
style: "width: 300px"
}).placeAt(this);
var tree = this.tree = new dojox.data.ItemExplorer({
store: this.store}
);
trailingCP.attr("content", tree);
dojo.connect(grid, "onCellClick", function(){
var selected = grid.selection.getSelected()[0];
tree.setItem(selected);
});
this.gridOnFetchComplete = grid._onFetchComplete;
this.setStore(this.store);