private void setFileDescription(FileTreeNode tn)
    {
        String fullpath = (String)tn.getUserObject();
        selectedPath = fullpath;

        if (tn.isFile)
        {
            String[] sizeexts = {"kB", "MB", "GB"}; int e = 0;
            int filesize = archive.fileSize(fullpath);
            int sizeround = filesize;
            String sizeext = "bytes";
            if (sizeround == 1) sizeext = "byte";
            else while (sizeround >= 1000)
            {
                sizeround /= 1000;
                sizeext = sizeexts[e];
                e++;
                if (e >= 3) break;
            }

            lblStatusLabel.setText(String.format("%1$s -- %2$d %3$s%4$s",
                    fullpath, sizeround, sizeext, 
                    (sizeround == filesize) ? "" : String.format(" (%1$d byte%2$s)", filesize, (filesize==1)?"":"s")));
        }
        else
        {
            int ndirs = archive.getDirectories(fullpath).size();
            int nfiles = archive.getFiles(fullpath).size();

            // wee Acmlmboard style plurals
            lblStatusLabel.setText(String.format("%1$s -- %2$d element%7$s (%3$d director%5$s, %4$d file%6$s)", 
                    fullpath, ndirs+nfiles, ndirs, nfiles, (ndirs==1)?"y":"ies", (nfiles==1)?"":"s", ((ndirs+nfiles)==1)?"":"s"));
        }
    }