Как перетащить несколько строк в таблицу jface в java RCP?

Здесь setIdList - это список идентификаторов студентов. Я хочу добавить эти идентификаторы в таблицу. Идентификаторы устанавливаются в методе dragSetData (). Я могу получить доступ к списку идентификаторов, перейдя в таблицу. Но это добавление последней таблицы. Я хочу, чтобы он добавил этот список между любой строкой, выбранной указателем мыши. Перетащите код ...

private void addDragSupport() 
{
    int operations = DND.DROP_COPY | DND.DROP_MOVE;
    Transfer[] transferTypes = new Transfer[] { TextTransfer.getInstance() };
    viewer.addDragSupport(operations, transferTypes, new DragSourceListener() 
    {

        @Override
        public void dragStart(DragSourceEvent event) {
            event.doit = false;
            if (null != myVariable) {
                if (myVariable instanceof StudentDetails) {
                    event.doit = true;
                }
            }

        }

        @Override
        public void dragSetData(DragSourceEvent event) {
            event.data = setIdList;
        }

        @Override
        public void dragFinished(DragSourceEvent event) {

        }
    });
}

Я пробовал ниже в коде падения

IStructuredSelection structuredSelection = this.getStructuredSelection();
List<StudentDetails> studentDetailList = structuredSelection.toList();

Но он дает мне выбранную строку. Я хочу, чтобы указатель был выбран мышью.

Покажите нам свой код.

greg-449 03.07.2018 13:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
122
1

Ответы 1

Учитывая, что вы используете просмотрщик таблиц.

В обработчике падения:

1) Получите объект модели из TableViewer: tableViewer.getInput()

2) В объекте dropTarget найдите место, куда вы хотите добавить перетащенный объект. Затем вставьте новый объект в модель в этом месте и обновите tableviewer.

Другие вопросы по теме