public ConvertPane(Grammar grammar, Automaton automaton,
			Map productionsToTransitions, Environment env) {
		this.grammar = grammar;
		this.automaton = automaton;

		this.setLayout(new BorderLayout());
		JSplitPane split = SplitPaneFactory.createSplit(env, true, .4, null,
				null);
		this.add(split, BorderLayout.CENTER);

		grammarViewer = new GrammarViewer(grammar);
		this.add(new TableTextSizeSlider(grammarViewer), BorderLayout.NORTH);
		JScrollPane scroller = new JScrollPane(grammarViewer);
		split.setLeftComponent(scroller);
		// Create the right view.

		automatonDrawer = new SelectionDrawer(automaton);
		EditorPane ep = new EditorPane(automatonDrawer, new ToolBox() {
			public java.util.List tools(AutomatonPane view,
					AutomatonDrawer drawer) {
				LinkedList tools = new LinkedList();
				tools.add(new ArrowNontransitionTool(view, drawer));
				tools.add(new TransitionTool(view, drawer));
				return tools;
			}
		});
		// Create the controller device.
		ConvertController controller = new ConvertController(grammarViewer,
				automatonDrawer, productionsToTransitions, this);
		controlPanel(ep.getToolBar(), controller);
		split.setRightComponent(ep);
		editorPane = ep;
	}