diff -r 33230518a44f templatesui/nbproject/project.xml
--- a/templatesui/nbproject/project.xml Tue Jan 13 14:01:59 2015 +0000
+++ b/templatesui/nbproject/project.xml Mon Jan 19 08:26:41 2015 +0100
@@ -62,6 +62,24 @@
+ org.netbeans.modules.java.project.ui
+
+
+
+ 1
+ 1.64
+
+
+
+ org.netbeans.modules.projectapi
+
+
+
+ 1
+ 1.63
+
+
+
org.openide.dialogs
diff -r 33230518a44f templatesui/src/org/netbeans/modules/templatesui/AbstractWizard.java
--- a/templatesui/src/org/netbeans/modules/templatesui/AbstractWizard.java Tue Jan 13 14:01:59 2015 +0000
+++ b/templatesui/src/org/netbeans/modules/templatesui/AbstractWizard.java Mon Jan 19 08:26:41 2015 +0100
@@ -47,6 +47,7 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
@@ -69,11 +70,15 @@
import net.java.html.boot.fx.FXBrowsers;
import net.java.html.js.JavaScriptBody;
import net.java.html.json.Models;
+import org.netbeans.api.project.Project;
+import org.netbeans.api.project.ProjectUtils;
+import org.netbeans.api.project.SourceGroup;
+import org.netbeans.api.project.Sources;
+import org.netbeans.spi.java.project.support.ui.templates.JavaTemplates;
import org.openide.WizardDescriptor;
import org.openide.WizardValidationException;
import org.openide.loaders.DataObject;
import org.openide.loaders.TemplateWizard;
-import org.openide.util.Exceptions;
import org.openide.util.Lookup;
import org.openide.util.NbBundle;
@@ -154,9 +159,19 @@
cnt = 1;
}
for (int i = 0; i < cnt; i++) {
- if (steps.size() > i && "targetChooser".equals(steps.get(i))) { // NOI18N
- panels.add(wizard.targetChooser());
- continue;
+ if (steps.size() > i) {
+ final String panelName = steps.get(i);
+ if ("targetChooser".equals(panelName)) { // NOI18N
+ panels.add(wizard.targetChooser());
+ continue;
+ }
+ final String tcPrefix = "targetChooser:"; // NOI18N
+ if (panelName != null && panelName.startsWith(tcPrefix)) {
+ Project p = (Project) wizard.getProperty("project"); // NOI18N
+ WizardDescriptor.Panel panel = aw.getChooser(p, panelName.substring(tcPrefix.length()));
+ panels.add(panel);
+ continue;
+ }
}
final HTMLPanel p = new HTMLPanel(i, aw);
panels.add(p);
@@ -549,4 +564,20 @@
@JavaScriptBody(args = { "raw" }, body = "ko.applyBindings(raw);")
static native void applyBindings(Object raw);
+
+ Map> choosers;
+ WizardDescriptor.Panel getChooser(Project p, String type) {
+ if (choosers == null) {
+ choosers = new HashMap<>();
+ }
+ WizardDescriptor.Panel panel = choosers.get(type);
+
+ if (panel == null) {
+ Sources src = ProjectUtils.getSources(p);
+ SourceGroup[] groups = src.getSourceGroups(type);
+ panel = JavaTemplates.createPackageChooser(p, groups);
+ choosers.put(type, panel);
+ }
+ return panel;
+ }
}