[英]how to disable gwt.material.design.client.ui.MaterialLink on specific situation?
I have this problem, I prepare a page with GWT, with the Materialink disabled. 我遇到了这个问题,我准备了一个禁用了Materialink的GWT页面。
my Java view: 我的Java视图:
@UiField
MaterialLink exportLink;
my view.xml: 我的view.xml:
<m:MaterialLink ui:field="exportLink" text="Esporta Report" addStyleNames="btn" target="_blank" float="RIGHT" enabled="false"/>
The button is disabled and the click not work (GOOD). 该按钮被禁用,并且单击不起作用(良好)。
if the user complete the Form, I will enable it. 如果用户填写表格,我将启用它。
exportLink.setHref(updatedUrl());
exportLink.setEnabled(true);
and work perfert. 和工作perfert。
When I try to disable it becouse the user put a wrong value. 当我尝试禁用它时,因为用户输入了错误的值。
exportLink.setHref(null);
exportLink.setEnabled(false);
the button looks ok but is possible to click it. 该按钮看起来不错,但可以单击它。 Any suggest?
有什么建议吗?
I found this solution: 我找到了这个解决方案:
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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.