gwt - Disable ButtonCell in a celltable -


in celltable, 1 column has buttoncells. need disable theses buttoncells clicking on button located outside celltable.

you create own button cell class. example:

import com.google.gwt.cell.client.abstractsafehtmlcell; import com.google.gwt.cell.client.cell; import com.google.gwt.cell.client.valueupdater; import com.google.gwt.dom.client.element; import com.google.gwt.dom.client.eventtarget; import com.google.gwt.dom.client.nativeevent; import com.google.gwt.safehtml.shared.safehtml; import com.google.gwt.safehtml.shared.safehtmlbuilder; import com.google.gwt.text.shared.safehtmlrenderer; import com.google.gwt.text.shared.simplesafehtmlrenderer;  /**  * {@link cell} used render button.  */ public class styledbuttoncell extends abstractsafehtmlcell<string> {  private string disabledstring = "";  private boolean disabled = false;  /**  * construct new buttoncell use {@link simplesafehtmlrenderer}.  */ public styledbuttoncell() {     this(simplesafehtmlrenderer.getinstance()); }  /**  * construct new buttoncell use given {@link safehtmlrenderer}.  *   * @param renderer {@link safehtmlrenderer safehtmlrenderer<string>} instance  */ public styledbuttoncell(safehtmlrenderer<string> renderer) {     super(renderer, "click", "keydown"); }  @override public void onbrowserevent(context context, element parent, string value,         nativeevent event, valueupdater<string> valueupdater) {     super.onbrowserevent(context, parent, value, event, valueupdater);     if ("click".equals(event.gettype())) {         eventtarget eventtarget = event.geteventtarget();         if (!element.is(eventtarget)) {             return;         }         if (parent.getfirstchildelement().isorhaschild(element.as(eventtarget))) {             // ignore clicks occur outside of main element.             onenterkeydown(context, parent, value, event, valueupdater);         }     } }  @override public void render(context context, safehtml data, safehtmlbuilder sb) {     sb.appendhtmlconstant("<button type=\"button\" tabindex=\"-1\"" + disabledstring + ">");     if (data != null) {         sb.append(data);     }     sb.appendhtmlconstant("</button>"); }  @override protected void onenterkeydown(context context, element parent, string value,         nativeevent event, valueupdater<string> valueupdater) {     if (valueupdater != null) {         valueupdater.update(value);     } }  public boolean isdisabled() {     return disabled; }  public void setdisabled(boolean disabled) {     this.disabled = disabled;     if (disabled) {          disabledstring = "disabled=\"disabled\"";     } else {         disabledstring = "";     } } } 

then use cell table:

final styledbuttoncell buttoncell = new styledbuttoncell();          buttoncolumn = new column<someitem, string>(buttoncell) {            public string getvalue(someitem object) {             // value display in button.             return "go";           }         }; 

to disable button, call:

buttoncell.setdisabled(true); table.redraw(); 

Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -