Changeset 13008
- Timestamp:
- 03/10/08 15:07:23 (10 months ago)
- Location:
- dojox/trunk/data
- Files:
-
- 2 modified
-
QueryReadStore.js (modified) (4 diffs)
-
tests/stores/QueryReadStore.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dojox/trunk/data/QueryReadStore.js
r13003 r13008 83 83 84 84 _features: {'dojo.data.api.Read':true, 'dojo.data.api.Identity':true}, 85 86 _labelAttr: "label", 85 87 86 88 constructor: function(/* Object */ params){ … … 107 109 108 110 getValues: function(/* item */ item, /* attribute-name-string */ attribute){ 111 this._assertIsItem(item); 109 112 var ret = []; 110 113 if(this.hasAttribute(item, attribute)){ … … 255 258 256 259 getLabel: function(/* item */ item){ 257 // Override it to return whatever the label shall be, see Read-API. 258 return undefined; 260 // summary: 261 // See dojo.data.api.Read.getLabel() 262 if(this._labelAttr && this.isItem(item)){ 263 return this.getValue(item, this._labelAttr); //String 264 } 265 return undefined; //undefined 259 266 }, 260 267 261 268 getLabelAttributes: function(/* item */ item){ 262 return null; 263 }, 269 // summary: 270 // See dojo.data.api.Read.getLabelAttributes() 271 if(this._labelAttr){ 272 return [this._labelAttr]; //array 273 } 274 return null; //null 275 }, 264 276 265 277 _fetchItems: function(request, fetchHandler, errorHandler){ … … 311 323 var xhrHandler = xhrFunc({url:this.url, handleAs:"json-comment-optional", content:serverQuery}); 312 324 xhrHandler.addCallback(dojo.hitch(this, function(data){ 313 data=this._filterResponse(data); 325 data = this._filterResponse(data); 326 if (data.label){ 327 this._labelAttr = data.label; 328 } 314 329 var numRows = data.numRows || -1; 315 330 -
dojox/trunk/data/tests/stores/QueryReadStore.js
r13003 r13008 70 70 // Test for not-existing attributes without defaultValues and invalid items. 71 71 // TODO 72 t.assertEqual([], store, "getValues", [item, "NOT THERE"]); 73 t.assertEqual([], store, "getValues", ["not an item", "NOT THERE"]); 74 72 t.assertEqual([], store.getValues(item, "NOT THERE")); 73 var errThrown = false; 74 try{ 75 //Should throw an exception. 76 var values = store.getValues("not an item", "NOT THERE"); 77 }catch (e){ 78 errThrown = true; 79 } 80 t.assertTrue(errThrown); 75 81 d.callback(true); 76 82 } … … 88 94 var item = items[0]; 89 95 // The good case(s). 90 t.assertEqual([' name', 'label', 'abbreviation'], store.getAttributes(item));96 t.assertEqual(['id', 'name', 'label', 'abbreviation'], store.getAttributes(item)); 91 97 t.assertError(Error, store, "getAttributes", [{}]); 92 98 99 d.callback(true); 100 } 101 store.fetch({query:{q:"Alabama"}, onComplete: onComplete}); 102 return d; //Object 103 }, 104 105 function testReadApi_getLabel(t){ 106 var store = dojox.data.tests.stores.QueryReadStore.getStore(); 107 var d = new doh.Deferred(); 108 function onComplete(items, request){ 109 var item = items[0]; 110 // The good cases. 111 t.assertEqual(["<img src='images/Alabama.jpg'/>Alabama"], store.getLabel(item)); 93 112 d.callback(true); 94 113 }