java - how to reload or refresh a tab's content base on actions in vaadin -
the content of tab formed , displayed when application loaded. later content of tab may changed other actions. want show newer content after each action. , each time when click tab sheet, content should refresh/updated. failed.
//the content of tab "reprintstab" class //in "reprintstab" query data database , print out //later update data in database somewhere else, , want tab shows new content //i want click tab sheet reload "reprinttab" class , print out new content //here did: public tabsheet sheet; //add tab , add content "reprinttab" tab sheet.addtab(new reprintstab()); //add listener sheet.addlistener(new tabsheet.selectedtabchangelistener() { @override public void selectedtabchange(selectedtabchangeevent event) { //i know not work, because reload class. not put content under tab want new reprintstab(); } });
what should do? please me, thanks.
you can use tabsheet.replacecomponent method this:
//field store current component private reprintstab currentcomponent; //during initialization currentcomponent = new reprintstab(); sheet.addtab(currentcomponent); sheet.addlistener(new tabsheet.selectedtabchangelistener() { @override public void selectedtabchange(selectedtabchangeevent event) { reprintstab newcomponent = new reprintstab(); sheet.replacecomponent(currentcomponent, newcomponent); currentcomponent = newcomponent; } });
also, might want reload tab when it's shown:
sheet.addlistener(new tabsheet.selectedtabchangelistener() { @override public void selectedtabchange(selectedtabchangeevent event) { if (event.gettabsheet().getselectedtab() == currentcomponent) { //here goes code } } });
this should work you, suggest cleaner approach: implement reprintstab
container components, create method reload
or buildinterface
method refresh its' state, can call:
currentcomponent.reload();
when need update interface.
also, hope reprintstab
example name, java class names starting lowercase letter ugly.
Comments
Post a Comment