00001
00002
00003
00004
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
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
00059 iplotter = af.createPlotterFactory().create();
00060 }
00061
00062 return iplotter;
00063 }
00064
00066 private PlotterManager() {
00067
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 }