Как отключить 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);
}
}