When I drag an item that contains html-text then users see html string.
I use RAP 2.3
I use code based on the public Eclipse RAP examples. And I can not find the way to change feedback effect when user start a drag action.
Tree tree = new Tree( parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION );
TreeViewer result = new TreeViewer( tree );
result.setContentProvider( new TreeContentProvider() );
TreeLabelProvider labelProvider = new TreeLabelProvider( parent.getDisplay(), MODERN_STYLE );
result.setLabelProvider( labelProvider );
result.setInput( createModel() );
result.expandAll();
Transfer[] types = new Transfer[] { TreeObjectTransfer.getInstance() };
TreeDragListener dragListener = new TreeDragListener( viewer );
viewer.addDragSupport( DND.DROP_MOVE, types, dragListener );
TreeDropListener dropListener = new TreeDropListener( viewer );
viewer.addDropSupport( DND.DROP_MOVE, types, dropListener );
And DragSourceAdapter:
private static class TreeDragListener extends DragSourceAdapter {
private final TreeViewer viewer;
private Object dragData;
TreeDragListener( TreeViewer viewer ) {
this.viewer = viewer;
}
@Override
public void dragStart( DragSourceEvent event ) {
dragData = getTreeObject( event.x, event.y );
}
@Override
public void dragSetData( DragSourceEvent event ) {
event.data = dragData;
}
@Override
public void dragFinished( DragSourceEvent event ) {
viewer.refresh();
}
private TreeObject getTreeObject( int x, int y ) {
TreeObject result = null;
ViewerCell cell = viewer.getCell( new Point( x, y ) );
if( cell != null ) {
result = ( TreeObject )cell.getElement();
}
return result;
}
}
RESULT: Finally, I don't find a good solution so I replaced attributes of the html-tags with next methods cell.setFont() and cell.setForeground(). In this case this bug with feedback effect has not occurs.