Добавление двунаправленной функциональности в SelectionListener

У меня возникли проблемы с моим прослушивателем выбора, в настоящее время я самостоятельно пробовал выбирать текст от ВЕРХА к НИЗУ и от НИЗА к ВЕРХУ (движение мыши), однако эти испытания не будут работать вместе, т.е. одно SelectionListener является двунаправленным...

private void setupSelectionListener() {

    this.contentValues.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent event) {

            StyledText text = (StyledText)event.widget;

            int x = event.x;
            int y = event.y;

            //Mouse Drag Listener here??? - Detects Right

                //FOR TOP TO BOTTOM SELECTION
                text.setSelection(event.x); 

                int beginPosition = event.x; 
                int beginByte = beginPosition / 3;

                int endPosition = event.y; 
                int endByte = endPosition / 3;

                setSelection(beginByte, endByte);

            //Mouse Drag Listener here??? - Detects Left

                //FOR BOTTOM TO TOP SELECTION
                text.setSelection(event.y);

                int beginPosition = event.y;
                int beginByte = beginPosition / 3;

                int endPosition = event.x;
                int endByte = endPosition / 3;

                setSelection(beginByte, endByte);               

        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            // Does nothing...
        }
    });     

Итак, либо мне нужен прослушиватель перетаскивания мыши, как я указал в комментариях, либо условный оператор, сравнивающий event.x и event.y.

Я попытался добавить прослушиватель обнаружения перетаскивания внутри прослушивателя выбора, но это нарушает формат выбора координат события.

Любая помощь будет принята с благодарностью.


person leeleeleeleeleeeeeeeeee    schedule 24.07.2012    source источник


Ответы (1)


Если исходный виджет, в котором произошло событие, является объектом Styled Text, то этот выбор произойдет автоматически без корректного слушателя, что означает, что если вы перетаскиваете его, удерживая мышь, содержимое будет выбрано автоматически.

person Syam    schedule 24.07.2012