// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.plugins.reports.ui; import de.neuland.jade4j.Jade4J; import graphtea.graph.ui.GHTMLPageComponent; import graphtea.platform.StaticUtils; import graphtea.platform.core.BlackBoard; import graphtea.platform.extension.ExtensionLoader; import graphtea.plugins.main.GraphData; import graphtea.plugins.reports.extension.GraphReportExtension; import graphtea.plugins.reports.extension.GraphReportExtensionHandler; import javax.swing.*; import java.awt.*; import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.Vector; /** * @author azin azadi */ public class ReportsUI { GraphData graphData; public HashMap<String, GraphReportExtension> reportByName = new HashMap<>(); public static ReportsUI self = null; public GHTMLPageComponent html; private final BlackBoard blackboard; public JPanel sidebar; public ReportsUI(BlackBoard b) { super(); self = this; this.blackboard = b; graphData = new GraphData(b); initComponents(); } private void initComponents() { sidebar = new JPanel(new BorderLayout(0, 0)); html = new GHTMLPageComponent(blackboard); html.setPreferredSize(new Dimension(400, 100)); sidebar.setPreferredSize(new Dimension(400, 100)); sidebar.add(html, BorderLayout.CENTER); } public void initTable() { String h = ""; HashMap<String, Object> model = new HashMap<>(); Vector<GraphReportExtension> reports = ExtensionLoader.extensionsList.get(GraphReportExtensionHandler.class); HashSet<String> categories = new HashSet<>(); HashMap<String, Vector<GraphReportExtension>> categoryLists = new HashMap<>(); for (GraphReportExtension report : reports) { String category = report.getCategory(); categories.add(category); if (!categoryLists.containsKey(category)){ categoryLists.put(category, new Vector<>()); } categoryLists.get(category).add(report); } model.put("reports", reports); model.put("categories", categories); model.put("categoryLists", categoryLists); try { h = Jade4J.render(getClass().getResource("sidebar.jade"), model); } catch (IOException e) { StaticUtils.addExceptionLog(e); } System.out.println(h); html.setHTML(h); } }