protected Node[] createNodes(LibraryManager mgr) { List<Library> libs = new ArrayList<Library>(); for (Library lib : mgr.getLibraries()) { if (filter == null || filter.accept(lib)) { libs.add(lib); } } if (libs.isEmpty()) { return new Node[0]; } else { Collections.sort(libs,new Comparator<Library>() { Collator COLL = Collator.getInstance(); public int compare(Library lib1, Library lib2) { return COLL.compare(lib1.getDisplayName(), lib2.getDisplayName()); } }); Node n = new AbstractNode(new LibraryChildren(libs)) { Node iconDelegate = DataFolder.findFolder(FileUtil.getConfigRoot()).getNodeDelegate(); public Image getIcon(int type) { return iconDelegate.getIcon(type); } public Image getOpenedIcon(int type) { return iconDelegate.getOpenedIcon(type); } }; n.setName(mgr.getDisplayName()); n.setDisplayName(mgr.getDisplayName()); return new Node[] {n}; } }