mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
isolate dependencies of ProjectTemplate on ModuleBuilder to a separate AbstractModuleBuilder class
This commit is contained in:
@@ -97,7 +97,7 @@ public class SelectTemplateStep extends ModuleWizardStep implements SettingsStep
|
||||
private final ProjectTypesList myList;
|
||||
|
||||
@Nullable
|
||||
private ModuleBuilder myModuleBuilder;
|
||||
private AbstractModuleBuilder myModuleBuilder;
|
||||
|
||||
public SelectTemplateStep(WizardContext context, StepSequence sequence, final MultiMap<TemplatesGroup, ProjectTemplate> map) {
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
package com.intellij.ide.util.newProjectWizard;
|
||||
|
||||
import com.intellij.ide.util.projectWizard.ModuleBuilder;
|
||||
import com.intellij.ide.util.projectWizard.AbstractModuleBuilder;
|
||||
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
|
||||
import com.intellij.ide.util.projectWizard.WizardContext;
|
||||
import com.intellij.openapi.module.ModuleType;
|
||||
@@ -53,7 +53,7 @@ public class StepSequence {
|
||||
myCommonFinishingSteps.add(Pair.create(step, suitableTypes));
|
||||
}
|
||||
|
||||
public void addStepsForBuilder(ModuleBuilder builder, WizardContext wizardContext, ModulesProvider modulesProvider) {
|
||||
public void addStepsForBuilder(AbstractModuleBuilder builder, WizardContext wizardContext, ModulesProvider modulesProvider) {
|
||||
String id = builder.getBuilderId();
|
||||
if (!mySpecificSteps.containsKey(id)) {
|
||||
mySpecificSteps.put(id, Arrays.asList(builder.createWizardSteps(wizardContext, modulesProvider)));
|
||||
|
||||
+2
-2
@@ -18,7 +18,7 @@ package com.intellij.ide.util.newProjectWizard.modes;
|
||||
import com.intellij.ide.util.newProjectWizard.SelectTemplateStep;
|
||||
import com.intellij.ide.util.newProjectWizard.StepSequence;
|
||||
import com.intellij.ide.util.newProjectWizard.TemplatesGroup;
|
||||
import com.intellij.ide.util.projectWizard.ModuleBuilder;
|
||||
import com.intellij.ide.util.projectWizard.AbstractModuleBuilder;
|
||||
import com.intellij.ide.util.projectWizard.WizardContext;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
@@ -125,7 +125,7 @@ public class CreateFromTemplateMode extends WizardMode {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ModuleBuilder getModuleBuilder() {
|
||||
public AbstractModuleBuilder getModuleBuilder() {
|
||||
final ProjectTemplate template = mySelectTemplateStep.getSelectedTemplate();
|
||||
if (template == null) {
|
||||
return null;
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.ide.util.projectWizard;
|
||||
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public abstract class AbstractModuleBuilder extends ProjectBuilder {
|
||||
public abstract Icon getNodeIcon();
|
||||
|
||||
@Nullable
|
||||
public abstract String getBuilderId();
|
||||
|
||||
public abstract ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModulesProvider modulesProvider);
|
||||
|
||||
@Nullable
|
||||
public ModuleWizardStep modifySettingsStep(SettingsStep settingsStep) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract void setName(String name);
|
||||
|
||||
public abstract void setModuleFilePath(@NonNls String path);
|
||||
|
||||
public abstract void setContentEntryPath(String moduleRootPath);
|
||||
}
|
||||
@@ -47,7 +47,7 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
public abstract class ModuleBuilder extends ProjectBuilder{
|
||||
public abstract class ModuleBuilder extends AbstractModuleBuilder {
|
||||
private static final ExtensionPointName<ModuleBuilderFactory> EP_NAME = ExtensionPointName.create("com.intellij.moduleBuilder");
|
||||
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.ide.util.projectWizard.ModuleBuilder");
|
||||
@@ -79,12 +79,14 @@ public abstract class ModuleBuilder extends ProjectBuilder{
|
||||
return myName;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public String getBuilderId() {
|
||||
ModuleType moduleType = getModuleType();
|
||||
return moduleType == null ? null : moduleType.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModulesProvider modulesProvider) {
|
||||
ModuleType moduleType = getModuleType();
|
||||
return moduleType == null ? ModuleWizardStep.EMPTY_ARRAY : moduleType.createWizardSteps(wizardContext, this, modulesProvider);
|
||||
@@ -98,6 +100,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{
|
||||
* and {@link com.intellij.ide.util.projectWizard.ModuleWizardStep#updateDataModel()}
|
||||
* will be invoked)
|
||||
*/
|
||||
@Override
|
||||
@Nullable
|
||||
public ModuleWizardStep modifySettingsStep(SettingsStep settingsStep) {
|
||||
ModuleType type = getModuleType();
|
||||
@@ -140,6 +143,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String name) {
|
||||
myName = acceptParameter(name);
|
||||
}
|
||||
@@ -152,6 +156,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{
|
||||
myUpdaters.add(updater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setModuleFilePath(@NonNls String path) {
|
||||
myModuleFilePath = acceptParameter(path);
|
||||
}
|
||||
@@ -169,6 +174,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{
|
||||
return myContentEntryPath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentEntryPath(String moduleRootPath) {
|
||||
final String path = acceptParameter(moduleRootPath);
|
||||
if (path != null) {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package com.intellij.platform;
|
||||
|
||||
import com.intellij.ide.util.projectWizard.ModuleBuilder;
|
||||
import com.intellij.ide.util.projectWizard.AbstractModuleBuilder;
|
||||
import com.intellij.openapi.ui.ValidationInfo;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -35,7 +35,7 @@ public interface ProjectTemplate {
|
||||
String getDescription();
|
||||
|
||||
@NotNull
|
||||
ModuleBuilder createModuleBuilder();
|
||||
AbstractModuleBuilder createModuleBuilder();
|
||||
|
||||
/**
|
||||
* @return null if ok, error message otherwise
|
||||
|
||||
Reference in New Issue
Block a user