package com.buglabs.app.bugdash2.controller.hardware; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.buglabs.app.bugdash2.Activator; import com.buglabs.app.bugdash2.controller.ApplicationController; import com.buglabs.bug.dragonfly.module.IModuleControl; import com.buglabs.bug.dragonfly.module.IModuleProperty; import com.buglabs.bug.dragonfly.module.MutableModuleProperty; import com.buglabs.osgi.sewing.pub.util.RequestParameters; import freemarker.template.SimpleHash; import freemarker.template.SimpleList; import freemarker.template.TemplateModelRoot; public class BUGmodulePropertiesController extends ApplicationController { public String getTemplateName() { return "hardware_bugmodule_properties.fml"; } public TemplateModelRoot get(RequestParameters params, HttpServletRequest req, HttpServletResponse resp) { int slot = Integer.valueOf(params.get("slot")).intValue(); // retrieve slot IModuleControl mc = Activator.getModule(slot); // retrieve module SimpleHash root = new SimpleHash(); root.put("slot", slot); root.put("module_name", mc.getModuleName()); root.put("properties_list", getPropertiesList(mc)); return root; } public TemplateModelRoot post(RequestParameters params, HttpServletRequest req, HttpServletResponse resp) { int slot = Integer.valueOf(params.get("slot")).intValue(); // retrieve slot IModuleControl mc = Activator.getModule(slot); // retrieve module String[] names = params.get("name").split(","); if (names == null) System.out.println("names[] == null"); else for (int i=0; i<names.length; i++) System.out.println("names["+i+"]:"+names[i]); String[] types = params.get("type").split(","); if (types == null) System.out.println("types[] == null"); else for (int i=0; i<types.length; i++) System.out.println("types["+i+"]:"+types[i]); if (names != null) { for (int i=0 ; i<names.length; i++) { System.out.println("setting property..."); System.out.println("i:" + i + " | name:" + names[i] + " | value:" + params.get(names[i]) + " | type:" + types[i]); mc.setModuleProperty( new MutableModuleProperty( names[i], params.get(names[i])) ); System.out.println("property set"); } } SimpleHash root = new SimpleHash(); root.put("slot", slot); root.put("module_name", mc.getModuleName()); root.put("properties_list", getPropertiesList(mc)); return root; } private SimpleList getPropertiesList(IModuleControl mc) { SimpleList properties_list = new SimpleList(); for (Iterator i = mc.getModuleProperties().iterator(); i.hasNext();) { IModuleProperty prop = (IModuleProperty) i.next(); SimpleHash propHash = new SimpleHash(); propHash.put("name", prop.getName()); if (prop.getValue() != null) { propHash.put("value", prop.getValue().toString()); } else { propHash.put("value", "null"); } propHash.put("type", prop.getType()); propHash.put("isMutable", prop.isMutable()); properties_list.add(propHash); } return properties_list; } }