public BlackboardStageWidget(MainRecognizerWindow parent)
			: base(parent)
		{
			Glade.XML gladeXml = new XML("mathtextrecognizer.glade",
			                             "unassistedStageWidgetBase");
			
			gladeXml.Autoconnect(this);
			
			gladeXml = new XML("mathtextrecognizer.glade",
			                   "blackboardMenu");
			
			gladeXml.Autoconnect(this);
			
			this.Add(unassistedStageWidgetBase);
			
			ocrController = new OCRController();
			ocrController.MessageLogSent += 
				new MessageLogSentHandler(OnControllerMessageLogSent);
			
			ocrController.ProcessFinished += 
				new EventHandler(OnOCRControllerProcessFinished);
			ocrController.NodeBeingProcessed += 
				new NodeBeingProcessedHandler(OnControllerStepDone);
					
			tokenizingController = new TokenizingController();
			tokenizingController.MessageLogSent += 
				new MessageLogSentHandler(OnControllerMessageLogSent);
			tokenizingController.ProcessFinished += 
				new EventHandler(OnTokenizingControllerProcessFinished);
			tokenizingController.NodeBeingProcessed += 
				new NodeBeingProcessedHandler(OnControllerStepDone);
			
			parsingController = new ParsingController();
			parsingController.MessageLogSent += 
				new MessageLogSentHandler(OnControllerMessageLogSent);
			parsingController.Matching += 
				new MatchingHandler(OnControllerStepDone);
			
			parsingController.ProcessFinished +=
				new EventHandler(OnParsingControllerProcessFinished);
			
			InitializeWidgets();
			
			tokenizingFinished = false;
			
			this.ShowAll();
		}
		/// <summary>
		/// <c>TokenizingStageWidget</c>'s constructor.
		/// </summary>
		/// <param name="parent">
		/// A <see cref="Window"/>
		/// </param>
		public TokenizingStageWidget(MainRecognizerWindow parent) : base(parent)
		{
			XML gladeXml = new XML(null,
			                       "mathtextrecognizer.glade" ,
			                       "tokenizingStageWidgetBase", 
			                       null);
			
			gladeXml.Autoconnect(this);
			
			gladeXml = new XML(null, 
			                   "mathtextrecognizer.glade",
			                   "sequenceNodeMenu", 
			                   null);
			
			gladeXml.Autoconnect(this);
			
			controller = new TokenizingController();
			controller.SequenceAdded+= 
				new SequenceAddedHandler(OnControllerSequenceAdded);
			
			controller.TokenChecked+= 
				new TokenCheckedHandler(OnControllerTokenChecked);
			
			controller.NodeBeingProcessed+=
				new NodeBeingProcessedHandler(OnControllerNodeBeingProcessed);
			
			controller.StepDone += OnControllerStepDone;
			
			controller.MessageLogSent+=
				new MessageLogSentHandler(OnControllerMessageLogSent);
			
			controller.ProcessFinished += OnControllerProcessFinished;
			controller.SequenceBeingMatched +=
				new SequenceBeingMatchedHandler(OnControllerSequenceBeingMatched);
			
			controller.MatchingFailed += OnControllerMatchingFailed;
			
			
		
			
			InitializeWidgets();
			
			this.ShowAll();
		}