docs: private void populateAvailableRulesTable(IProject project) {
          List<DetectorFactory> allAvailableList = new ArrayList<>();
          factoriesToBugAbbrev = new HashMap<>();
          Iterator<DetectorFactory> iterator = DetectorFactoryCollection.instance().factoryIterator();
          while (iterator.hasNext()) {
              DetectorFactory factory = iterator.next();
  
              // Only configure non-hidden factories
              if (factory.isHidden() && !isHiddenVisible()) {
                  continue;
              }
  
              allAvailableList.add(factory);
              addBugsAbbreviation(factory);
          }
  
          availableFactoriesTableViewer.setInput(allAvailableList);
          TableItem[] itemList = availableFactoriesTableViewer.getTable().getItems();
          UserPreferences userPreferences = getCurrentProps();
          for (int i = 0; i < itemList.length; i++) {
              DetectorFactory rule = (DetectorFactory) itemList[i].getData();
              // set enabled if defined in configuration
              if (userPreferences.isDetectorEnabled(rule)) {
                  itemList[i].setChecked(true);
              }
          }
      }