public void show(View view) {
		this.view = view;

		JFrame annotationWindow = new JFrame("Data Annotations");
		JLabel annotationHeading = new JLabel();
		annotationHeading.setFont(new Font("Monospaced", Font.PLAIN, 20));
		annotationHeading.setBorder(new EmptyBorder(5, 5, 0, 5));
		annotations = new AnnotationPanel(annotationWindow, annotationHeading, view.colorScheme());
		annotationWindow.setLayout(new BorderLayout());
		annotationWindow.add(annotations, BorderLayout.CENTER);
		annotationWindow.add(annotationHeading, BorderLayout.NORTH);

		buttonPrev.setColorScheme(view.colorScheme());
		buttonPlay.setColorScheme(view.colorScheme());
		buttonNext.setColorScheme(view.colorScheme());
		buttonKey.setColorScheme(view.colorScheme());
		buttonReset.setColorScheme(view.colorScheme());

		buttonPrev.addActionListener(this);
		buttonNext.addActionListener(this);
		buttonPlay.addActionListener(this);
		buttonReset.addActionListener(this);
		buttonKey.addActionListener(this);

		setTitle("Vitro Simulation Host");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		setLayout(new BorderLayout());
		panel = new HostPanel(view);
		add(panel, BorderLayout.CENTER);

		JPanel buttons = new JPanel();
		FlowLayout layout = new FlowLayout();
		layout.setAlignOnBaseline(true); 
		buttons.setLayout(layout);
		buttons.add(buttonReset);
		buttons.add(buttonPrev);
		buttons.add(buttonPlay);
		buttons.add(buttonNext);
		buttons.add(buttonKey);
		
		buttons.setBackground(view.colorScheme().background);

		if (dockedController) {
			add(buttons, BorderLayout.SOUTH);
		}
		else {
			JFrame frame = new JFrame("Controller");
			frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
			frame.add(buttons);
			frame.pack();
			frame.setResizable(false);
			frame.setVisible(true);
		}

		setResizable(false);
		pack();
		setVisible(true);

		while(true) {
			buttonPrev.setEnabled(view.controller().hasPrev());
			buttonNext.setEnabled(view.controller().hasNext());
			buttonPlay.setEnabled(view.controller().hasNext());
			if (wait) { buttonPlay.setIcon(MediaButton.PLAY);  }
			else      { buttonPlay.setIcon(MediaButton.PAUSE); }
			repaint();

			if (!wait) {
				view.tick(.1);
			}

			for(Annotation a : view.controller().annotations().keySet()) {
				if (a instanceof DataAnnotation) {
					annotations.setAnnotation((DataAnnotation)a);
				}
			}

			if (!view.controller().hasNext()) {
				setTitle("Vitro Simulation Host (Completed)");
				wait = true;
			}

			try { Thread.sleep(10); }
			catch(InterruptedException ie) {}
		}
	}