private Map<Category, JPanel> lookupCategoriesPanels( final Properties properties, final List<Category> categories) { final Map<Category, JPanel> result = new HashMap<Category, JPanel>(); final Map<PropertiesPanelProvider, Category> categoriesMap = new TreeMap<PropertiesPanelProvider, Category>( new Comparator<PropertiesPanelProvider>() { @Override public int compare( final PropertiesPanelProvider panel1, final PropertiesPanelProvider panel2) { final int priority1 = panel1.getPriority(); final int priority2 = panel2.getPriority(); if (priority1 == priority2) { return panel1.getDisplayName().compareTo(panel2.getDisplayName()); } return priority2 - priority1; } }); final Lookup lkp = Lookup.getDefault(); for (final PropertiesPanelProvider propPanelProvider : lkp.lookupAll(PropertiesPanelProvider.class)) { final Category category = Category.create(propPanelProvider.getName(), propPanelProvider.getDisplayName(), null); final String moduleName = propPanelProvider.getName(); final AbstractPropertiesPanel panel = propPanelProvider.getPanel(new ModuleProperties(moduleName, properties)); panel.load(); result.put(category, panel); categoriesMap.put(propPanelProvider, category); } categories.addAll(categoriesMap.values()); return result; }
public Category createCategory(Lookup lookup) { return Category.create("CheckStyle", "CheckStyle", null); }