artifact editor: create directtory/archive with parents
[fedora-idea.git] / java / compiler / impl / src / com / intellij / packaging / impl / elements / FileCopyElementType.java
blob675751389c757f52a99cb3f50992b679f7c73adf
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.intellij.packaging.impl.elements;
18 import com.intellij.openapi.fileChooser.FileChooserDescriptor;
19 import com.intellij.openapi.fileChooser.FileChooserDialog;
20 import com.intellij.openapi.fileChooser.FileChooserFactory;
21 import com.intellij.openapi.project.Project;
22 import com.intellij.openapi.util.IconLoader;
23 import com.intellij.openapi.vfs.VirtualFile;
24 import com.intellij.packaging.artifacts.Artifact;
25 import com.intellij.packaging.elements.CompositePackagingElement;
26 import com.intellij.packaging.elements.PackagingElementType;
27 import com.intellij.packaging.ui.ArtifactEditorContext;
28 import org.jetbrains.annotations.NotNull;
30 import javax.swing.*;
31 import java.util.ArrayList;
32 import java.util.List;
34 /**
35 * @author nik
37 public class FileCopyElementType extends PackagingElementType<FileCopyPackagingElement> {
38 public static final Icon ICON = IconLoader.getIcon("/fileTypes/text.png");
40 FileCopyElementType() {
41 super("file-copy", "File");
44 @Override
45 public Icon getCreateElementIcon() {
46 return ICON;
49 @Override
50 public boolean canCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact) {
51 return true;
54 @NotNull
55 public List<? extends FileCopyPackagingElement> chooseAndCreate(@NotNull ArtifactEditorContext context, @NotNull Artifact artifact,
56 @NotNull CompositePackagingElement<?> parent) {
57 final FileChooserDescriptor descriptor = new FileChooserDescriptor(true, false, true, true, false, true);
58 final FileChooserDialog chooser = FileChooserFactory.getInstance().createFileChooser(descriptor, context.getProject());
59 final VirtualFile[] files = chooser.choose(null, context.getProject());
60 final List<FileCopyPackagingElement> list = new ArrayList<FileCopyPackagingElement>();
61 for (VirtualFile file : files) {
62 list.add(new FileCopyPackagingElement(file.getPath()));
64 return list;
67 @NotNull
68 public FileCopyPackagingElement createEmpty(@NotNull Project project) {
69 return new FileCopyPackagingElement();