public void checkFiles() {
        List<LeafNode> leaves = getLeaves();
        if ( leaves != null ) {
            ListIterator<LeafNode> it = leaves.listIterator();
            while ( it.hasNext() ) {
                LeafNode node = it.next();
                
                // Check finished files
                String filePath = UserPreferences.PREF_DOWNLOAD_TARGET;
                String dirs = node.getPathDir().getDirs();
                if ( dirs != null )
                    filePath += File.separator + dirs;
                filePath += File.separator + node.getItem().getName();
                
                File f = new File( filePath );
                if ( f.exists() && f.length() == node.getItem().getSize() ) {
                    node.setDownPerc( 1.0f );
                    node.setStatus( "Completed" );
                    continue;
                }
                // Check part files
                int i = 0;
                long dlSize = 0L;
                while ( true ) {
                    File fPart = new File( filePath + ".pio" + i );
                    if ( !fPart.exists() )
                        break;
                    else
                        dlSize += fPart.length();
                    i++;
                }
                if ( i > 0 ) {
                    node.setDownPerc( (float) dlSize / (float) node.getItem().getSize() );
                    node.setStatus( GuiOperations.getReadableSize( dlSize ) + " / "
                            + GuiOperations.getReadableSize( node.getItem().getSize() ) );
                }
            }
        }
        repaint();
    }