org.symbian.tools.mtw.ui/src/org/symbian/tools/tmw/internal/ui/project/ProjectTemplateManagerImpl.java
--- a/org.symbian.tools.mtw.ui/src/org/symbian/tools/tmw/internal/ui/project/ProjectTemplateManagerImpl.java Fri Aug 13 16:28:00 2010 -0700
+++ b/org.symbian.tools.mtw.ui/src/org/symbian/tools/tmw/internal/ui/project/ProjectTemplateManagerImpl.java Fri Aug 13 17:26:00 2010 -0700
@@ -19,9 +19,11 @@
package org.symbian.tools.tmw.internal.ui.project;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.TreeMap;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;
@@ -34,6 +36,7 @@
public class ProjectTemplateManagerImpl implements IProjectTemplateManager {
private Map<IMobileWebRuntime, ITemplateInstaller> emptyProjects;
+ private Map<IMobileWebRuntime, Map<String, String>> runtimeTemplateParameters;
private Map<IMobileWebRuntime, IProjectTemplate[]> templates;
public IProjectTemplate getDefaultTemplate(IMobileWebRuntime runtime) {
@@ -60,6 +63,7 @@
}
private Map<IMobileWebRuntime, IProjectTemplate[]> readExtensions() {
+ runtimeTemplateParameters = new HashMap<IMobileWebRuntime, Map<String, String>>();
emptyProjects = new HashMap<IMobileWebRuntime, ITemplateInstaller>();
final Map<IMobileWebRuntime, Collection<IProjectTemplate>> map = new HashMap<IMobileWebRuntime, Collection<IProjectTemplate>>();
final IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(
@@ -76,12 +80,23 @@
}
tmplts.add(template);
}
- } else if ("empty-project".equals(element.getName())) {
+ } else if ("runtime-template".equals(element.getName())) {
final String runtimeId = element.getAttribute("runtime-id");
final String runtimeVersion = element.getAttribute("version");
final IMobileWebRuntime runtime = TMWCore.getRuntimesManager().getRuntime(runtimeId, runtimeVersion);
if (runtime != null) {
- emptyProjects.put(runtime, CompoundInstaller.combine(emptyProjects.get(runtime), elements));
+ emptyProjects.put(runtime,
+ CompoundInstaller.combine(emptyProjects.get(runtime), element.getChildren()));
+ Map<String, String> params = runtimeTemplateParameters.get(runtime);
+ if (params == null) {
+ params = new TreeMap<String, String>();
+ runtimeTemplateParameters.put(runtime, params);
+ }
+ for (IConfigurationElement el : element.getChildren()) {
+ if ("default-parameter-value".equals(el.getName())) {
+ params.put(el.getAttribute("name"), el.getAttribute("value"));
+ }
+ }
}
}
}
@@ -93,4 +108,15 @@
}
return res;
}
+
+ public Map<String, String> getDefaultTemplateParameterValues(IMobileWebRuntime runtime) {
+ if (runtimeTemplateParameters == null) {
+ readExtensions();
+ }
+ Map<String, String> params = runtimeTemplateParameters.get(runtime);
+ if (params == null) {
+ return Collections.emptyMap();
+ }
+ return params;
+ }
}