@Override
 public boolean importData(TransferSupport support) {
   DataFlavor f = getStringFlavor(support.getDataFlavors());
   Object drop = null;
   String s = null;
   if (f != null) {
     try {
       drop = support.getTransferable().getTransferData(f);
     } catch (UnsupportedFlavorException e) {
       Logger.getLogger(this.getClass()).debug("Internal error.", e); // $NON-NLS-1$
     } catch (IOException e) {
       Logger.getLogger(this.getClass()).debug("Internal error.", e); // $NON-NLS-1$
     }
   } else {
     try {
       drop = support.getTransferable().getTransferData(DataFlavor.stringFlavor);
     } catch (UnsupportedFlavorException e) {
       Logger.getLogger(this.getClass()).debug("Internal error.", e); // $NON-NLS-1$
     } catch (IOException e) {
       Logger.getLogger(this.getClass()).debug("Internal error.", e); // $NON-NLS-1$
     }
   }
   if (drop != null) {
     s = String.valueOf(drop);
   }
   if (s != null) {
     return importString(s, support);
   }
   return false;
 }
    @Override
    public boolean canImport(TransferSupport support) {
      if (support.isDrop() && !mDropEnabled) return false;

      if (support.getComponent() == mTextArea && mTextHandler.canImport(support)) return true;

      for (DataFlavor flavor : support.getDataFlavors()) {
        if (flavor.isFlavorJavaFileListType()) {
          return true;
        }
      }

      return false;
    }
 /**
  * Imports the drop data by going over the list of supported callbacks. This method will return
  * true if a callback could be found that could successfully import the drop data, or false
  * otherwise.
  *
  * @param support The TransferSupport describing the drop event.
  * @return true if a callback could be found that could successfully import the drop data, or
  *     false otherwise.
  */
 @Override
 public boolean importData(final TransferSupport support) {
   try {
     final DataFlavor[] flavors = support.getDataFlavors();
     for (DataFlavor flavor : flavors) {
       final LinkedList<DropHandlerCallback> callbacks = _callbackMapping.get(flavor);
       if (callbacks == null) continue;
       final Object data = support.getTransferable().getTransferData(flavor);
       for (DropHandlerCallback callback : callbacks)
         if (callback.importData(support.getComponent(), data)) return true;
     }
   } catch (Exception e) {
     return false;
   }
   return false;
 }
 @Override
 public boolean canImport(TransferSupport support) {
   DataFlavor f = getStringFlavor(support.getDataFlavors());
   return f != null;
 }