GWT: Как отключить событие привязки ссылки при нажатии - PullRequest
2 голосов
/ 12 декабря 2011

Я хочу отключить событие привязки ссылки, когда оно щелкнуло один раз.Я использовал 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) {
                        }
                    });}

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

У якорей в GWT всегда была проблема с setEnabled(), потому что HTML не поддерживает такое свойство. Быстрый обходной путь - создать новый виджет, который подклассов GWT Anchor, добавив следующее переопределение:

@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);
}

Это отключает передачу события браузера в класс Anchor GWT (суммарно отключая все связанные обработчики), когда ссылка дважды щелкается, фокусируется или щелкается и находится в отключенном состоянии.

Источник

0 голосов
/ 01 июля 2015

Кажется, что он фактически не отключает привязку, но он сохраняет статус, который был установлен с помощью 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
            }
        }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...