package com.buglabs.app.bugdash2.controller.software; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.buglabs.app.bugdash2.App; import com.buglabs.app.bugdash2.AppResultManager; import com.buglabs.app.bugdash2.controller.ApplicationController; import com.buglabs.osgi.sewing.pub.util.RequestParameters; import freemarker.template.SimpleHash; import freemarker.template.SimpleList; import freemarker.template.SimpleScalar; import freemarker.template.TemplateModelRoot; public class AppsRecommendedController extends ApplicationController { public static String FEATURED_TAG = "featured"; public List apps; public int currentPage = 1; // support just one page public String getTemplateName() { return "software_apps_recommended.fml"; } public TemplateModelRoot get(RequestParameters params, HttpServletRequest req, HttpServletResponse resp) { boolean connected = App.checkNetworkConnection(); SimpleList apps_list = new SimpleList(); apps = new ArrayList(); AppResultManager manager = new AppResultManager(); if (connected) { manager = App.lookupByTag(FEATURED_TAG, currentPage); apps = manager.getResults(); Iterator itr = apps.iterator(); Iterator itr_modules; int index = 1; String module_icons, module; App app; SimpleHash item; while(itr.hasNext()) { app = (App)itr.next(); item = new SimpleHash(); /* get a list of module icons */ module_icons = ""; itr_modules = app.getModules().iterator(); while (itr_modules.hasNext()) { module = itr_modules.next().toString(); module_icons += "<img src='" + App.getModuleIcon(module) + "' title='" + module + "' /> "; } item.put("index", index+((currentPage-1)*manager.getPageSize())); item.put("title", app.getTitle() ); item.put("author", app.getAuthor() ); item.put("downloads", app.getDownloads() ); item.put("description", app.getDescription() ); item.put("rating", app.getRating() ); item.put("url", app.getUrl() ); item.put("icon", app.getIcon() ); item.put("api_version", app.getApiVersion() ); item.put("category", app.getCategory()); item.put("maturity", app.getMaturity()); item.put("module_icons", module_icons); apps_list.add(item); index++; } } SimpleHash root = new SimpleHash(); root.put("apps_list", apps_list); root.put("apps_size", apps.size()); root.put("connected", new SimpleScalar(connected)); return root; } public TemplateModelRoot post(RequestParameters params, HttpServletRequest req, HttpServletResponse resp) { return null; } }