org.symbian.tools.mtw.ui/src/org/symbian/tools/tmw/internal/ui/project/ProjectTemplateManagerImpl.java
changeset 464 0b02f3d6f52c
parent 463 aea4c83725d8
--- 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;
+    }
 }