Implement the freemarker scripting support for creating new JSP objects.
1.1 --- a/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/api/ProjectTemplate.java Mon Sep 10 21:29:25 2007 +0000
1.2 +++ b/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/api/ProjectTemplate.java Mon Sep 10 22:09:32 2007 +0000
1.3 @@ -25,6 +25,7 @@
1.4 import java.net.URL;
1.5 import java.util.Enumeration;
1.6 import java.util.Properties;
1.7 +import java.util.Map;
1.8 import org.netbeans.api.project.Project;
1.9 import org.openide.ErrorManager;
1.10 import org.openide.filesystems.FileObject;
1.11 @@ -52,7 +53,7 @@
1.12
1.13 public abstract void instantiateFile(Project project, Node node, FileObject folder, String j2eeLevel, String pageName) throws IOException;
1.14
1.15 - protected FileObject instantiateFileTemplate(FileObject folder, String name, String templateName) throws IOException {
1.16 + protected FileObject instantiateFileTemplate(FileObject folder, String name, String templateName, Map<String, String> parameters) throws IOException {
1.17 FileSystem fs = Repository.getDefault().getDefaultFileSystem();
1.18 FileObject FO = fs.findResource(templateName);
1.19 if (FO == null) {
1.20 @@ -76,7 +77,11 @@
1.21 name = name.substring(0, name.lastIndexOf(ext) - 1);
1.22 DataObject newDO = null;
1.23 try {
1.24 - newDO = template.createFromTemplate(folderDataObj, name);
1.25 + if (parameters != null) {
1.26 + newDO = template.createFromTemplate(folderDataObj, name, parameters);
1.27 + } else {
1.28 + newDO = template.createFromTemplate(folderDataObj, name);
1.29 + }
1.30 } catch (Exception e) {
1.31 ErrorManager.getDefault().notify(e);
1.32 }
2.1 --- a/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/resources/layer.xml Mon Sep 10 21:29:25 2007 +0000
2.2 +++ b/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/resources/layer.xml Mon Sep 10 22:09:32 2007 +0000
2.3 @@ -64,6 +64,7 @@
2.4 <attr name="templateCategory" stringvalue="web-types"/>
2.5 <attr name="templateWizardIterator" methodvalue="org.netbeans.modules.visualweb.project.jsf.ui.PageIterator.createWebFormIterator"/>
2.6 <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/visualweb/project/jsf/resources/templates/descriptions/WebFormTemplateHelp.html"/>
2.7 + <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
2.8 </file>
2.9 <file name="Page.java" url="/org/netbeans/modules/visualweb/project/jsf/resources/templates/Page.java.template">
2.10 <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.visualweb.project.jsf.resources.Bundle"/>
2.11 @@ -79,6 +80,7 @@
2.12 <attr name="templateCategory" stringvalue="web-types"/>
2.13 <attr name="templateWizardIterator" methodvalue="org.netbeans.modules.visualweb.project.jsf.ui.PageIterator.createWebFormIterator"/>
2.14 <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/visualweb/project/jsf/resources/templates/descriptions/WebFormTemplateHelp.html"/>
2.15 + <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
2.16 </file>
2.17 <file name="PageFragment.java" url="/org/netbeans/modules/visualweb/project/jsf/resources/templates/PageFragment.java.template">
2.18 <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.visualweb.project.jsf.resources.Bundle"/>
2.19 @@ -141,6 +143,7 @@
2.20 <attr name="templateCategory" stringvalue="rave-page_1.5"/>
2.21 <attr name="templateWizardIterator" methodvalue="org.netbeans.modules.visualweb.project.jsf.ui.PageIterator.createWebFormIterator"/>
2.22 <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/visualweb/project/jsf/resources/templates/descriptions/WebFormTemplateHelp.html"/>
2.23 + <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
2.24 </file>
2.25 <file name="Page.java" url="/org/netbeans/modules/visualweb/project/jsf/resources/templates/1_5/Page.java.template">
2.26 <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.visualweb.project.jsf.resources.Bundle"/>
2.27 @@ -156,6 +159,7 @@
2.28 <attr name="templateCategory" stringvalue="rave-page_1.5"/>
2.29 <attr name="templateWizardIterator" methodvalue="org.netbeans.modules.visualweb.project.jsf.ui.PageIterator.createWebFormIterator"/>
2.30 <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/visualweb/project/jsf/resources/templates/descriptions/WebFormTemplateHelp.html"/>
2.31 + <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
2.32 </file>
2.33 <file name="PageFragment.java" url="/org/netbeans/modules/visualweb/project/jsf/resources/templates/1_5/PageFragment.java.template">
2.34 <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.visualweb.project.jsf.resources.Bundle"/>
3.1 --- a/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/resources/templates/Page.jsp.template Mon Sep 10 21:29:25 2007 +0000
3.2 +++ b/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/resources/templates/Page.jsp.template Mon Sep 10 22:09:32 2007 +0000
3.3 @@ -1,14 +1,15 @@
3.4 +<#assign pound = '#'>
3.5 <?xml version="1.0" encoding="UTF-8"?>
3.6 <jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui">
3.7 <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
3.8 <f:view>
3.9 - <ui:page binding="#{__NAME__.page1}" id="page1">
3.10 - <ui:html binding="#{__NAME__.html1}" id="html1">
3.11 - <ui:head binding="#{__NAME__.head1}" id="head1">
3.12 - <ui:link binding="#{__NAME__.link1}" id="link1" url="/resources/stylesheet.css"/>
3.13 + <ui:page binding="${pound}{${folder}${name}.page1}" id="page1">
3.14 + <ui:html binding="${pound}{${folder}${name}.html1}" id="html1">
3.15 + <ui:head binding="${pound}{${folder}${name}.head1}" id="head1">
3.16 + <ui:link binding="${pound}{${folder}${name}.link1}" id="link1" url="/resources/stylesheet.css"/>
3.17 </ui:head>
3.18 - <ui:body binding="#{__NAME__.body1}" id="body1" style="-rave-layout: grid">
3.19 - <ui:form binding="#{__NAME__.form1}" id="form1">
3.20 + <ui:body binding="${pound}{${folder}${name}.body1}" id="body1" style="-rave-layout: grid">
3.21 + <ui:form binding="${pound}{${folder}${name}.form1}" id="form1">
3.22 </ui:form>
3.23 </ui:body>
3.24 </ui:html>
4.1 --- a/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/resources/templates/PageFragment.jspf.template Mon Sep 10 21:29:25 2007 +0000
4.2 +++ b/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/resources/templates/PageFragment.jspf.template Mon Sep 10 22:09:32 2007 +0000
4.3 @@ -1,5 +1,5 @@
4.4 <?xml version="1.0"?>
4.5 <div style="-rave-layout: grid; width: 400px; height: 200px" xmlns:f="http://java.sun.com/jsf/core" >
4.6 - <f:subview id="__NAME__">
4.7 + <f:subview id="${name}">
4.8 </f:subview>
4.9 </div>
5.1 --- a/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/ui/PageIterator.java Mon Sep 10 21:29:25 2007 +0000
5.2 +++ b/visualweb.project.jsf/src/org/netbeans/modules/visualweb/project/jsf/ui/PageIterator.java Mon Sep 10 22:09:32 2007 +0000
5.3 @@ -34,6 +34,7 @@
5.4 import java.util.NoSuchElementException;
5.5 import java.util.Set;
5.6 import java.util.List;
5.7 +import java.util.HashMap;
5.8 import javax.swing.JComponent;
5.9 import javax.swing.event.ChangeListener;
5.10
5.11 @@ -186,7 +187,7 @@
5.12
5.13 // Java EE 5 / JSF 1.2 project needs different template
5.14 if (J2eeModule.JAVA_EE_5.equals(JsfProjectUtils.getJ2eePlatformVersion(project))) {
5.15 - String name = "Templates/Jsf12Apps/" + template.getName() + "." + template.getExt();
5.16 + String name = "Templates/Jsf12Apps/" + template.getNameExt(); // NOI18N
5.17 FileObject fo = Repository.getDefault().getDefaultFileSystem().findResource(name);
5.18 if (fo != null) {
5.19 template = fo;
5.20 @@ -235,7 +236,26 @@
5.21 // Default name.
5.22 obj = dTemplate.createFromTemplate(df);
5.23 } else {
5.24 - obj = dTemplate.createFromTemplate(df, targetName);
5.25 + if ("Page.jsp".equals(template.getNameExt())) { // NOI18N
5.26 + HashMap<String, String> templateParameters = new HashMap<String, String>();
5.27 + FileObject webDocbase = JsfProjectUtils.getDocumentRoot(project);
5.28 + String folder;
5.29 + if (dir == webDocbase) {
5.30 + folder = "";
5.31 + } else {
5.32 + folder = FileUtil.getRelativePath(webDocbase, dir);
5.33 + if (folder == null) {
5.34 + folder = "";
5.35 + } else {
5.36 + folder = folder.replace('/', '$') + "$";
5.37 + }
5.38 + }
5.39 + templateParameters.put("folder", folder); //NOI18N
5.40 +
5.41 + obj = dTemplate.createFromTemplate(df, targetName, templateParameters);
5.42 + } else {
5.43 + obj = dTemplate.createFromTemplate(df, targetName);
5.44 + }
5.45 }
5.46 } catch(org.netbeans.modules.visualweb.project.jsf.api.JsfDataObjectException jsfe) {
5.47 DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(