00001 /* 00002 * PlotterManager.java 00003 * 00004 * Created on 03 November 2003, 16:02 00005 */ 00006 00007 package TestGUI.plotter.jasimp; 00008 00009 import TestGUI.plotter.Plotter; 00010 import java.util.*; 00011 import javax.swing.JPanel; 00012 import java.awt.BorderLayout; 00013 import hep.aida.*; 00014 import hep.aida.ref.plotter.PlotterUtilities; 00015 import SctData.*; 00016 00021 public class PlotterManager extends TestGUI.plotter.PlotterManager { 00022 00024 public static PlotterManager instance() { 00025 if (instance == null) instance = new PlotterManager(); 00026 return instance; 00027 } 00028 00029 public JPanel getPlotPanel() { 00030 if (panel == null) { 00031 panel = new JPanel(); 00032 00033 // Now embed the plotter 00034 panel.add(PlotterUtilities.componentForPlotter(getIPlotter()), BorderLayout.CENTER); 00035 } 00036 00037 return panel; 00038 } 00039 00040 public Plotter getPlotter(Class c) { 00041 return (Plotter)map.get(c); 00042 } 00043 00044 public void setPlotter(Class c, Plotter p) { 00045 map.put(c, p); 00046 } 00047 00048 public void plot(Object ob) { 00049 getIPlotter().clearRegions(); 00050 getPlotter(ob.getClass()).plot(ob, this); 00051 } 00052 00053 public IPlotter getIPlotter() { 00054 if (iplotter == null) { 00055 IAnalysisFactory af = IAnalysisFactory.create(); 00056 ITree tree = af.createTreeFactory().create(); 00057 00058 // Create an IPlotter 00059 iplotter = af.createPlotterFactory().create(); 00060 } 00061 00062 return iplotter; 00063 } 00064 00066 private PlotterManager() { 00067 //Add everything to the map 00068 setPlotter(RawScanResult.class, new RawScanResultPlotter()); 00069 } 00070 00071 00072 private JPanel panel; 00073 private IPlotter iplotter; 00074 private HashMap map = new HashMap(); 00075 private static PlotterManager instance; 00076 }