@SuppressWarnings("unchecked")
  @Override
  public void drop(DropTargetDropEvent dtde) {
    Transferable trans = dtde.getTransferable();
    if (isDnD(trans)) {
      dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
      Vector<File> fileLst = new Vector<File>();
      try {
        if (trans.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
          List<File> tempLst = (List<File>) trans
              .getTransferData(DataFlavor.javaFileListFlavor);
          for (File file : tempLst) {
            fileLst.add(file);
          }
        } else if (trans.isDataFlavorSupported(DataFlavor.stringFlavor)) {
          String str = ((String) trans.getTransferData(DataFlavor.stringFlavor))
              .trim();
          logger.info("Drop: " + str);
          String sep = System.getProperty("line.seperator");
          if (str.contains(sep)) {
            String[] strs = str.split(sep);
            for (String filename : strs) {
              fileLst.add(new File(new URI(filename.trim())));
            }
          } else {
            fileLst.add(new File(new URI(str)));
          }
        }
      } catch (UnsupportedFlavorException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      } catch (URISyntaxException e) {
        e.printStackTrace();
      }
      _mainCtl.updateFileLst(fileLst);
    }
  }