public EnergyVisualizer(MDModel m) {

		model = m;

		String s = MDView.getInternationalText("Energy");
		String s1 = MDView.getInternationalText("TimeInFemtoseconds");
		cg = new CurveGroup(s != null ? s : "Energies", new AxisLabel(s1 != null ? s1 : "Time (fs)"), new AxisLabel(
				(s != null ? s : "Energies") + " (eV)"));

		setPreferredSize(new Dimension(600, 350));
		setLayout(new BorderLayout());

		format = NumberFormat.getNumberInstance();
		format.setMaximumFractionDigits(4);

		grapher = new XYGrapher();
		grapher.addSnapshotListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				model.notifyPageComponentListeners(new PageComponentEvent(grapher.getGraph(),
						PageComponentEvent.SNAPSHOT_TAKEN));
			}
		});
		add(grapher, BorderLayout.CENTER);

		tf = new JLabel[3];

		JPanel p = new JPanel(new GridLayout(2, 4));
		p.setBorder(new LineBorder(Color.blue, 4));

		p.add(new JLabel(s1 != null ? s1 : "Time (fs)"));
		s = MDView.getInternationalText("KineticEnergyPerParticle");
		p.add(new JLabel(s != null ? s : model.getKinTS().getName()));
		s = MDView.getInternationalText("PotentialEnergyPerParticle");
		p.add(new JLabel(s != null ? s : model.getPotTS().getName()));
		s = MDView.getInternationalText("TotalEnergyPerParticle");
		p.add(new JLabel(s != null ? s : model.getTotTS().getName()));

		timeField = new JLabel("Unknown");
		p.add(timeField);

		for (int i = 0; i < 3; i++) {
			tf[i] = new JLabel("Unknown");
			p.add(tf[i]);
		}

		add(p, BorderLayout.SOUTH);

	}