Merge remote-tracking branch 'origin/master' into mark_folder_as
authorAnton Makeev <Anton.Makeev@jetbrains.com>
Wed, 21 Oct 2015 13:15:22 +0000 (15:15 +0200)
committerAnton Makeev <Anton.Makeev@jetbrains.com>
Wed, 21 Oct 2015 13:15:22 +0000 (15:15 +0200)
java/java-impl/src/com/intellij/ide/projectView/actions/MarkGeneratedSourceRootAction.java
java/java-impl/src/com/intellij/ide/projectView/actions/UnmarkGeneratedSourceRootAction.java
platform/lang-impl/src/com/intellij/ide/projectView/actions/MarkExcludeRootAction.java
platform/lang-impl/src/com/intellij/ide/projectView/actions/MarkRootActionBase.java
platform/lang-impl/src/com/intellij/ide/projectView/actions/MarkSourceRootAction.java
platform/lang-impl/src/com/intellij/ide/projectView/actions/UnmarkRootAction.java
platform/platform-resources-en/src/messages/LangBundle.properties

index 59d36b88ce70b4a6cd44ac203c7919d4d6580a52..de0ea969c0869026f6f2c365eee077a64ac77ff3 100644 (file)
@@ -68,7 +68,7 @@ public class MarkGeneratedSourceRootAction extends MarkRootActionBase {
   }
 
   @Override
-  protected void modifyRoots(VirtualFile vFile, ContentEntry entry) {
+  protected void modifyRoots(@NotNull VirtualFile vFile, @NotNull ContentEntry entry) {
     JavaSourceRootProperties properties = JpsJavaExtensionService.getInstance().createSourceRootProperties("", true);
     entry.addSourceFolder(vFile, JavaSourceRootType.SOURCE, properties);
   }
index 0af8706ab38c3e4b4b03772314e4984abc51479c..c79d844411e5adbbd52dc2c3b59901be97d7bb99 100644 (file)
@@ -49,7 +49,7 @@ public class UnmarkGeneratedSourceRootAction extends MarkRootActionBase {
   }
 
   @Override
-  protected void modifyRoots(VirtualFile vFile, ContentEntry entry) {
+  protected void modifyRoots(@NotNull VirtualFile vFile, @NotNull ContentEntry entry) {
     entry.addSourceFolder(vFile, JavaSourceRootType.SOURCE);
   }
 }
index 2e55b4aee11a254a8c244435ee42b0b57062147a..7fbb9c3b9eca8362711377a62f3eb26da38cd411 100644 (file)
@@ -49,7 +49,7 @@ public class MarkExcludeRootAction extends MarkRootActionBase {
            " from the project?\nYou can restore excluded directories later using the Project Structure dialog.";
   }
 
-  protected void modifyRoots(VirtualFile vFile, ContentEntry entry) {
+  protected void modifyRoots(@NotNull VirtualFile vFile, @NotNull ContentEntry entry) {
     entry.addExcludeFolder(vFile);
   }
 
index 79553d1d331ffba2b283615b486ec595115b5334..633f677e9dee06979d96e53beed02e6a9220f634 100644 (file)
@@ -33,6 +33,7 @@ import com.intellij.openapi.vfs.VirtualFile;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
+import javax.swing.*;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -40,6 +41,17 @@ import java.util.List;
  * @author yole
  */
 public abstract class MarkRootActionBase extends DumbAwareAction {
+  public MarkRootActionBase() {
+  }
+
+  public MarkRootActionBase(@Nullable String text) {
+    super(text);
+  }
+
+  public MarkRootActionBase(@Nullable String text, @Nullable String description, @Nullable Icon icon) {
+    super(text, description, icon);
+  }
+
   @Override
   public void actionPerformed(AnActionEvent e) {
     VirtualFile[] files = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY);
@@ -47,7 +59,10 @@ public abstract class MarkRootActionBase extends DumbAwareAction {
     if (module == null) {
       return;
     }
+    modifyRoots(e, module, files);
+  }
 
+  protected void modifyRoots(@NotNull  AnActionEvent e, @NotNull final Module module, @NotNull VirtualFile[] files) {
     final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel();
     for (VirtualFile file : files) {
       ContentEntry entry = findContentEntry(model, file);
@@ -167,7 +182,7 @@ public abstract class MarkRootActionBase extends DumbAwareAction {
     return result;
   }
 
-  protected static class RootsSelection {
+  public static class RootsSelection {
     public static final RootsSelection EMPTY = new RootsSelection();
 
     public List<SourceFolder> mySelectedRoots = new ArrayList<SourceFolder>();
index d1219d72cb74d2d86f165cd20bcb8fab5f41a335..d8add5e8708d7027cd58b4e9015d9dca60104de8 100644 (file)
@@ -44,7 +44,7 @@ public class MarkSourceRootAction extends MarkRootActionBase {
     presentation.setDescription(ProjectBundle.message("module.toggle.sources.action.description", editHandler.getRootTypeName()));
   }
 
-  protected void modifyRoots(VirtualFile vFile, ContentEntry entry) {
+  protected void modifyRoots(@NotNull VirtualFile vFile, @NotNull ContentEntry entry) {
     entry.addSourceFolder(vFile, myRootType);
   }
 
index 9131ae53aeef3288dc8b8d8bccae827a6abcd8a3..1fe2eb6721996b90088753be5679a7baf1e73ea4 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.intellij.ide.projectView.actions;
 
+import com.intellij.lang.LangBundle;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.roots.ContentEntry;
@@ -40,25 +41,31 @@ public class UnmarkRootAction extends MarkRootActionBase {
     if (!Registry.is("ide.hide.excluded.files") && !selection.mySelectedExcludeRoots.isEmpty()
         && selection.mySelectedDirectories.isEmpty() && selection.mySelectedRoots.isEmpty()) {
       e.getPresentation().setEnabledAndVisible(true);
-      e.getPresentation().setText("Cancel Exclusion");
+      e.getPresentation().setText(LangBundle.message("mark.as.unmark.excluded"));
       return;
     }
 
     super.doUpdate(e, module, selection);
 
+    String text = getActionText(e, module, selection);
+    if (text != null) e.getPresentation().setText(text);
+  }
+
+  @Nullable
+  protected String getActionText(@NotNull AnActionEvent e, @Nullable Module module, @NotNull RootsSelection selection) {
     Set<ModuleSourceRootEditHandler<?>> selectedRootHandlers = getHandlersForSelectedRoots(selection);
 
     if (!selectedRootHandlers.isEmpty()) {
-      String text;
       if (selectedRootHandlers.size() == 1) {
         ModuleSourceRootEditHandler<?> handler = selectedRootHandlers.iterator().next();
-        text = "Unmark as " + handler.getRootTypeName() + " " + StringUtil.pluralize("Root", selection.mySelectedRoots.size());
+        return LangBundle.message("mark.as.unmark", 
+                                  handler.getRootTypeName() + " " + StringUtil.pluralize("Root", selection.mySelectedRoots.size()));
       }
       else {
-        text = "Unmark Roots";
+        return LangBundle.message("mark.as.unmark.several");
       }
-      e.getPresentation().setText(text);
     }
+    return null;
   }
 
   @NotNull
@@ -75,7 +82,7 @@ public class UnmarkRootAction extends MarkRootActionBase {
     return selection.mySelectedDirectories.isEmpty() && !getHandlersForSelectedRoots(selection).isEmpty();
   }
 
-  protected void modifyRoots(VirtualFile file, ContentEntry entry) {
+  protected void modifyRoots(@NotNull VirtualFile file, @NotNull ContentEntry entry) {
     for (ExcludeFolder excludeFolder : entry.getExcludeFolders()) {
       if (file.equals(excludeFolder.getFile())) {
         entry.removeExcludeFolder(excludeFolder);
index a66032d3dfbc7a1dd31e1ff3bc4197c1856a24ca..f5b5d364b65d07e262b6a9f115bb272c2855b64a 100644 (file)
@@ -59,3 +59,7 @@ jrt.not.available.message=You need to run IDEA on Java 8 to be able to use modul
 jrt.not.available.title=Unsupported JDK ''{0}'' detected
 
 compound.run.configuration.cycle={0} ''{1}'' causes dependency cycle and cannot be added
+
+mark.as.unmark=Unmark as {0}
+mark.as.unmark.excluded=Cancel Exclusion
+mark.as.unmark.several=Unmark Roots
\ No newline at end of file