eclipse - How to handle StoreEvent in editable grid ?? GXT -
i have created editable grid 3 columns out of 5 editable. need retrieve number entered in these editable cells , add them display in other cells of same grid. ive added storelistener liststore contains preloaded grid data. , overriden storeupdate(storeevent se) method. im not getting how retrieve updated data using update event.... pls me guys....... code this
package org.openxdata.analyzer.client; import java.util.arraylist; import com.extjs.gxt.ui.client.event.componentevent; import com.extjs.gxt.ui.client.event.events; import com.extjs.gxt.ui.client.event.gridevent; import com.extjs.gxt.ui.client.event.listener; import com.extjs.gxt.ui.client.widget.grid.columnconfig; import com.google.gwt.user.client.element; import com.extjs.gxt.ui.client.widget.grid.columnmodel; import com.extjs.gxt.ui.client.style.horizontalalignment; import java.util.list; import com.extjs.gxt.ui.client.store.liststore; import com.extjs.gxt.ui.client.store.storeevent; import com.extjs.gxt.ui.client.store.storelistener; import com.extjs.gxt.ui.client.widget.window; import com.extjs.gxt.ui.client.widget.button.button; import com.extjs.gxt.ui.client.widget.form.textfield; import com.extjs.gxt.ui.client.widget.grid.celleditor; import com.extjs.gxt.ui.client.widget.grid.editorgrid; import com.extjs.gxt.ui.client.widget.layout.fitlayout; import com.extjs.gxt.ui.client.widget.layout.formdata; import com.extjs.gxt.ui.client.data.basemodel; import com.extjs.gxt.ui.client.event.buttonevent; import com.extjs.gxt.ui.client.event.selectionlistener; import com.extjs.gxt.ui.client.widget.viewport; import com.extjs.gxt.ui.client.widget.form.numberfield; import com.extjs.gxt.ui.client.data.modeldata; public class grid1 extends viewport { @override protected void onrender(element parent, int index) { super.onrender(parent, index); setstyleattribute("margin", "10px"); final window w = new window(); w.setheading("grids"); w.setsize(600,250); w.setmodal(true); //w.setlayout(new rowlayout(orientation.vertical)); w.setlayout(new fitlayout()); w.setresizable(false); formdata formdata = new formdata("98%"); list<columnconfig> col = new arraylist<columnconfig>(); columnconfig column = new columnconfig(); column.setid("disease"); column.setwidth(150); textfield<string> text = new textfield<string>(); text.setallowblank(false); text.setautovalidate(true); //column.seteditor(new celleditor(text)); col.add(column); column = new columnconfig(); column.setid("exposure"); column.setwidth(120); textfield<string> text1 = new textfield<string>(); text1.setallowblank(false); text1.setautovalidate(true); //column.seteditor(new celleditor(text1)); col.add(column); column = new columnconfig(); column.setid("plus"); column.setheader("exposure"); column.setwidth(80); final numberfield text2 = new numberfield(); text2.setallowblank(false); text2.setautovalidate(true); column.seteditor(new celleditor(text2)); col.add(column); column = new columnconfig(); column.setid("minus"); column.setheader("exposure"); column.setwidth(80); final numberfield text3 = new numberfield(); text3.setallowblank(false); text3.setautovalidate(true); column.seteditor(new celleditor(text3)); col.add(column); column = new columnconfig(); column.setid("total"); column.setheader("totals"); column.setwidth(80); final numberfield text4 = new numberfield(); text4.setallowblank(false); text4.setautovalidate(true); column.seteditor(new celleditor(text4)); column.setalignment(horizontalalignment.right); col.add(column); //columnmodel cm = new columnmodel(col); liststore<grid2> employeelist = new liststore<grid2>(); employeelist.add(cool.getgrid()); employeelist.addstorelistener(new storelistener<grid2>() { @override public void storeupdate(storeevent<grid2> se) { //dostoreupdate(se); } }); columnmodel cm = new columnmodel(col); final editorgrid<grid2> grid = new editorgrid<grid2>(employeelist, cm); //grid.setstyleattribute("bordertop", "none"); //grid.setautoexpandcolumn("name"); grid.setborders(true); grid.setstriperows(true); /* grid.addlistener(events.onchange, new listener<componentevent>() { public void handleevent(componentevent ce) { } }); */ w.add(grid); w.show(); } } class grid2 extends basemodel { private static final long serialversionuid = 1l; public grid2(){ } public grid2 ( string dis, string exp, integer x,integer y) { set("disease", dis); set("exposure", exp); set("plus", x); set("minus", y); } public grid2 (string dis, string exp, integer x, integer y, double v) { // this(dis, exp, x,y,v); set("disease", dis); set("exposure", exp); set("plus", x); set("minus", y); set("total", v); } public grid2(string a,string b,string c,string d,string t){ set("disease",a); set("exposure",b); set("plus",c); set("minus",d); set("total",t); } public integer getplus() { return (integer)get("plus"); } public integer getminus() { return (integer)get("minus"); } public class testdata { public list<grid2> getdata() { list<grid2> lt= new arraylist<grid2>(); lt.add(new grid2("christina blake","information technology",1,2,1.23)); lt.add(new grid2("heriberto rush","information technology",3,4,1.334)); return lt; } } } class cool { public static list<grid2> getgrid() { list<grid2> data = new arraylist<grid2>(); //data.add(new grid(" "," ","exposure"," ","totals")); data.add(new grid2(" "," ","(+)","(-)"," ")); data.add(new grid2("'disease'","(+)",0,0,0.00)); data.add(new grid2(" ","(-)",0,0,0.00)); data.add(new grid2("totals"," ",0,0,0.00)); return data; } }
i make of changes in code check out code you.
package org.openxdata.analyzer.client; import java.util.arraylist; import java.util.list; import com.extjs.gxt.ui.client.style.horizontalalignment; import com.extjs.gxt.ui.client.event.baseevent; import com.extjs.gxt.ui.client.event.events; import com.extjs.gxt.ui.client.event.gridevent; import com.extjs.gxt.ui.client.event.listener; import com.extjs.gxt.ui.client.store.liststore; import com.extjs.gxt.ui.client.store.storeevent; import com.extjs.gxt.ui.client.store.storelistener; import com.extjs.gxt.ui.client.widget.viewport; import com.extjs.gxt.ui.client.widget.window; import com.extjs.gxt.ui.client.widget.form.numberfield; import com.extjs.gxt.ui.client.widget.form.textfield; import com.extjs.gxt.ui.client.widget.grid.celleditor; import com.extjs.gxt.ui.client.widget.grid.columnconfig; import com.extjs.gxt.ui.client.widget.grid.columnmodel; import com.extjs.gxt.ui.client.widget.grid.editorgrid; import com.extjs.gxt.ui.client.widget.layout.fitlayout; import com.extjs.gxt.ui.client.widget.layout.formdata; import com.google.gwt.user.client.element; public class grid1 extends viewport { @override protected void onrender(element parent, int index) { super.onrender(parent, index); setstyleattribute("margin", "10px"); final window w = new window(); w.setheading("grids"); w.setsize(600,250); w.setmodal(true); //w.setlayout(new rowlayout(orientation.vertical)); w.setlayout(new fitlayout()); w.setresizable(false); formdata formdata = new formdata("98%"); list<columnconfig> col = new arraylist<columnconfig>(); columnconfig column = new columnconfig(); column.setid("disease"); column.setwidth(150); textfield<string> text = new textfield<string>(); text.setallowblank(false); text.setautovalidate(true); //column.seteditor(new celleditor(text)); col.add(column); column = new columnconfig(); column.setid("exposure"); column.setwidth(120); textfield<string> text1 = new textfield<string>(); text1.setallowblank(false); text1.setautovalidate(true); //column.seteditor(new celleditor(text1)); col.add(column); column = new columnconfig(); column.setid("plus"); column.setheader("exposure"); column.setwidth(80); final numberfield text2 = new numberfield(); text2.setallowblank(false); text2.setautovalidate(true); column.seteditor(new celleditor(text2)); col.add(column); column = new columnconfig(); column.setid("minus"); column.setheader("exposure"); column.setwidth(80); final numberfield text3 = new numberfield(); text3.setallowblank(false); text3.setautovalidate(true); column.seteditor(new celleditor(text3)); col.add(column); column = new columnconfig(); column.setid("total"); column.setheader("totals"); column.setwidth(80); final numberfield text4 = new numberfield(); text4.setallowblank(false); text4.setautovalidate(true); column.seteditor(new celleditor(text4)); column.setalignment(horizontalalignment.right); col.add(column); //columnmodel cm = new columnmodel(col); liststore<grid2> employeelist = new liststore<grid2>(); employeelist.add(cool.getgrid()); employeelist.addstorelistener(new storelistener<grid2>() { @override public void storeupdate(storeevent<grid2> se) { //dostoreupdate(se); } }); columnmodel cm = new columnmodel(col); final editorgrid<grid2> grid = new editorgrid<grid2>(employeelist, cm); //grid.setstyleattribute("bordertop", "none"); //grid.setautoexpandcolumn("name"); grid.setborders(true); grid.setstriperows(true); /* grid.addlistener(events.onchange, new listener<componentevent>() { public void handleevent(componentevent ce) { } }); */ w.add(grid); w.show(); grid.addlistener(events.afteredit, new listener<baseevent>() { @override public void handleevent(baseevent be) { gridevent ge = (gridevent) be; double plustotal = 0.0; double minustotal = 0.0; for(int i=1 ; < grid.getstore().getcount();i++ ){ if(grid.getstore().getat(i).get("disease").tostring().equals("totals")){ grid.getstore().getat(i).set("plus",plustotal); grid.getstore().getat(i).set("minus",minustotal); grid.getstore().getat(i).calculatetotal(); grid.getstore().commitchanges(); }else{ plustotal = plustotal + (grid.getstore().getat(i).getplus()); minustotal = minustotal + (grid.getstore().getat(i).getminus()); } } grid.getselectionmodel().getselecteditem().calculatetotal(); grid.getstore().commitchanges(); } }); } } package org.openxdata.analyzer.client; import java.util.arraylist; import java.util.list; import com.extjs.gxt.ui.client.data.basemodel; class grid2 extends basemodel { private static final long serialversionuid = 1l; public grid2(){ } public grid2 ( string dis, string exp, integer x,integer y) { set("disease", dis); set("exposure", exp); set("plus", x); set("minus", y); } public grid2 (string dis, string exp, integer x, integer y, double v) { // this(dis, exp, x,y,v); set("disease", dis); set("exposure", exp); set("plus", x); set("minus", y); set("total", v); } public grid2(string a,string b,string c,string d,string t){ set("disease",a); set("exposure",b); set("plus",c); set("minus",d); set("total",t); } public double getplus() { return double.valueof(get("plus").tostring()); } public double getminus() { return double.valueof(get("minus").tostring()); } public void calculatetotal(){ set("total",(getplus() - getminus())); } public class testdata { public list<grid2> getdata() { list<grid2> lt= new arraylist<grid2>(); lt.add(new grid2("christina blake","information technology",1,2,1.23)); lt.add(new grid2("heriberto rush","information technology",3,4,1.334)); return lt; } } } package org.openxdata.analyzer.client; import java.util.arraylist; import java.util.list; public class cool { public static list<grid2> getgrid() { list<grid2> data = new arraylist<grid2>(); //data.add(new grid(" "," ","exposure"," ","totals")); data.add(new grid2(" "," ","(+)","(-)"," ")); data.add(new grid2("'disease'","(+)",0,0,0.00)); data.add(new grid2(" ","(-)",0,0,0.00)); data.add(new grid2("totals"," ",0,0,0.00)); return data; } }
Comments
Post a Comment