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;
  }
Ejemplo n.º 2
0
 public Category createCategory(Lookup lookup) {
   return Category.create("CheckStyle", "CheckStyle", null);
 }