simplify GTDUCollector a bit more
[idea/community.git] / java / idea-ui / src / com / intellij / projectImport / ProjectImportBuilder.java
1 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.projectImport;
3
4 import com.intellij.ide.DataManager;
5 import com.intellij.ide.JavaUiBundle;
6 import com.intellij.ide.util.projectWizard.ProjectBuilder;
7 import com.intellij.openapi.actionSystem.CommonDataKeys;
8 import com.intellij.openapi.extensions.ExtensionPointName;
9 import com.intellij.openapi.module.ModifiableModuleModel;
10 import com.intellij.openapi.module.Module;
11 import com.intellij.openapi.options.ConfigurationException;
12 import com.intellij.openapi.project.Project;
13 import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
14 import com.intellij.packaging.artifacts.ModifiableArtifactModel;
15 import org.jetbrains.annotations.Nls;
16 import org.jetbrains.annotations.NotNull;
17 import org.jetbrains.annotations.Nullable;
18
19 import javax.swing.*;
20 import java.util.List;
21
22 /**
23  * @author Vladislav.Kaznacheev
24  */
25 public abstract class ProjectImportBuilder<T> extends ProjectBuilder {
26   public static final ExtensionPointName<ProjectImportBuilder<?>> EXTENSIONS_POINT_NAME = new ExtensionPointName<>("com.intellij.projectImportBuilder");
27
28   private boolean myUpdate;
29   private String myFileToImport;
30
31   public abstract @NotNull @Nls(capitalization = Nls.Capitalization.Sentence) String getName();
32
33   public abstract Icon getIcon();
34
35   public @Nullable List<T> getList() {
36     return null;
37   }
38
39   public abstract boolean isMarked(final T element);
40
41   public void setList(List<T> list) throws ConfigurationException {
42   }
43
44   public abstract void setOpenProjectSettingsAfter(boolean on);
45
46   @Override
47   public List<Module> commit(@NotNull Project project, ModifiableModuleModel model, ModulesProvider modulesProvider) {
48     return commit(project, model, modulesProvider, null);
49   }
50
51   public abstract @Nullable List<Module> commit(Project project, ModifiableModuleModel model, ModulesProvider modulesProvider, ModifiableArtifactModel artifactModel);
52
53   public void setFileToImport(@NotNull String path) {
54     myFileToImport = path;
55   }
56
57   public String getFileToImport() {
58     return myFileToImport;
59   }
60
61   public static @Nullable Project getCurrentProject() {
62     return CommonDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext());
63   }
64
65   protected String getTitle() {
66     return JavaUiBundle.message("project.import.wizard.title", getName());
67   }
68
69   @Override
70   public boolean isUpdate() {
71     return myUpdate;
72   }
73
74   public void setUpdate(final boolean update) {
75     myUpdate = update;
76   }
77 }