Как перетащить несколько строк в таблице Jface в Java RCP? - PullRequest
0 голосов
/ 02 июля 2018

Здесь 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();

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

1 Ответ

0 голосов
/ 04 июля 2018

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

В обработчике сброса:

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

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

...