Drag&Drop innerhalb von styledText Textfeld

HuberDe

Mitglied
Hallo zusammen,

ich habe versucht in einem styledText Textfeld einen Teil des inhalts zu selektieren und an eine andere Stelle zu schieben. So wie es bei großen Editoren auch möglich ist.

Dazu habe ich folgende Methode geschrieben:

Code:
	private void dragDropFunctionality()
	{
		DragSource dragSource = new DragSource(getTextWidget(), DND.DROP_MOVE);
		DropTarget dropTarget = new DropTarget(getTextWidget(), DND.DROP_MOVE);

		Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
		
		dragSource.setTransfer(types);
		dropTarget.setTransfer(types);

		dragSource.addDragListener(new DragSourceAdapter()
		{
			public void dragSetData(DragSourceEvent event)
			{
				if (TextTransfer.getInstance().isSupportedType(event.dataType))
				{
					event.data = getTextWidget().getSelectionText();	
				}
			}
		});

		dropTarget.addDropListener(new DropTargetAdapter()
		{
			public void drop(DropTargetEvent event)
			{
				// A drop has occurred, copy over the data
				if (event.data == null)
				{ // no data to copy, indicate failure in event.detail
					event.detail = DND.DROP_NONE;
					return;
				}
				
				getTextWidget().insert((String)event.data);
				
			}
		});
	}

Beim Aufruf der drop() Methode bekomme ich nun immer folgende Fehlermeldung:

Code:
org.eclipse.swt.SWTException: Data does not have correct format for type

Genau die gleiche Methode verwende ich innerhalb eines SWT Treeobjekts. Da funktioniert das alles ohne Probleme.

Ich hoffe mir kann hier jemand weiterhelfen. Danke
 
Zurück