artifacts initial
[fedora-idea.git] / source / com / intellij / openapi / roots / ui / configuration / artifacts / AddCompositeElementActionGroup.java
blob791ac1e33f28421e92a141c024947584f0d34901
1 package com.intellij.openapi.roots.ui.configuration.artifacts;
3 import com.intellij.openapi.actionSystem.AnAction;
4 import com.intellij.openapi.actionSystem.AnActionEvent;
5 import com.intellij.openapi.project.ProjectBundle;
6 import com.intellij.packaging.elements.CompositePackagingElementType;
7 import com.intellij.packaging.elements.PackagingElementFactory;
8 import com.intellij.packaging.elements.PackagingElementType;
9 import org.jetbrains.annotations.NotNull;
10 import org.jetbrains.annotations.Nullable;
12 import java.util.ArrayList;
13 import java.util.List;
15 /**
16 * @author nik
18 public class AddCompositeElementActionGroup extends AnAction {
19 private final ArtifactsEditor myArtifactsEditor;
20 private final CompositePackagingElementType<?> myElementType;
22 public AddCompositeElementActionGroup(ArtifactsEditor artifactsEditor, CompositePackagingElementType elementType) {
23 super(ProjectBundle.message("artifacts.create.action", elementType.getPresentableName()));
24 myArtifactsEditor = artifactsEditor;
25 myElementType = elementType;
26 getTemplatePresentation().setIcon(elementType.getCreateElementIcon());
29 @NotNull
30 public AnAction[] getChildren(@Nullable AnActionEvent e) {
31 if (e == null) return EMPTY_ARRAY;
33 List<AnAction> actions = new ArrayList<AnAction>();
35 final PackagingElementType<?>[] types = PackagingElementFactory.getInstance().getNonCompositeElementTypes();
36 for (final PackagingElementType<?> type : types) {
37 final AnAction action = new AnAction(type.getPresentableName()) {
38 @Override
39 public void actionPerformed(AnActionEvent e) {
40 myArtifactsEditor.addNewPackagingElement(myElementType, type);
43 action.getTemplatePresentation().setIcon(type.getCreateElementIcon());
44 actions.add(action);
46 return actions.toArray(new AnAction[actions.size()]);
49 public void actionPerformed(AnActionEvent e) {
50 myArtifactsEditor.addNewPackagingElement(null, myElementType);
53 public static void addCompositeCreateActions(List<AnAction> actions, final ArtifactsEditor artifactsEditor) {
54 for (CompositePackagingElementType packagingElementType : PackagingElementFactory.getInstance().getCompositeElementTypes()) {
55 actions.add(new AddCompositeElementActionGroup(artifactsEditor, packagingElementType));