mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
remote templates
This commit is contained in:
@@ -73,4 +73,8 @@ public class ChooseTemplateStep extends ModuleWizardStep {
|
||||
myWizardContext.setProjectTemplate(myTemplateList.getSelectedTemplate());
|
||||
}
|
||||
}
|
||||
|
||||
public ProjectTemplateList getTemplateList() {
|
||||
return myTemplateList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,11 +47,15 @@ public class NewProjectWizard extends AbstractProjectWizard {
|
||||
myWizardContext.setNewWizard(true);
|
||||
ProjectTypeStep projectTypeStep = new ProjectTypeStep(myWizardContext, this, modulesProvider);
|
||||
mySequence.addCommonStep(projectTypeStep);
|
||||
mySequence.addCommonStep(new ChooseTemplateStep(myWizardContext, projectTypeStep));
|
||||
ChooseTemplateStep chooseTemplateStep = new ChooseTemplateStep(myWizardContext, projectTypeStep);
|
||||
mySequence.addCommonStep(chooseTemplateStep);
|
||||
mySequence.addCommonFinishingStep(new ProjectSettingsStep(myWizardContext), null);
|
||||
for (ModuleWizardStep step : mySequence.getAllSteps()) {
|
||||
addStep(step);
|
||||
}
|
||||
if (myWizardContext.isCreatingNewProject()) {
|
||||
projectTypeStep.loadRemoteTemplates(chooseTemplateStep);
|
||||
}
|
||||
super.init();
|
||||
}
|
||||
|
||||
|
||||
@@ -114,7 +114,6 @@ public class ProjectTypeStep extends ModuleWizardStep implements Disposable {
|
||||
};
|
||||
private final Map<String, ModuleWizardStep> myCustomSteps = new HashMap<String, ModuleWizardStep>();
|
||||
private final MultiMap<TemplatesGroup,ProjectTemplate> myTemplatesMap;
|
||||
private boolean myRemoteTemplatesLoaded;
|
||||
private String myCurrentCard;
|
||||
|
||||
public ProjectTypeStep(WizardContext context, NewProjectWizard wizard, ModulesProvider modulesProvider) {
|
||||
@@ -459,13 +458,6 @@ public class ProjectTypeStep extends ModuleWizardStep implements Disposable {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStep() {
|
||||
if (myContext.isCreatingNewProject() && !myRemoteTemplatesLoaded) {
|
||||
loadRemoteTemplates();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validate() throws ConfigurationException {
|
||||
ModuleWizardStep step = getCustomStep();
|
||||
@@ -519,12 +511,13 @@ public class ProjectTypeStep extends ModuleWizardStep implements Disposable {
|
||||
return map;
|
||||
}
|
||||
|
||||
private void loadRemoteTemplates() {
|
||||
void loadRemoteTemplates(final ChooseTemplateStep chooseTemplateStep) {
|
||||
ProgressManager.getInstance().run(new Task.Backgroundable(myContext.getProject(), "Loading Templates") {
|
||||
@Override
|
||||
public void run(@NotNull ProgressIndicator indicator) {
|
||||
try {
|
||||
myTemplatesList.setPaintBusy(true);
|
||||
chooseTemplateStep.getTemplateList().setPaintBusy(true);
|
||||
RemoteTemplatesFactory factory = new RemoteTemplatesFactory();
|
||||
String[] groups = factory.getGroups();
|
||||
for (String group : groups) {
|
||||
@@ -545,12 +538,13 @@ public class ProjectTypeStep extends ModuleWizardStep implements Disposable {
|
||||
if (group == null) return;
|
||||
Collection<ProjectTemplate> templates = myTemplatesMap.get(group);
|
||||
setTemplatesList(group, templates, true);
|
||||
chooseTemplateStep.updateStep();
|
||||
}
|
||||
});
|
||||
}
|
||||
finally {
|
||||
myTemplatesList.setPaintBusy(false);
|
||||
myRemoteTemplatesLoaded = true;
|
||||
chooseTemplateStep.getTemplateList().setPaintBusy(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -55,8 +55,6 @@ import java.util.zip.ZipInputStream;
|
||||
public class RemoteTemplatesFactory extends ProjectTemplatesFactory {
|
||||
|
||||
private static final String URL = "http://download.jetbrains.com/idea/project_templates/";
|
||||
public static final String SAMPLES_GALLERY = "Samples Gallery";
|
||||
private static final Namespace NAMESPACE = Namespace.getNamespace("http://www.jetbrains.com/projectTemplates");
|
||||
|
||||
public static final String INPUT_FIELD = "input-field";
|
||||
public static final String TEMPLATE = "template";
|
||||
@@ -113,20 +111,12 @@ public class RemoteTemplatesFactory extends ProjectTemplatesFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static MultiMap<String, ArchivedProjectTemplate> createFromText(String text) throws IOException, JDOMException {
|
||||
|
||||
Element rootElement = JDOMUtil.loadDocument(text).getRootElement();
|
||||
List<Element> groups = rootElement.getChildren("group", NAMESPACE);
|
||||
MultiMap<String, ArchivedProjectTemplate> map = new MultiMap<String, ArchivedProjectTemplate>();
|
||||
if (groups.isEmpty()) { // sample gallery by default
|
||||
map.put(SAMPLES_GALLERY, createGroupTemplates(rootElement, Namespace.NO_NAMESPACE));
|
||||
Element rootElement = JDOMUtil.loadDocument(text).getRootElement();
|
||||
List<ArchivedProjectTemplate> templates = createGroupTemplates(rootElement, Namespace.NO_NAMESPACE);
|
||||
for (ArchivedProjectTemplate template : templates) {
|
||||
map.putValue(template.getCategory(), template);
|
||||
}
|
||||
else {
|
||||
for (Element group : groups) {
|
||||
if (checkRequiredPlugins(group, NAMESPACE)) {
|
||||
map.put(group.getChildText("name", NAMESPACE), createGroupTemplates(group, NAMESPACE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user