@Override
    public boolean importData(TransferSupport support)
    {
        System.out.println("importData");
        Transferable t = support.getTransferable();
        JTree.DropLocation loc = (JTree.DropLocation) support.getDropLocation();
        int childIndex = loc.getChildIndex();
        ArrayList<ExtMpqArchive> archives = new ArrayList<ExtMpqArchive>();
        try
        {
            ArrayList<File> files = getFiles(t);

            for (File f : files)
            {
                if (f.isDirectory())
                {
                    // if error try next
                    try
                    {
                        ExtMpqArchive[] mPQFiles = MpqUtil.getMPQFiles(f, true);
                        archives.addAll(Arrays.asList(mPQFiles));
                    } catch (Exception ex)
                    {
                    };
                }
                // if error try next
                try
                {
                    archives.add(new ExtMpqArchive(f));
                } catch (IOException ex)
                {
                    JOptionPane.showMessageDialog(mpqTree, ex.getMessage());
                } catch (Exception ex)
                {
                    ex.printStackTrace();
                };
            }
        } catch (UnsupportedFlavorException ex)
        {
            Logger.getLogger(MpqTreeTransferHandler.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        } catch (IOException ex)
        {
            Logger.getLogger(MpqTreeTransferHandler.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
        for (ExtMpqArchive arch : archives)
        {
            if (childIndex == -1)
            {
                childIndex = 0;
            }
            this.mpqTree.addMpqArchive(arch, childIndex);
            childIndex++;
        }
        return true;
    }