DroidIn.net
17 Feb 2012, 1:24 PM
I've been banging my head for 2 days now and I can't make my data to display in the TreePanel using data from my server. I've search and tried all the solutions on forum and I've been through documentation and examples to no avail.
Here's the code:
Model
Ext.define('QuiApp.model.ReportTreeNode', {
extend: 'Ext.data.Model',
idProperty: 'execId',
fields: [
{
name: 'execId'
},
{
name: 'name'
},
{
name: 'parentId'
},
{
name: 'factoryName'
},
{
name: 'execCount'
}
]
});
Store
Ext.define('QuiApp.store.base.ReportTreeStore', {
extend: 'Ext.data.TreeStore',
requires: [
'QuiApp.model.ReportTreeNode'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
storeId: 'ReportTreeStore',
model: 'QuiApp.model.ReportTreeNode',
proxy: {
type: 'ajax',
url: 'http://localhost:8080/qui/reports/tree/viewTree.action',
reader: {
type: 'json',
idProperty: 'id',
messageProperty: 'msg',
root: 'root'
}
}
}, cfg)]);
}
});
Panel:
Ext.define('QuiApp.view.ui.MyPanel1', {
extend: 'Ext.panel.Panel',
id: 'MenuPanel',
width: 150,
layout: {
type: 'accordion'
},
region: 'west',
split: true,
initComponent: function() {
var me = this;
Ext.applyIf(me, {
items: [
{
xtype: 'treepanel',
height: 200,
id: 'reportTree',
itemId: 'reportTree',
width: 200,
autoScroll: true,
collapsed: false,
title: 'Reporting',
store: 'ReportTreeStore',
rootVisible: false,
viewConfig: {
id: 'ReportingTree',
emptyText: 'Quantum',
loadingText: 'Please wait',
rootVisible: false
}
}
]
});
me.callParent(arguments);
}
});
And the JSON I get from server
[
{
"name": "foo",
"id": "foo",
"type": "FACTORY",
"children": [
{
"name": "job",
"id": "job",
"type": "JOB",
"children": null,
"execId": "job",
"leaf": true,
"execCount": 10,
"factoryName": "foo",
"parentId": "foo",
"text": "job",
"cls": "file"
}
],
"execId": "foo",
"leaf": false,
"execCount": 10,
"factoryName": "boo",
"parentId": "boo",
"text": "foo",
"cls": "folder"
}
]
In Designer2-beta Build: 288 I'm able to load data into the store with no problem however I only see empty root folder (non name). And when I run the code I get just empty panel
Here's the code:
Model
Ext.define('QuiApp.model.ReportTreeNode', {
extend: 'Ext.data.Model',
idProperty: 'execId',
fields: [
{
name: 'execId'
},
{
name: 'name'
},
{
name: 'parentId'
},
{
name: 'factoryName'
},
{
name: 'execCount'
}
]
});
Store
Ext.define('QuiApp.store.base.ReportTreeStore', {
extend: 'Ext.data.TreeStore',
requires: [
'QuiApp.model.ReportTreeNode'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
storeId: 'ReportTreeStore',
model: 'QuiApp.model.ReportTreeNode',
proxy: {
type: 'ajax',
url: 'http://localhost:8080/qui/reports/tree/viewTree.action',
reader: {
type: 'json',
idProperty: 'id',
messageProperty: 'msg',
root: 'root'
}
}
}, cfg)]);
}
});
Panel:
Ext.define('QuiApp.view.ui.MyPanel1', {
extend: 'Ext.panel.Panel',
id: 'MenuPanel',
width: 150,
layout: {
type: 'accordion'
},
region: 'west',
split: true,
initComponent: function() {
var me = this;
Ext.applyIf(me, {
items: [
{
xtype: 'treepanel',
height: 200,
id: 'reportTree',
itemId: 'reportTree',
width: 200,
autoScroll: true,
collapsed: false,
title: 'Reporting',
store: 'ReportTreeStore',
rootVisible: false,
viewConfig: {
id: 'ReportingTree',
emptyText: 'Quantum',
loadingText: 'Please wait',
rootVisible: false
}
}
]
});
me.callParent(arguments);
}
});
And the JSON I get from server
[
{
"name": "foo",
"id": "foo",
"type": "FACTORY",
"children": [
{
"name": "job",
"id": "job",
"type": "JOB",
"children": null,
"execId": "job",
"leaf": true,
"execCount": 10,
"factoryName": "foo",
"parentId": "foo",
"text": "job",
"cls": "file"
}
],
"execId": "foo",
"leaf": false,
"execCount": 10,
"factoryName": "boo",
"parentId": "boo",
"text": "foo",
"cls": "folder"
}
]
In Designer2-beta Build: 288 I'm able to load data into the store with no problem however I only see empty root folder (non name). And when I run the code I get just empty panel