public InjectionsSettingsUI(final Project project, final Configuration configuration) {
    myProject = project;
    myConfiguration = configuration;

    final CfgInfo currentInfo = new CfgInfo(configuration, "Project");
    myInfos =
        configuration instanceof Configuration.Prj
            ? new CfgInfo[] {
              new CfgInfo(((Configuration.Prj) configuration).getParentConfiguration(), "IDE"),
              currentInfo
            }
            : new CfgInfo[] {currentInfo};

    myRoot = new JPanel(new BorderLayout());

    myInjectionsTable = new InjectionsTable(getInjInfoList(myInfos));
    myInjectionsTable.getEmptyText().setText("No injections configured");

    ToolbarDecorator decorator = ToolbarDecorator.createDecorator(myInjectionsTable);
    createActions(decorator);

    // myRoot.add(new TitledSeparator("Languages injection places"), BorderLayout.NORTH);
    myRoot.add(decorator.createPanel(), BorderLayout.CENTER);
    myCountLabel = new JLabel();
    myCountLabel.setHorizontalAlignment(SwingConstants.RIGHT);
    myCountLabel.setForeground(SimpleTextAttributes.GRAY_ITALIC_ATTRIBUTES.getFgColor());
    myRoot.add(myCountLabel, BorderLayout.SOUTH);
    updateCountLabel();
  }
 private void updateCountLabel() {
   int placesCount = 0;
   int enablePlacesCount = 0;
   final List<InjInfo> items = myInjectionsTable.getListTableModel().getItems();
   if (!items.isEmpty()) {
     for (InjInfo injection : items) {
       for (InjectionPlace place : injection.injection.getInjectionPlaces()) {
         placesCount++;
         if (place.isEnabled()) enablePlacesCount++;
       }
     }
     myCountLabel.setText(
         items.size()
             + " injection"
             + (items.size() > 1 ? "s" : "")
             + " ("
             + enablePlacesCount
             + " of "
             + placesCount
             + " place"
             + (placesCount > 1 ? "s" : "")
             + " enabled) ");
   } else {
     myCountLabel.setText("no injections configured ");
   }
 }