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

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -