В моем приложении на базе SWT у меня есть пользовательский виджет, полученный из Canvas, который отображает кучу «элементов». Вся цель этих элементов заключается в том, чтобы пользователь перетянул их из виджета. У меня не было проблем с реализацией DragSource, DragDetectListener и всего такого, чтобы заставить DND работать. Проблема, которую я пытаюсь решить, состоит в том, что я хочу, чтобы перетаскивание было обнаружено намного раньше, то есть после гораздо более короткого расстояния перетаскивания мыши, чем поведение платформы по умолчанию.
Я знаю, что могу переопределить dragDetect () класса Widget. Однако это позволяет мне наложить вето на реализацию суперкласса, а не уведомлять о том, что перетаскивание уже произошло до того, как суперкласс сочтет, что оно произошло.
В принципе, если бы я мог сам генерировать событие перетаскивания, как если бы я мог просто использовать Widget.postEvent (SWT.DragDetect, eventWhichIAllocatedAndFilledOut) (который является частным пакетом), это было бы похоже на мое решение. Я посмотрел на код для обнаружения перетаскивания в Widget, и он, похоже, не предназначен для этого варианта использования. Есть ли какая-то работа, позволяющая мне в любое время инициировать перетаскивание?