Как добавить слушателя двойного щелчка в мой редактор GEF? - PullRequest
8 голосов
/ 20 августа 2011

Я использую GEF.У меня есть графический редактор с некоторыми "коробками".Теперь я хочу добавить слушателя двойного щелчка для каждого блока (Rectangle).Я пытался добавить слушателя в GraphicalViewer, но он не работал.

Ответы [ 3 ]

17 голосов
/ 21 августа 2011

В GraphicalEditPart «поля», для которого вы хотите добавить слушателя, вы должны переопределить метод performRequest(Request req). Когда каркас идентифицирует двойной щелчок по фигуре детали, он вызывает этот метод с запросом, который имеет req.getType()==RequestConstants.REQ_OPEN. Вы можете взять на себя здесь. Полный код, чтобы проверить, что его работы:

@Override
public void performRequest(Request req) {
    if(req.getType() == RequestConstants.REQ_OPEN) {
        System.out.println("requested double-click."); 
    }
}

Надеюсь, это поможет.

0 голосов
/ 21 октября 2016
viewer.getControl().addListener(SWT.MouseDoubleClick, new Listener() {

        @Override
        public void handleEvent(Event event) {
        //write the double click action
    });
...