public static void updateModuleList(Node node) {
    List<ModuleNeeded> moduleNeededList = ModulesNeededProvider.getModulesNeeded();
    Set<String> moduleNameList = new TreeSet<String>();
    Set<String> moduleValueList = new TreeSet<String>();
    for (ModuleNeeded module : moduleNeededList) {

      String moduleName = module.getModuleName();
      moduleNameList.add(moduleName);
      moduleValueList.add(TalendTextUtils.addQuotes(moduleName));
    }
    Comparator<String> comprarator = new IgnoreCaseComparator();
    String[] moduleNameArray = moduleNameList.toArray(new String[0]);
    String[] moduleValueArray = moduleValueList.toArray(new String[0]);
    Arrays.sort(moduleNameArray, comprarator);
    Arrays.sort(moduleValueArray, comprarator);

    for (int i = 0; i < node.getElementParameters().size(); i++) {
      IElementParameter param = node.getElementParameters().get(i);
      if (param.getFieldType() == EParameterFieldType.MODULE_LIST) {
        param.setListItemsDisplayName(moduleNameArray);
        param.setListItemsValue(moduleValueArray);
      } else if (param.getFieldType() == EParameterFieldType.TABLE) {
        Object[] listItemsValue = param.getListItemsValue();
        if (listItemsValue != null) {
          for (Object o : listItemsValue) {
            if (o instanceof IElementParameter
                && ((IElementParameter) o).getFieldType() == EParameterFieldType.MODULE_LIST) {
              ((IElementParameter) o).setListItemsDisplayName(moduleNameArray);
              ((IElementParameter) o).setListItemsValue(moduleValueArray);
            }
          }
        }
      }
    }
  }