
import com.google.gwt.core.shared.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.user.client.ui.Button;

/**
 * Bot&oacute;n que se ve como un link. Soporta habilitar/deshabilitar el mismo grisando el "link".
 * 
 * @author Gardella Juan Pablo - gardellajuanpablo@gmail.com
 * @since 0.1.0
 * 
 */
public class ButtonLink extends Button {

  interface ButtonLinkBundle extends ClientBundle {
    ButtonLinkBundle instance = GWT.create(ButtonLinkBundle.class);

    @Source("ButtonLink.css")
    ButtonLinkCss css();
  }

  interface ButtonLinkCss extends CssResource {
    String buttonLink();

    String buttonLinkDisabled();
  }

  public ButtonLink() {
    ButtonLinkBundle.instance.css().ensureInjected();
    setStyleName(ButtonLinkBundle.instance.css().buttonLink());
  }

  public ButtonLink(String text) {
    super(text);
    ButtonLinkBundle.instance.css().ensureInjected();
    setStyleName(ButtonLinkBundle.instance.css().buttonLink());
  }

  @Override
  public void setEnabled(boolean enabled) {
    super.setEnabled(enabled);
    setStyleName(enabled ? ButtonLinkBundle.instance.css().buttonLink() : ButtonLinkBundle.instance
        .css().buttonLinkDisabled());
  }
}
