public AddGradleDslPluginAction() {
    getTemplatePresentation()
        .setDescription(GradleBundle.message("gradle.codeInsight.action.apply_plugin.description"));
    getTemplatePresentation()
        .setText(GradleBundle.message("gradle.codeInsight.action.apply_plugin.text"));
    getTemplatePresentation().setIcon(GradleIcons.GradlePlugin);

    Collection<KeyValue> pluginDescriptions = new ArrayList<KeyValue>();
    for (GradlePluginDescriptionsExtension extension :
        GradlePluginDescriptionsExtension.EP_NAME.getExtensions()) {
      for (Map.Entry<String, String> pluginDescription :
          extension.getPluginDescriptions().entrySet()) {
        pluginDescriptions.add(
            KeyValue.create(pluginDescription.getKey(), pluginDescription.getValue()));
      }
    }

    myPlugins = pluginDescriptions.toArray(new KeyValue[pluginDescriptions.size()]);
    Arrays.sort(
        myPlugins,
        new Comparator<KeyValue>() {
          @Override
          public int compare(KeyValue o1, KeyValue o2) {
            return String.valueOf(o1.getKey()).compareTo(String.valueOf(o2.getKey()));
          }
        });
  }
 public GradleModulePresenceChange(
     @Nullable GradleModule gradleModule, @Nullable Module intellijModule)
     throws IllegalArgumentException {
   super(
       GradleBundle.message("gradle.sync.change.entity.type.module"),
       of(gradleModule),
       of(intellijModule));
 }