private void refreshTable() {
        clearTable();

        parentFrame.setPath(fs.getCurrentDirectoryName());

        File[] f = fs.getList();

        if (!fs.isRoot()) {
            model.addRow(directoryUpRow);
            model.setValueAt(fs.getParentDirectory(), 0, 5);
        }

        if (f == null) return;

        Object[] row;
        for (int i = 0; i < f.length; i++) {
            row = new Object[6];

            row[0] = (f[i].isFile() ? Images.fileIcon() :
                (f[i].isDirectory() ? Images.folderIcon() : Images.deviceIcon()));

            if (fs.isRoot()) {
                row[1] = f[i].getAbsolutePath();
                row[0] = Images.hardDiskIcon();
            }
            else
                row[1] = f[i].getName();

            row[2] = (f[i].length() / 1024) + " KB";
            row[3] = f[i].lastModified();

            String rights = "";
            if (f[i].canRead()) rights += "r";
            if (f[i].canWrite()) rights += "w";
            if (f[i].canExecute()) rights += "x";
            row[4] = rights;
            
            row[5] = f[i].getAbsolutePath();

            model.addRow(row);
        }
    }