GWT:如何在单击时禁用锚定链接事件
我想在锚链接事件单击一次时禁用它。我使用了GWT:如何在单击时禁用锚定链接事件,gwt,Gwt,我想在锚链接事件单击一次时禁用它。我使用了anchor.setenabled(false),但什么也没发生。当我再次单击同一按钮时,事件e为true。当时我想要false public void onCellClick(GridPanel grid, int rowIndex, int colindex,EventObject e) { if(rowIndex==0 && colindex==2){
anchor.setenabled(false)
,但什么也没发生。当我再次单击同一按钮时,事件e
为true
。当时我想要false
public void onCellClick(GridPanel grid, int rowIndex, int colindex,EventObject e)
{
if(rowIndex==0 && colindex==2){
tomcatHandler = "Start";
anchorStart.setEnabled(false);
}else if(rowIndex==0 && colindex==3){
tomcatHandler = "Stop";
****anchorStop.setEnabled(false);
anchorStart.setEnabled(false);
anchorRestart.setEnabled(true);****
}else if(rowIndex==0 &&colindex==4){
tomcatHandler = "Restart";
anchorRestart.setEnabled(false);
}
AdminService.Util.getInstance().tomcat(tomcatHandler,new AsyncCallback<String>() {
@Override
public void onSuccess(String result) {
imageChangeEvent(result);
}
@Override
public void onFailure(Throwable caught) {
}
});}
public void onCellClick(GridPanel grid、int rowIndex、int colindex、EventObject e)
{
如果(行索引==0&&colindex==2){
tomcatHandler=“开始”;
anchorStart.setEnabled(假);
}else if(rowIndex==0&&colindex==3){
tomcatHandler=“停止”;
****anchorStop.setEnabled(假);
anchorStart.setEnabled(假);
anchorRestart.setEnabled(真)****
}else if(rowIndex==0&&colindex==4){
tomcatHandler=“重新启动”;
anchorRestart.setEnabled(假);
}
AdminService.Util.getInstance().tomcat(tomcatHandler,新的AsyncCallback()){
@凌驾
成功时的公共void(字符串结果){
imageChangeEvent(结果);
}
@凌驾
失败时的公共无效(可丢弃){
}
});}
GWT中的锚点始终存在setEnabled()
问题,因为HTML不支持此类属性。一个快速解决方法是创建一个新的小部件,将GWT的锚定子类化,添加以下覆盖:
@Override
public void onBrowserEvent(Event event) {
switch (DOM.eventGetType(event)) {
case Event.ONDBLCLICK:
case Event.ONFOCUS:
case Event.ONCLICK:
if (!isEnabled()) {
return;
}
break;
}
super.onBrowserEvent(event);
}
当链接被双击、聚焦或单击且处于禁用状态时,这将禁用将浏览器事件传递给GWT的锚定
类(概要禁用所有相关处理程序)
它似乎并没有实际禁用锚点,但它保留了使用anchor.setEnabled()设置的状态,因此只需在处理程序中测试它,例如
myAnchor.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent evt) {
// write to filter and then call reload
if (((Anchor) evt.getSource()).isEnabled()) {
//do stuff
}
}
});