setTitle(StrutsBundle.message("facet.fileset.editor.title"));
myOriginalSet = fileSet;
myFileSet = new StrutsFileSet(fileSet);
ConfigFilesTreeBuilder builder = new ConfigFilesTreeBuilder(myFilesTree) {
@Override
protected DefaultMutableTreeNode createFileNode(Object file) {
CheckedTreeNode node = new CheckedTreeNode(file);
if (file instanceof PsiFile && myFileSet.hasFile(((PsiFile)file).getVirtualFile()) ||
file instanceof VirtualFile && myFileSet.hasFile((VirtualFile)file)) {
node.setChecked(true);
}
else {
node.setChecked(false);
}
return node;
}
};
final CheckedTreeNode myRoot = new CheckedTreeNode(null);
myFilesTree.setModel(new DefaultTreeModel(myRoot));
searcher.search();
Set<PsiFile> psiFiles = builder.buildTree(myRoot, searcher);
final PsiManager psiManager = PsiManager.getInstance(context.getProject());
final List<VirtualFilePointer> list = fileSet.getFiles();
for (VirtualFilePointer pointer : list) {
final VirtualFile file = pointer.getFile();
if (file != null) {
final PsiFile psiFile = psiManager.findFile(file);
if (psiFile != null && psiFiles.contains(psiFile)) {
continue;
}
builder.addFile(file);
}
}
TreeUtil.expandAll(myFilesTree);
myFilesTree.getModel().addTreeModelListener(new TreeModelAdapter() {