public void displayFilesBySizeAndCRC(Map<Long, Map<String, List<FileRef>>> filesBySizeAndCRC) {
        _rootNode.removeAllChildren();
        if (filesBySizeAndCRC != null) {
            for (Map.Entry<Long, Map<String, List<FileRef>>> entry: filesBySizeAndCRC.entrySet()) {
                Map<String, List<FileRef>> filesByCRC = entry.getValue();
                if ((filesByCRC != null) && filesByCRC.size() > 0) {
                    DefaultMutableTreeNode sizeNode = 
                            new DefaultMutableTreeNode(entry.getKey().toString());
                    _rootNode.add(sizeNode);
                    _tree.expandPath(new TreePath(sizeNode.getPath()));
                    for (Map.Entry<String, List<FileRef>> fileEntry: filesByCRC.entrySet()) {
                        List<FileRef> files = fileEntry.getValue();
                        if ((files != null) && files.size() > 0) {
                            DefaultMutableTreeNode crcNode = 
                                    new DefaultMutableTreeNode(fileEntry.getKey().toString() + " (" + files.size() + ")");

                            for (FileRef f: files) {
                                FileTreeNode fileNode = new FileTreeNode(f.getPath());
                                crcNode.add(fileNode);
                            }
                            sizeNode.add(crcNode);
                            _tree.expandPath(new TreePath(crcNode.getPath()));
                        }
                    }
                }
            }
        }
        _tree.expandPath(new TreePath(_rootNode));
    }