public void transitionCreate(State from, State to) {
		// TODO Auto-generated method stub
		if (currentStep != TRANSITIONS_TO_TRAPSTATE) {
			outOfOrder();
			return;
		}
		if (!to.equals(myTrapState))
		{
			JOptionPane.showMessageDialog(frame,
					"You have to make transition to the trap state!", "Error",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
	/*	Transition t = new FSATransition(from, to, "");
		automaton.addTransition(t);
		frame.repaint();*/
	
		String terminal = JOptionPane.showInputDialog(frame, "Transition on what terminal?");
		if (terminal==null)
			return;
		if (terminal.length()>1)
		{
			JOptionPane.showMessageDialog(frame,
					"Terminal can only be a single letter", "Error",
					JOptionPane.ERROR_MESSAGE);
			return;
		}
		ArrayList <String> list=myNeededTransitionMap.get(from.getID());
		if (list.contains(terminal))
		{
			FSATransition t=new FSATransition(from, to, terminal);
			automaton.addTransition(t);
			frame.repaint();
			list.remove(terminal);
			myNeededTransitionMap.put(from.getID(), list);
			remaining--;
			if (remaining==0)
			{
				currentStep=FINISHED;
				nextStep();
				return;
			}
			detailStep
			.setText("Put transitions from all states to the trap state.   "+remaining+" transitions must be added");
			
			return;
		}
		else
		{
			if (!myReadSets.contains(terminal))
			{
				JOptionPane.showMessageDialog(frame,
					"Terminal "+terminal+" is not part of readable string in DFA", "Incorrect input",
					JOptionPane.ERROR_MESSAGE);
			}
			else
			{
				JOptionPane.showMessageDialog(frame,
						"There is already a transition using Terminal "+terminal+" from this state", "Incorrect input",
						JOptionPane.ERROR_MESSAGE);
			}
			return;
		}
	}