//package org.genedb.web.gui; // //import org.genedb.web.mvc.model.BerkeleyMapFactory; // //import org.springframework.beans.BeansException; //import org.springframework.beans.factory.annotation.Required; //import org.springframework.context.ApplicationContext; //import org.springframework.context.ApplicationContextAware; // //import java.awt.Font; //import java.util.Map; // //public class RenderedDiagramFactory implements ApplicationContextAware { // // private Font labelFont; // private BerkeleyMapFactory bmf; // private static RenderedDiagramFactory instance; // // public RenderedDiagram getRenderedDiagram(TrackedDiagram diagram) { // RenderedDiagram ret = null; // if (diagram instanceof ContextMapDiagram) { // ret = new RenderedContextMap((ContextMapDiagram)diagram); // ret.setLabelFont(labelFont); // ret.setBerkelyMapFactory(bmf); // return ret; // } // // if (diagram instanceof ProteinMapDiagram) { // ret = new RenderedProteinMap((ProteinMapDiagram)diagram); // ret.setLabelFont(labelFont); // ret.setBerkelyMapFactory(bmf); // return ret; // } // // throw new RuntimeException("Unable to find a renderer for diagram '"+diagram+"'"); // } // // public static RenderedDiagramFactory getInstance() { // return instance; // } // // @SuppressWarnings("unchecked") // @Override // public void setApplicationContext(ApplicationContext appContext) // throws BeansException { // Map map = appContext.getBeansOfType(RenderedDiagramFactory.class); // if (map.isEmpty()) { // throw new RuntimeException("Unable to set singleton instance of RenderedDiagramFactory - see Javadocs"); // } // RenderedDiagramFactory.instance = (RenderedDiagramFactory) map.values().iterator().next(); // } // // @Required // public void setLabelFont(Font labelFont) { // this.labelFont = labelFont; // } // // public void setBerkeleyMapFactory(BerkeleyMapFactory bmf) { // this.bmf = bmf; // } // // // //}