[Catalyst] Jason Kohles' tutorial on ExtJs editable data grids and Catalyst

W. Tyler Gee geekout at gmail.com
Thu Apr 16 16:04:24 GMT 2009


SXMgdGhlcmUgYSBqYXZhc2NyaXB0IGVycm9yIHdoZW4geW91IGhpdCBzYXZlIG9yIGlzIGl0IGdl
dHRpbmcgdG8gdGhlCnNlcnZlcj8gV2hlcmUgaXMgeW91ciBhY3R1YWwgcHJvYmxlbT8KCk9uIFRo
dSwgQXByIDE2LCAyMDA5IGF0IDU6MzAgQU0sIGphZ2Rpc2ggZWFzaHdhcgo8amFnZGlzaC5lYXNo
d2FyQGdtYWlsLmNvbT53cm90ZToKCj4gSGkgUGV0ZXIsCj4gVGhhbmtzIGZvciB3cml0aW5nIGlu
LiBJdCBpcyByZWFsbHkgbm90IG15IGNvZGUgYXQgYWxsLiBJIGhhdmUgdGFrZW4gaXQgYWxsCj4g
ZnJvbSB0aGUgdHV0b3JpYWwuIEkgdGhvdWdodCB0aGF0IHBlb3BsZSB3aWxsIGdldCBhIGJldHRl
ciBwZXJzcGVjdGl2ZSBpZiBJCj4gcmVmZXJyZWQgdGhlbSB0byB0aGUgdHV0b3JpYWwuIE5ldmVy
dGhlbGVzcywgSSBhbSBwYXN0aW5nIGNvZGUgZnJvbSB0aGUKPiBhZHZlbnQuanMgZmlsZSBiZWxv
dy4gKCBJIGhhdmUgbWFkZSBhIGZldyBpbmNvbnNlcXVlbnRpYWwgY2hhbmdlcyB0aG91Z2gsCj4g
bGlrZSB0aGUgdmFsdWVzIGluIHRoZSBkcm9wIGRvd24gZXRjLikKPgo+IC8qCj4gICogYWR2ZW50
LmpzCj4gICovCj4KPiBFeHQub25SZWFkeShmdW5jdGlvbigpIHsKPgo+ICB2YXIgY29sX21vZGVs
ID0gbmV3IEV4dC5ncmlkLkNvbHVtbk1vZGVsKFsKPiAgICAgICAgIHsKPiAgICAgICAgICAgICBp
ZDogICAgICAgICAnaWQnLAo+ICAgICAgICAgICAgIGhlYWRlcjogICAgICdJRCcsCj4gICAgICAg
ICAgICAgZGF0YUluZGV4OiAgJ2lkJywKPiAgICAgICAgICAgICB3aWR0aDogICAgICA0MAo+ICAg
ICAgICAgfSwKPiAgICAgICAgIHsKPiAgICAgICAgICAgICBpZDogICAgICAgICAnbmFtZScsCj4g
ICAgICAgICAgICAgaGVhZGVyOiAgICAgJ05hbWUnLAo+ICAgICAgICAgICAgIGRhdGFJbmRleDog
ICduYW1lJywKPiAgICAgICAgIGVkaXRvcjogICAgIG5ldyBFeHQuZm9ybS5UZXh0RmllbGQoewo+
ICAgICAgICAgICAgICAgICBhbGxvd0JsYW5rOiAgICAgZmFsc2UsCj4gICAgIH0pCj4gICAgICAg
ICB9LAo+ICAgICAgICAgewo+ICAgICAgICAgICAgIGlkOiAgICAgICAgICdvY2N1cGF0aW9uJywK
PiAgICAgICAgICAgICBoZWFkZXI6ICAgICAnT2NjdXBhdGlvbicsCj4gICAgICAgICAgICAgZGF0
YUluZGV4OiAgJ29jY3VwYXRpb24nLAo+ICAgICAgICAgICAgIHdpZHRoOiAgICAgIDcwLAo+ICAg
ICAgICAgICAgIGVkaXRvcjogICAgIG5ldyBFeHQuZm9ybS5Db21ib0JveCh7Cj4gICAgICAgICAg
ICAgICAgIHR5cGVBaGVhZDogICAgICB0cnVlLAo+ICAgICAgICAgICAgICAgICB0cmlnZ2VyQWN0
aW9uOiAgJ2FsbCcsCj4gICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogICAgICAnb2NjcG9wdXAn
LAo+ICAgICAgICAgICAgICAgICBsYXp5UmVuZGVyOiAgICAgdHJ1ZSwKPiAgICAgICAgICAgICAg
ICAgbGlzdENsYXNzOiAgICAgICd4LWNvbWJvLWxpc3Qtc21hbGwnCj4gICAgICAgICAgICAgfSkK
PiAgICAgICAgIH0KPiAgICAgXSk7Cj4KPiAgICAgY29sX21vZGVsLmRlZmF1bHRTb3J0YWJsZSA9
IHRydWU7Cj4KPgo+ICAgICB2YXIgUGVvcGxlID0gRXh0LmRhdGEuUmVjb3JkLmNyZWF0ZShbCj4g
ICAgICAgICB7IG5hbWU6ICAgICdpZCcsICAgICAgICB0eXBlOiAnaW50J30sCj4gICAgICAgICB7
IG5hbWU6ICduYW1lJywgICAgICAgIHR5cGU6ICdzdHJpbmcnfSwKPiAgICAgICAgIHsgbmFtZTog
J29jY3VwYXRpb24nLCAgICB0eXBlOiAnc3RyaW5nJ30KPiAgICAgXSk7Cj4KPgo+ICAgICB2YXIg
c3RvcmUgPSBuZXcgRXh0LmRhdGEuSnNvblN0b3JlKHsKPiAgICAgICAgIHVybDogZ3JpZHVybCwK
PiAgICAgICAgIHJvb3Q6ICdwZW9wbGUnLAo+ICAgICAgICAgZmllbGRzOiBQZW9wbGUKPiAgICAg
fSk7Cj4KPiB2YXIgZ3JpZCA9IG5ldyBFeHQuZ3JpZC5FZGl0b3JHcmlkUGFuZWwoewo+ICAgICAg
ICAgc3RvcmU6ICAgICAgICAgICAgICBzdG9yZSwKPiAgICAgICAgIGNtOiAgICAgICAgICAgICAg
ICAgY29sX21vZGVsLAo+ICAgICAgICAgdGl0bGU6ICAgICAgICAgICAgICAnRWRpdCBQZXJzb25z
JywKPiAgICAgICAgIHdpZHRoOiAgICAgICAgICAgICAgNjAwLAo+ICAgICAgICAgaGVpZ2h0OiAg
ICAgICAgICAgICAzMDAsCj4gICAgICAgICBmcmFtZTogICAgICAgICAgICAgIHRydWUsCj4gICAg
ICAgICBhdXRvRXhwYW5kQ29sdW1uOiAgICduYW1lJywKPiAgICAgICAgIHJlbmRlclRvOiAgICAg
ICAgICAgJ2RhdGFncmlkJywKPiAgICAgICAgIHRiYXI6ICAgICAgICAgICAgICAgWwo+ICAgICAg
ICAgICAgIHsKPiAgICAgICAgICAgICAgICAgdGV4dDogICAgICAgICAgICdOZXcgUGVyc29uJywK
PiAgICAgICAgICAgICAgICAgaGFuZGxlcjogICAgICAgIGZ1bmN0aW9uKCkgewo+ICAgICAgICAg
ICAgICAgICAgICAgdmFyIHAgPSBuZXcgUGVvcGxlKHsKPiAgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAgICAgICAgICAgJ1VubmFtZWQgTmV3IFBlcnNvbicsCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgb2NjdXBhdGlvbjogICAgJ1Vua25vd24nLAo+ICAgICAgICAgICAgICAgICAgICAg
fSk7Cj4gICAgICAgICAgICAgICAgICAgICBncmlkLnN0b3BFZGl0aW5nKCk7Cj4gICAgICAgICAg
ICAgICAgICAgICBzdG9yZS5pbnNlcnQoIDAsIHAgKTsKPiAgICAgICAgICAgICAgICAgICAgIGdy
aWQuc3RhcnRFZGl0aW5nKCAwLCAxICk7Cj4gICAgICAgICAgICAgICAgIH0sCj4gICAgICAgICAg
ICAgfSwKPiAgICAgICAgICAgICB7Cj4gICAgICAgICAgICAgICAgIHRleHQ6ICAgICAgICAgICAn
U2F2ZSBDaGFuZ2VzJywKPiAgICAgICAgICAgICAgICAgaGFuZGxlcjogICAgICAgIGZ1bmN0aW9u
KCkgewo+ICAgICAgICAgICAgICAgICAgICAgZ3JpZC5zdG9wRWRpdGluZygpOwo+ICAgICAgICAg
ICAgICAgICAgICAgdmFyIGNoYW5nZXMgPSBuZXcgQXJyYXkoKTsKPiAgICAgICAgICAgICAgICAg
ICAgIHZhciBkaXJ0eSA9IHN0b3JlLmdldE1vZGlmaWVkUmVjb3JkcygpOwo+ICAgICAgICAgICAg
ICAgICAgICAgZm9yICggdmFyIGkgPSAwIDsgaSA8IGRpcnR5Lmxlbmd0aCA7IGkrKyApIHsKPiAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgaWQgPSBkaXJ0eVtpXS5nZXQoICdpZCcgKTsKPiAg
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmllbGRzID0gZGlydHlbaV0uZ2V0Q2hhbmdlcygp
Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcy5pZCA9IGRpcnR5W2ldLmdldCggJ2lk
JyApOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZXMucHVzaCggZmllbGRzICk7Cj4g
ICAgICAgICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygg
Y2hhbmdlcyApOwo+ICAgICAgICAgICAgICAgICAgICAgc3VibWl0Q2hhbmdlcyggY2hhbmdlcyAp
Owo+ICAgICAgICAgICAgICAgICAgICAgc3RvcmUuY29tbWl0Q2hhbmdlcygpOwo+ICAgICAgICAg
ICAgICAgICB9LAo+ICAgICAgICAgICAgIH0sCj4gICAgICAgICAgICAgewo+ICAgICAgICAgICAg
ICAgICB0ZXh0OiAgICAgICAgICAgJ0Rpc2NhcmQgQ2hhbmdlcycsCj4gICAgICAgICAgICAgICAg
IGhhbmRsZXI6ICAgICAgICBmdW5jdGlvbigpIHsKPiAgICAgICAgICAgICAgICAgICAgIGdyaWQu
c3RvcEVkaXRpbmcoKTsKPiAgICAgICAgICAgICAgICAgICAgIHN0b3JlLnJlamVjdENoYW5nZXMo
KTsKPiAgICAgICAgICAgICAgICAgfSwKPiAgICAgICAgICAgICB9Cj4gICAgICAgICBdCj4gICAg
IH0pOwo+Cj4KPiAgICAgc3RvcmUubG9hZCgpOwo+Cj4gZnVuY3Rpb24gc3VibWl0Q2hhbmdlcygg
ZGF0YSApIHsKPiAgICAgICAgIEV4dC5BamF4LnJlcXVlc3Qoewo+ICAgICAgICAgICAgIHVybDog
ICAgICAgIHBvc3R1cmwsCj4gICAgICAgICAgICAgc3VjY2VzczogICAgZnVuY3Rpb24oKSB7IHN0
b3JlLnJlbG9hZCgpIH0sCj4gICAgICAgICAgICAgcGFyYW1zOiAgICAgeyBjaGFuZ2VzOiBFeHQu
dXRpbC5KU09OLmVuY29kZSggZGF0YSApIH0KPiAgICAgICAgIH0pOwo+ICAgICB9Cj4gfSk7Cj4K
PiBncmlkdXJsIGFuZCBwb3N0dXJsIGFyZSBkZWZpbmVkIGluIGluZGV4LnR0MiBwYXN0ZWQgYmVs
b3cuIEl0IGFsc28gY29udGFpbnMKPiBhIGxpbmsgdG8gYWR2ZW50LmpzLgo+Cj4gWyUgTUVUQSB0
aXRsZSA9ICdBZHZlbnQgQUpBWCBHcmlkJyAlXQo+IDxzY3JpcHQgdHlwZSA9ICJ0ZXh0L2phdmFz
Y3JpcHQiPgo+ICAgICB2YXIgcG9zdHVybCA9ICdbJSBDYXRhbHlzdC51cmlfZm9yKCIvcGVvcGxl
X2RhdGFfc3VibWl0IikgJV0nOwo+ICAgICB2YXIgZ3JpZHVybCA9ICdbJSBDYXRhbHlzdC51cmlf
Zm9yKCIvcGVvcGxlX2RhdGEiKSAlXSc7Cj4gPC9zY3JpcHQ+Cj4gWyUganNfbGluayAoc3JjID0g
Jy9zdGF0aWMvYWR2ZW50LmpzJykgJV0KPiA8ZGl2IGlkID0gImRhdGFncmlkIj48L2Rpdj4KPiA8
c2VsZWN0IGlkPSJvY2Nwb3B1cCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgo+IDxvcHRpb24gdmFs
dWU9IlNCSSI+U0JJPC9vcHRpb24+Cj4gPG9wdGlvbiB2YWx1ZT0iSUJTIj5JQlM8L29wdGlvbj4K
PiA8b3B0aW9uIHZhbHVlPSJJQ0lDSSI+SUNJQ0k8L29wdGlvbj4KPiA8b3B0aW9uIHZhbHVlPSJT
RUxGIj5TRUxGPC9vcHRpb24+Cj4gPC9zZWxlY3Q+Cj4KPgo+Cj4KPgo+IE9uIFRodSwgQXByIDE2
LCAyMDA5IGF0IDc6NDEgUE0sIFBldGVyIEthcm1hbiA8cGV0ZXJAcGVrbmV0LmNvbT4gd3JvdGU6
Cj4KPj4gamFnZGlzaCBlYXNod2FyIHdyb3RlIG9uIDA0LzE2LzIwMDkgMDU6NTUgQU06Cj4+ID4g
SGksCj4+ID4KPj4gPiBJIGhhdmUgYmVlbiBhYmxlIHRvIHdvcmsgdGhyb3VnaCBhbGwgb2YgSmFz
b24gS29obGVzJyB0dXRvcmlhbCBleGNlcHQKPj4gdGhlCj4+ID4gcGFydCBhYm91dCBzYXZpbmcg
Y2hhbmdlcyBiYWNrIGluIHRoZSBkYXRhYmFzZS4gIFRoZSAnTmV3IFBlcnNvbicgYW5kCj4+ID4g
J0Rpc2NhcmQgQ2hhbmdlcycgaW4gdGhlIHRvb2wgYmFyIGFyZSB3b3JraW5nLCBidXQgdGhlICdT
YXZlIENoYW5nZXMnIGlzCj4+ID4gbm90LiBJIGhhdmUgY2hlY2tlZCBzZXZlcmFsIHRpbWVzIGZv
ciBhbnkgdHlwaW5nIG1pc3Rha2VzIHRoYXQgSSBtaWdodAo+PiBoYXZlCj4+ID4gY29tbWl0dGVk
LCBidXQgdGhhdCBwYXJ0IG9mIHRoZSBjb2RlIGlzIG5vdCB3b3JraW5nIGZvciBtZS4gIEkgd29u
ZGVyIGlmCj4+IHRoZQo+PiA+IGFyZ3VtZW50ICgnZGF0YScpIGluIHRoZSBzdWJtaXRDaGFuZ2Vz
IGZ1bmN0aW9uIGlzIHRvIGJlIHN1YnN0aXR1dGVkCj4+IHdpdGgKPj4gPiBzb21ldGhpbmcgbW9y
ZSBleHBsaWNpdCBieSB0aGUgcmVhZGVyLiBJIHdpbGwgYmUgZ2xhZCB0byByZWNlaXZlIHNvbWUK
Pj4gaGVscAo+PiA+IGFuZCBndWlkYW5jZS4KPj4gPgo+PiA+IEkgZm9yZ290IHRvIG1lbnRpb24g
aW4gbXkgZWFybGllciBwb3N0IHRoYXQgdGhlIHR1dG9yaWFsIGlzIGF2YWlsYWJsZSBhdAo+PiA+
IGh0dHA6Ly93d3cuY2F0YWx5c3RmcmFtZXdvcmsub3JnL2NhbGVuZGFyLzIwMDcvOS4KPj4KPj4g
VGlwOiB5b3Ugd29uJ3QgZ2V0IGFueSB1c2VmdWwgaGVscCB1bnRpbCB5b3Ugc2hvdyB1cyB5b3Vy
IGNvZGUuCj4+Cj4+Cj4+IC0tCj4+IFBldGVyIEthcm1hbiAgLiAgcGV0ZXJAcGVrbmV0LmNvbSAg
LiAgaHR0cDovL3Bla25ldC5jb20vCj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCj4+IExpc3Q6IENhdGFseXN0QGxpc3RzLnNjc3lzLmNvLnVr
Cj4+IExpc3RpbmZvOiBodHRwOi8vbGlzdHMuc2NzeXMuY28udWsvY2dpLWJpbi9tYWlsbWFuL2xp
c3RpbmZvL2NhdGFseXN0Cj4+IFNlYXJjaGFibGUgYXJjaGl2ZToKPj4gaHR0cDovL3d3dy5tYWls
LWFyY2hpdmUuY29tL2NhdGFseXN0QGxpc3RzLnNjc3lzLmNvLnVrLwo+PiBEZXYgc2l0ZTogaHR0
cDovL2Rldi5jYXRhbHlzdC5wZXJsLm9yZy8KPj4KPgo+Cj4gX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBMaXN0OiBDYXRhbHlzdEBsaXN0cy5zY3N5cy5j
by51awo+IExpc3RpbmZvOiBodHRwOi8vbGlzdHMuc2NzeXMuY28udWsvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL2NhdGFseXN0Cj4gU2VhcmNoYWJsZSBhcmNoaXZlOgo+IGh0dHA6Ly93d3cubWFp
bC1hcmNoaXZlLmNvbS9jYXRhbHlzdEBsaXN0cy5zY3N5cy5jby51ay8KPiBEZXYgc2l0ZTogaHR0
cDovL2Rldi5jYXRhbHlzdC5wZXJsLm9yZy8KPgo+Cgp+VHlsZXIKLS0tLS0tLS0tLS0tLS0gbmV4
dCBwYXJ0IC0tLS0tLS0tLS0tLS0tCkFuIEhUTUwgYXR0YWNobWVudCB3YXMgc2NydWJiZWQuLi4K
VVJMOiBodHRwOi8vbGlzdHMuc2NzeXMuY28udWsvcGlwZXJtYWlsL2NhdGFseXN0L2F0dGFjaG1l
bnRzLzIwMDkwNDE2LzBmMjAzZDIzL2F0dGFjaG1lbnQuaHRtCg==


More information about the Catalyst mailing list