java - Smartclient: How to show a canvas on a modal mask? -
i have listgrid displayed on dashboard layout. in few case need show notes messages using sc.say().
but have designed own canvas display such messages , have placed on parent dashboard.
now when need comes display message when action take place on listgrid component. window set modal notes canvas displays masked dashboard layout.
i want display canvas without masking ?
how can achieve show canvas without mask , listgrid showing ?
![enter image description here][1] happening window set ismodal(true) , setmodalmask(true) , know optional required in our project need bring yellow canvas message display normal highlighted , not mask showing now
public class getmessagedialogbox extends canvas { private getmessagedialogbox(string messagetext) { mainlayout = new gethorizontallayout("100%", "40", null, 0, 5, null); btnclose = new getimgbutton(16, 16, "red_square_close.png"); btnclose.setvisible(true); btnclose.setshowtitle(true); btnclose.addclickhandler(new clickhandler() { @override public void onclick(clickevent event) { setanimatetime(1000); animatemove(10 , window.getclientheight()); isvisiblemessagestatus = false; setvisible(false); } }); displaylabel = new getlabel(messagetext,"messagelabeldialogtext"); displaylabel.setbackgroundcolor("yellow"); displaylabel.setheight100(); displaylabel.setwidth100(); displaylabel.setvalign(verticalalignment.center); mainlayout.addmember(new canvas(){{ setwidth("50%"); }}); mainlayout.addmember(displaylabel); mainlayout.addmember(new canvas(){{ setwidth("20%"); }}); mainlayout.addmember(btnclose); setparentelement(staticinfo.maindashboardlayout); setvisible(true); setheight(40); setbackgroundcolor("yellow"); setborder("1px solid black"); setleft(10); settop(window.getclientheight()-40); setshowshadow(true); setshadowoffset(5); setshadowsoftness(5); setanimatetime(100); timer.schedule(5000); addchild(mainlayout); custommask.show(); bringtofront(); show(); } } now message component called in presenter file.
custommask.show(); winloadlist.bringtofront(); winloadlist.show(); the above code used list grid need show unmask when call message component need message component shown unmasked following code 3 browsers gives different o/p.
custommask.show(); getmessagedialogbox.getinstance(messages.loadpresenter_norecordselected()).bringtofront(); getmessagedialogbox.getinstance(messages.loadpresenter_norecordselected()).show();
you have many ways of achieving that.
i think easy 1 trying call bringtofront() on yellow canvas.
this small piece of code work, however, when move window, yellow canvas goes behind :
window window = new window(); window.setismodal(true); window.setwidth(800); window.setheight(500); window.setautocenter(true); window.setshowmodalmask(true); window.show(); final hlayout message = new hlayout(); message.setwidth(400); message.setheight(30); message.addmember(new label("hey you")); message.setbackgroundcolor("yellow"); message.bringtofront(); message.show(); despite of using setmodal(true), own modal mask , so, can handle (maybe there better solution).
code :
public class busymask extends vlayout { public busymask() { rootpanel.get().add(this); hide(); setopacity(50); setbackgroundcolor("#000000"); setpositionandsizes(); this.getparentelement().addresizedhandler( new resizedhandler() { @override public void onresized(resizedevent event) { setpositionandsizes(); } }); } @override public void show() { this.bringtofront(); super.show(); } @override public void hide() { super.hide(); } protected void setpositionandsizes() { setwidth100(); setheight100(); setleft(0); settop(0); } } you use in listgrid show method, when displaying :
busymask.show(); bringtofront(); super.show();
Comments
Post a Comment