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
            }
        }

    });