package org.molgenis.knowledgecenter; import java.util.ArrayList; import java.util.List; import knowledgecenter.KcPage; import org.molgenis.framework.db.Database; import org.molgenis.framework.ui.EasyPluginController; import org.molgenis.framework.ui.FreemarkerView; import org.molgenis.framework.ui.ScreenController; import org.molgenis.framework.ui.ScreenView; import org.molgenis.util.Tuple; public class Wireframe extends EasyPluginController<Wireframe> { KcPage currentPage; List<KcPage> about = new ArrayList<KcPage>(); List<KcPage> projects = new ArrayList<KcPage>(); List<KcPage> outputs = new ArrayList<KcPage>(); List<KcPage> news = new ArrayList<KcPage>(); public enum Layout { NEWS }; public Wireframe(String name, ScreenController<?> parent) { super(name, parent); this.setModel(this); // you can create a seperate class as 'model'. } // what is shown to the user public ScreenView getView() { return new FreemarkerView("Wireframe.ftl", this); } public void show(Database db, Tuple request) { } @Override public void reload(Database db) throws Exception { // get page if missing currentPage = null; if (currentPage == null) { if (db.count(KcPage.class) > 0) { currentPage = db.query(KcPage.class).limit(1).find().get(0); } } // load related pages about.clear(); projects.clear(); outputs.clear(); news.clear(); for (KcPage p : db.query(KcPage.class).in(KcPage.ID, currentPage.getRelated_Id()).find()) { // map to right box if ("about".equals(p.getPageType())) about.add(p); else if ("project".equals(p.getPageType())) { projects.add(p); } else if ("news".equals(p.getPageType())) { news.add(p); } else { outputs.add(p); } } } public KcPage getPage() { return currentPage; } public List<KcPage> getAbout() { return about; } @Override public String getCustomHtmlHeaders() { return " <link href=\"bootstrap/css/bootstrap.min.css\" rel=\"stylesheet\">"; } public KcPage getCurrentPage() { return currentPage; } public void setCurrentPage(KcPage currentPage) { this.currentPage = currentPage; } public List<KcPage> getProjects() { return projects; } public void setProjects(List<KcPage> projects) { this.projects = projects; } public List<KcPage> getOutputs() { return outputs; } public void setOutputs(List<KcPage> outputs) { this.outputs = outputs; } public List<KcPage> getNews() { return news; } public void setNews(List<KcPage> news) { this.news = news; } public void setAbout(List<KcPage> about) { this.about = about; } }