/// <summary>
		/// Handles the event produced when a new node is going to be processed
		/// by the controller.
		/// </summary>
		/// <param name="sender">
		/// A <see cref="System.Object"/>
		/// </param>
		/// <param name="args">
		/// A <see cref="EventArgs"/>
		/// </param>
		private void OnControllerNodeBeingProcessed(object sender, 
		                                            NodeBeingProcessedArgs args)
		{
			Application.Invoke(delegate(object resender, EventArgs a)
			{
				if(controller.StepMode != ControllerStepMode.UntilEnd)
					alignNextButtons.Sensitive=true;
			});
		}
		/// <summary>
		/// If sequencing, selects the next symbol of the list.
		/// </summary>
		/// <param name="sender">
		/// A <see cref="System.Object"/>
		/// </param>
		/// <param name="args">
		/// A <see cref="EventArgas"/>
		/// </param>
		private void OnControllerNodeBeingProcessed(object sender, 
		                                            NodeBeingProcessedArgs _args)
		{
			Application.Invoke(sender, _args, 
			                   delegate(object resender, EventArgs args)
			{
				NodeBeingProcessedArgs a =  args as NodeBeingProcessedArgs;
			
				if(!sequencingFinished)
				{
					// We are sequencing.	
					
					// Selects the new first.			
					symbolsIV.SelectPath(processedPath);
					symbolsIV.ScrollToPath(processedPath,1,0.5f);
					processedPath.Next();
					
				}
				else
				{
					// We are matching
					SequenceNode node = (SequenceNode) a.Node;
					
					node.Select();
					
					Token t = Token.Join(node.Sequence, "");
					
					sequenceNodeImage = t.Image.CreatePixbuf();
					
					sequenceMatchingImageArea.Image = sequenceNodeImage.Copy();
					
					sequenceNodeImage = 
						sequenceNodeImage.CompositeColorSimple(sequenceNodeImage.Width,
						                                    sequenceNodeImage.Height,
						                                    Gdk.InterpType.Nearest, 
						                                    100, 1,  
						                                    0xAAAAAA,0xAAAAAA);
					
					matchingResultLbl.Markup = "-";
					
					tokenizingRulesTV.Selection.UnselectAll();
					
					tokenizingRulesTV.ScrollToPoint(0,0);
					
					
					if(controller.StepMode == ControllerStepMode.StepByStep)
					{
						tokenizingNextButtonsAlign.Sensitive = true;
					}
				}
			});
		}