Как отключить gwt.material.design.client.ui.MaterialLink в конкретной ситуации?

У меня есть эта проблема, я готовлю страницу с GWT, с отключенным Materialink.

мой вид Java:

 @UiField
 MaterialLink exportLink;

мой view.xml:

 <m:MaterialLink ui:field="exportLink" text="Esporta Report" addStyleNames="btn" target="_blank"  float="RIGHT" enabled="false"/>

Кнопка отключена и щелчок не работает (ХОРОШО).

если пользователь заполнит форму, я ее включу.

   exportLink.setHref(updatedUrl());
    exportLink.setEnabled(true);

и работа совершенная.

Когда я пытаюсь отключить его, пользователь вводит неверное значение.

exportLink.setHref(null);
            exportLink.setEnabled(false);

кнопка выглядит нормально, но ее можно нажать. Любое предложение?

1 ответ

Я нашел это решение:

public class MyMaterialLink extends MaterialLink {

   @Override
    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        if(!enabled){
            if (getElement().getAttribute("href") != null) {//per prevenire doppi disabled che cancellano l'href-disabled
                getElement().setAttribute("data-href-disabled", getElement().getAttribute("href"));
                getElement().removeAttribute("href");
            }
        }else {
            getElement().setAttribute("href",getElement().getAttribute("data-href-disabled"));
            getElement().removeAttribute("data-href-disabled");
        }

    }

    @Override
    public void setHref(String href) {

        if(!isEnabled()){
            getElement().setAttribute("data-href-disabled",href);
        }else {
            super.setHref(href);
        }
    }
Другие вопросы по тегам