変更できない Java Web サービスがあります。次のようなxmlを生成します。
<query>
<entity TYPE="Location">
<value TYPE="Id"/>
<value TYPE="Class"/>
<value TYPE="Name"/>
</entity>
<entity TYPE="Activity">
<value TYPE="Id"/>
<value TYPE="Date"/>
<value TYPE="Duration"/>
</entity>
</query>
xml をツリーストアに入れる必要があります。エンティティはフォルダーになり、値はリーフになります。私は関係を持つ2つのモデルを記述しようとしました:
Ext.define( 'modelEntity' , {
extend : 'Ext.data.Model' ,
proxy: {
type: 'ajax',
url: 'query.xml', //just for tests
reader: { type: 'xml' , root: 'query' , record: 'entity' } ,
},
fields: [
{ name: 'leaf' , type: 'boolean', defaultValue: true} ,
{ name: 'text' , type: 'string', mapping: '@TYPE'}
],
hasMany: { model: "modelValue", name: "value", }
});
Ext.define( 'modelValue' , {
extend : 'Ext.data.Model' ,
fields: [
{ name: 'leaf' , type: 'boolean', defaultValue: true} ,
{ name: 'text' , type: 'string', mapping: '@TYPE'}
],
belongsTo: "modelEntity"
});
1 つの treestore と treepanel を使用:
Ext.define('storeQuery' , {
extend: 'Ext.data.TreeStore',
model: 'modelEntity',
root: {
expanded: true,
leaf: false,
children: []
},
autoLoad: false
});
Ext.create('Ext.tree.Panel', {
store: Ext.create('storeQuery'),
rootVisible: false
......
});
明らかに機能しません。エンティティのみが表示され、その子ノードは表示されません。お願い助けて !=)