protected void initView() {
		this.add(new TooltipAction("Step", "Moves existing valid "
				+ "configurations to the next " + "configurations.") {
			public void actionPerformed(ActionEvent e) {
				controller.step(blockStep);
			}
		});

		this.add(new TooltipAction("Reset", "Resets the simulation to "
				+ "start conditions.") {
			public void actionPerformed(ActionEvent e) {
				controller.reset();
			}
		});

        /*
         * Add Focus and Defocus buttons only if it is a Turing machine.
         */
        if(controller.isTuringMachine()) {
    		this.add(new AbstractAction("Focus") {
    			public void actionPerformed(ActionEvent e) {
    				controller.focus();
    			}
    		});
    
    		this.add(new AbstractAction("Defocus") {
    			public void actionPerformed(ActionEvent e) {
    				controller.defocus();
    			}
    		});
        }
		this.add(new AbstractAction("Freeze") {
			public void actionPerformed(ActionEvent e) {
				controller.freeze();
			}
		});

		this.add(new AbstractAction("Thaw") {
			public void actionPerformed(ActionEvent e) {
				controller.thaw();
			}
		});

		this.add(new AbstractAction("Trace") {
			public void actionPerformed(ActionEvent e) {
				controller.trace();
			}
		});

		this.add(new AbstractAction("Remove") {
			public void actionPerformed(ActionEvent e) {
				controller.remove();
			}
		});
	}