public /*@Override*/ PasteType getDropType(Transferable t, int action, int index) {
   if (t.isDataFlavorSupported(ExTransferable.multiFlavor)) {
     try {
       MultiTransferObject mto =
           (MultiTransferObject) t.getTransferData(ExTransferable.multiFlavor);
       boolean hasPackageFlavor = false;
       for (int i = 0; i < mto.getCount(); i++) {
         DataFlavor[] flavors = mto.getTransferDataFlavors(i);
         if (isPackageFlavor(flavors)) {
           hasPackageFlavor = true;
         }
       }
       return hasPackageFlavor ? null : super.getDropType(t, action, index);
     } catch (UnsupportedFlavorException e) {
       ErrorManager.getDefault().notify(e);
       return null;
     } catch (IOException e) {
       ErrorManager.getDefault().notify(e);
       return null;
     }
   } else {
     DataFlavor[] flavors = t.getTransferDataFlavors();
     if (isPackageFlavor(flavors)) {
       return null;
     } else {
       return super.getDropType(t, action, index);
     }
   }
 }
 public PasteType[] getPasteTypes(Transferable t) {
   if (t.isDataFlavorSupported(ExTransferable.multiFlavor)) {
     try {
       MultiTransferObject mto =
           (MultiTransferObject) t.getTransferData(ExTransferable.multiFlavor);
       boolean hasPackageFlavor = false;
       for (int i = 0; i < mto.getCount(); i++) {
         DataFlavor[] flavors = mto.getTransferDataFlavors(i);
         if (isPackageFlavor(flavors)) {
           hasPackageFlavor = true;
         }
       }
       return hasPackageFlavor ? new PasteType[0] : super.getPasteTypes(t);
     } catch (UnsupportedFlavorException e) {
       ErrorManager.getDefault().notify(e);
       return new PasteType[0];
     } catch (IOException e) {
       ErrorManager.getDefault().notify(e);
       return new PasteType[0];
     }
   } else {
     DataFlavor[] flavors = t.getTransferDataFlavors();
     if (isPackageFlavor(flavors)) {
       return new PasteType[0];
     } else {
       return super.getPasteTypes(t);
     }
   }
 }