diff --git a/ecommons/org.eclipse.statet.ecommons.uimisc/src/org/eclipse/statet/ecommons/ui/util/DNDUtils.java b/ecommons/org.eclipse.statet.ecommons.uimisc/src/org/eclipse/statet/ecommons/ui/util/DNDUtils.java
index af99459..047f748 100644
--- a/ecommons/org.eclipse.statet.ecommons.uimisc/src/org/eclipse/statet/ecommons/ui/util/DNDUtils.java
+++ b/ecommons/org.eclipse.statet.ecommons.uimisc/src/org/eclipse/statet/ecommons/ui/util/DNDUtils.java
@@ -26,9 +26,15 @@
 import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.widgets.Control;
 
+import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
 import org.eclipse.statet.internal.ecommons.ui.Messages;
 
 
+@NonNullByDefault
 public class DNDUtils {
 	
 	
@@ -62,7 +68,8 @@
 	}
 	
 	
-	public static boolean setContent(final Clipboard clipboard, final Object[] datas, final Transfer[] tranfers) {
+	public static boolean setContent(final Clipboard clipboard, final Object[] datas,
+			final @NonNull Transfer[] tranfers) {
 		while (true) {
 			try {
 				clipboard.setContents(datas, tranfers);
@@ -76,7 +83,7 @@
 				if (!MessageDialog.openQuestion(
 						UIAccess.getActiveWorkbenchShell(true),
 						Messages.CopyToClipboard_error_title,
-						Messages.CopyToClipboard_error_message)) {
+						Messages.CopyToClipboard_error_message )) {
 					return false;
 				}
 			}
@@ -91,14 +98,14 @@
 	 * @param transferTypes
 	 */
 	public static void addDropSupport(final Control control, final DropTargetListener listener,
-			final Transfer[] transferTypes) {
-		addDropSupport(control, new DropTargetListener[] { listener },
+			final @NonNull Transfer[] transferTypes) {
+		addDropSupport(control, ImCollections.newList(listener),
 				DND.DROP_DEFAULT | DND.DROP_MOVE | DND.DROP_COPY,
-				transferTypes);
+				transferTypes );
 	}
 	
-	public static void addDropSupport(final Control control, final DropTargetListener[] listeners,
-			final int operations, final Transfer[] transferTypes) {
+	public static void addDropSupport(final Control control, final ImList<DropTargetListener> listeners,
+			final int operations, final @NonNull Transfer[] transferTypes) {
 		final DropTarget dropTarget= new DropTarget(control, operations);
 		dropTarget.setTransfer(transferTypes);
 		for (final DropTargetListener listener : listeners) {
