@Override protected boolean createKeys(List<Object> toPopulate) { Object[] children = utils.getChildren(category); Arrays.sort( children, new Comparator() { public int compare(Object o1, Object o2) { String s1; String s2; if (o1 == FiltersExplorer.QUERIES || o2 == FiltersExplorer.QUERIES) { return o1 == FiltersExplorer.QUERIES ? 1 : -1; } else if (o1 instanceof Category && o2 instanceof Category) { s1 = ((Category) o1).getName(); s2 = ((Category) o2).getName(); return s1.compareTo(s2); } else if (o1 instanceof FilterBuilder && o2 instanceof FilterBuilder) { s1 = ((FilterBuilder) o1).getName(); s2 = ((FilterBuilder) o2).getName(); return s1.compareTo(s2); } else if (o1 instanceof Query && o2 instanceof Query) { s1 = ((Query) o1).getName(); s2 = ((Query) o2).getName(); return s1.compareTo(s2); } else if (o1 instanceof Category) { return -1; } return 1; } }); toPopulate.addAll(Arrays.asList(children)); return true; }
public CategoryNode(FiltersExplorer.Utils utils, Category category) { super( utils.isLeaf(category) ? Children.LEAF : Children.create(new CategoryChildFactory(utils, category), true)); this.category = category; if (category != null) { setName(category.getName()); } else { setName(NbBundle.getMessage(CategoryNode.class, "RootNode.name")); } }