/*****************************************************************************
 *  Limpet - the Lightweight InforMation ProcEssing Toolkit
 *  http://limpet.info
 *
 *  (C) 2015-2016, Deep Blue C Technologies Ltd
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the Eclipse Public License v1.0
 *  (http://www.eclipse.org/legal/epl-v10.html)
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *****************************************************************************/
package info.limpet.ui.editors;

import info.limpet.IStoreItem;
import info.limpet.stackedcharts.ui.view.adapter.AdapterRegistry;
import info.limpet.ui.data_provider.data.LimpetWrapper;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.swt.dnd.DragSourceAdapter;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.TextTransfer;

public class LimpetDragListener extends DragSourceAdapter
{
  public static final String SEPARATOR = "__";
  private StructuredViewer viewer;

  public LimpetDragListener(StructuredViewer viewer)
  {
    this.viewer = viewer;
  }
  
  

  @Override
  public void dragFinished(DragSourceEvent event)
  {
    LocalSelectionTransfer.getTransfer().setSelection(null);
    if (!event.doit)
    {
      return;
    }
  }

  /**
   * Method declared on DragSourceListener
   */
  public void dragSetData(DragSourceEvent event)
  {
    IStructuredSelection selection =
        (IStructuredSelection) viewer.getSelection();

    if (TextTransfer.getInstance().isSupportedType(event.dataType))
    {

      StringBuffer items = new StringBuffer();
      Iterator<?> iter = selection.iterator();
      while (iter.hasNext())
      {
        LimpetWrapper object = (LimpetWrapper) iter.next();
        IStoreItem si = (IStoreItem) object.getSubject();
        items.append(si.getUUID().toString());
        items.append(SEPARATOR);
      }
      event.data = items.toString();
    }
    if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType))
    {
      
      LocalSelectionTransfer.getTransfer().setSelection(selection);
      event.data = selection;
    }
  }

  /**
   * Method declared on DragSourceListener
   */
  public void dragStart(DragSourceEvent event)
  {
    event.doit = !viewer.getSelection().isEmpty();
    LocalSelectionTransfer.getTransfer().setSelection(viewer.getSelection());
  }
}

@@ -731,74 +731,8 @@
 em;%0A
-import info.limpet.stackedcharts.ui.view.adapter.AdapterRegistry;%0A
 impo
@@ -788,36 +788,8 @@
 r;%0A%0A
-import java.util.ArrayList;%0A
 impo
@@ -814,31 +814,8 @@
 tor;
-%0Aimport java.util.List;
 %0A%0Aim
@@ -925,62 +925,8 @@
 on;%0A
-import org.eclipse.jface.viewers.StructuredSelection;%0A
 impo

fix imports