Skip to content

Commit

Permalink
Merging definition of the template with the project's content
Browse files Browse the repository at this point in the history
  • Loading branch information
dukescript committed Apr 14, 2019
1 parent ee258eb commit 28f106d
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 10 deletions.
16 changes: 16 additions & 0 deletions groovy/gradle.htmlui/nbproject/project.xml
Expand Up @@ -73,6 +73,22 @@
<specification-version>9.14</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.loaders</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>7.72</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.nodes</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<specification-version>7.50</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.openide.util</code-name-base>
<build-prerequisite/>
Expand Down
Expand Up @@ -23,21 +23,19 @@
import org.netbeans.modules.gradle.spi.newproject.TemplateOperation;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.netbeans.api.project.Project;
import org.netbeans.api.templates.TemplateRegistration;
import org.netbeans.modules.gradle.api.NbGradleProject;
import org.openide.WizardDescriptor;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
import org.openide.loaders.TemplateWizard;
import org.openide.util.Exceptions;
import org.openide.util.NbBundle.Messages;

@TemplateRegistration(folder="Project/Gradle", position=999, displayName="#template.htmlUIProject", iconBase="org/netbeans/modules/gradle/htmlui/DukeHTML.png", description="description.html")
@Messages("template.htmlUIProject=Java Frontend Application")
public class HtmlJavaApplicationProjectWizard extends SimpleGradleWizardIterator {
private static final String DEFAULT_LICENSE_TEMPLATE = "/Templates/Licenses/license-default.txt"; //NOI18N
Expand Down Expand Up @@ -72,25 +70,26 @@ protected void collectOperations(TemplateOperation ops, Map<String, Object> para
mainParams.put("package", packageBase); //NOI18N
mainParams.put("name", mainClassName); //NOI18N

ops.addConfigureProject(projectDir, new CopyTree(projectDir, mainParams));
FileObject folder = ((TemplateWizard)this.getData()).getTemplate().getPrimaryFile();
ops.addConfigureProject(projectDir, new CopyTree(folder, projectDir, mainParams));
}

private static class CopyTree implements TemplateOperation.ProjectConfigurator {
private final FileObject templateFolder;
private final File projectDir;
private final Map<String, Object> params;

private CopyTree(File projectDir, Map<String, Object> params) {
private CopyTree(FileObject templateFolder, File projectDir, Map<String, Object> params) {
this.projectDir = projectDir;
this.params = params;
this.templateFolder = templateFolder;
}

@Override
public void configure(Project project) {
FileObject projectFo = FileUtil.toFileObject(projectDir);
FileObject templates = FileUtil.getConfigFile("Templates/Project/Gradle/org-netbeans-modules-gradle-htmlui-HtmlJavaApplicationProjectWizard.dir");
assert templates != null;

GradleArchetype ga = new GradleArchetype(templates, projectFo, params);
GradleArchetype ga = new GradleArchetype(templateFolder, projectFo, params);
try {
ga.copyTemplates();
} catch (IOException ex) {
Expand Down
Expand Up @@ -25,7 +25,16 @@
<folder name="Templates">
<folder name="Project">
<folder name="Gradle">
<folder name="org-netbeans-modules-gradle-htmlui-HtmlJavaApplicationProjectWizard.dir">
<folder name="org-netbeans-modules-gradle-htmlui-HtmlJavaApplicationProjectWizard">
<!--org.netbeans.modules.gradle.htmlui.HtmlJavaApplicationProjectWizard-->
<attr boolvalue="true" name="template"/>
<attr intvalue="999" name="position"/>
<attr
bundlevalue="org.netbeans.modules.gradle.htmlui.Bundle#template.htmlUIProject" name="displayName"/>
<attr name="iconBase" stringvalue="org/netbeans/modules/gradle/htmlui/DukeHTML.png"/>
<attr name="instantiatingWizardURL" urlvalue="nbresloc:/org/netbeans/modules/gradle/htmlui/description.html"/>
<attr name="instantiatingIterator" newvalue="org.netbeans.modules.gradle.htmlui.HtmlJavaApplicationProjectWizard"/>
<attr boolvalue="true" name="requireProject"/>
<file name="build.gradle" url="root_build.gradle.fmk">
<attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
</file>
Expand Down
Expand Up @@ -48,7 +48,7 @@ protected void setUp() throws Exception {


public void testCreateFromArchetype() throws Exception {
FileObject dir = FileUtil.getConfigFile("Templates/Project/Gradle/org-netbeans-modules-gradle-htmlui-HtmlJavaApplicationProjectWizard.dir");
FileObject dir = FileUtil.getConfigFile("Templates/Project/Gradle/org-netbeans-modules-gradle-htmlui-HtmlJavaApplicationProjectWizard");
assertNotNull("Templates directory found", dir);

FileObject dest = FileUtil.createFolder(workFo, "sample/dest");
Expand Down

0 comments on commit 28f106d

Please sign in to comment.