public override void SetInitialData()
 {
     if (MainRecognizerWindow.LoadImage())
     {
         this.SetInitialImage(MainRecognizerWindow.ImageFile);
     }
 }
        public OCRStageWidget(MainRecognizerWindow window)
            : base(window)
        {
            Glade.XML gxml = new Glade.XML("mathtextrecognizer.glade",
                                           "ocrStageWidgetBase");

            gxml.Autoconnect(this);

            this.Add(ocrStageWidgetBase);


            // We load the contextual menu.
            gxml = new Glade.XML("mathtextrecognizer.glade",
                                 "segmentedNodeMenu");

            gxml.Autoconnect(this);


            controller = new OCRController();

            // Asignamos los eventos que indican que se han alcanzado hitos
            // en el reconocimiento de un cáracter.
            controller.MessageLogSent +=
                new MessageLogSentHandler(OnControllerMessageLogSent);

            controller.NodeBeingProcessed +=
                new NodeBeingProcessedHandler(OnControllerNodeBeingProcessed);

            controller.ProcessFinished += OnControllerProcessFinished;

            controller.BitmapProcessedByDatabase +=
                new BitmapProcessedHandler(OnControllerBitmapProcessedByDatabase);

            InitializeWidgets();
        }
Beispiel #3
0
        /// <summary>
        /// Checks if the tokeninzing result is correct, and if so, advances
        /// to the next
        /// </summary>
        /// <param name="sender">
        /// A <see cref="System.Object"/>
        /// </param>
        /// <param name="arg">
        /// A <see cref="EventArgs"/>
        /// </param>
        private void OnNextStageBtnClicked(object sender, EventArgs arg)
        {
            List <string> errors = new List <string>();

            foreach (SequenceNode rootNode in sequencesModel)
            {
                errors.AddRange(CheckNodeErrors(rootNode));
            }

            if (errors.Count > 0)
            {
                // There were errors.
                string errorss = String.Join("\n", errors.ToArray());

                OkDialog.Show(this.MainRecognizerWindow.Window,
                              MessageType.Info,
                              "Para continuar a la siguente fase de procesado, debes solucionar los siguentes problemas:\n\n{0}",
                              errorss);
            }
            else
            {
                MainRecognizerWindow.CreateParsingWidget();
                this.NextStage();
            }
        }
        private void OnControllerMessageLogSent(object sender, MessageLogSentArgs _args)
        {
            Application.Invoke(sender, _args,
                               delegate(object resender, EventArgs a)
            {
                MessageLogSentArgs args = a as MessageLogSentArgs;

                MainRecognizerWindow.Log(args.Message);
            });
        }
		public InitialStageWidget(MainRecognizerWindow window)
			: base(window)
		{
			Glade.XML gladeXml = new XML("mathtextrecognizer.glade",
			                             "initialStageWidgetBase");
			
			gladeXml.Autoconnect(this);
			
			
			this.Add(initialStageWidgetBase);
			
			//blackboardModeBtn.NoShowAll = true;
			
			blackboardImage.Pixbuf = 
				ImageResources.LoadPixbuf("edu_miscellaneous32");
		}
        public InitialStageWidget(MainRecognizerWindow window)
            : base(window)
        {
            Glade.XML gladeXml = new XML("mathtextrecognizer.glade",
                                         "initialStageWidgetBase");

            gladeXml.Autoconnect(this);


            this.Add(initialStageWidgetBase);

            //blackboardModeBtn.NoShowAll = true;

            blackboardImage.Pixbuf =
                ImageResources.LoadPixbuf("edu_miscellaneous32");
        }
        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();
        }
Beispiel #8
0
        /// <summary>
        /// Constructor de <code>OutputWindow</code>.
        /// </summary>
        /// <param name="rootBitmap">
        /// El <code>MathTextBitmap</code> reconocido para generar la salida a partir de el.
        /// </param>
        public OutputDialog(MainRecognizerWindow parent,
                            string output,
                            Gdk.Pixbuf originalImage)
        {
            Glade.XML gxml = new Glade.XML("mathtextrecognizer.glade",
                                           "outputDialog");

            gxml.Autoconnect(this);

            this.output = output;

            this.outputDialog.TransientFor = parent.Window;
            mainWindow = parent;

            InitializeWidgets();

            originalImageArea.Image = originalImage;
        }
		/// <summary>
		/// Constructor de <code>OutputWindow</code>.
		/// </summary>
		/// <param name="rootBitmap">
		/// El <code>MathTextBitmap</code> reconocido para generar la salida a partir de el.
		/// </param>
		public OutputDialog(MainRecognizerWindow parent, 
		                    string output,
		                    Gdk.Pixbuf originalImage)
		{
			Glade.XML gxml = new Glade.XML ("mathtextrecognizer.glade",
			                                "outputDialog");
			
			gxml.Autoconnect (this);			
			
			this.output = output;
			
			this.outputDialog.TransientFor = parent.Window;
			mainWindow = parent;
			
			InitializeWidgets();
			
			originalImageArea.Image = originalImage;
			
		}
        /// <summary>
        /// <see cref="ParsingStageWidget"/>'s constructor.
        /// </summary>
        /// <param name="window">
        /// The <see cref="MainRecognizerWindow"/> that contains the widget.
        /// </param>
        public ParsingStageWidget(MainRecognizerWindow window) : base(window)
        {
            Glade.XML gladeXml = new XML("mathtextrecognizer.glade",
                                         "parsingStageBaseWidget");

            gladeXml.Autoconnect(this);

            this.Add(parsingStageBaseWidget);



            InitializeWidgets();

            controller = new ParsingController();
            controller.MessageLogSent +=
                new MessageLogSentHandler(OnControllerMessageLogSent);

            controller.ProcessFinished += OnControllerProcessFinishedHandler;

            controller.Matching +=
                new MatchingHandler(OnControllerMatching);

            controller.MatchingFinished +=
                new MatchingFinishedHandler(OnControllerMatchingFinished);

            controller.StepDone +=
                new EventHandler(OnControllerStepDone);

            controller.TokenMatching +=
                new TokenMatchingHandler(OnControllerTokenMatching);

            controller.TokenMatchingFinished +=
                new TokenMatchingFinishedHandler(OnControllerTokenMatchingFinished);

            controller.RuleSequenceRestored +=
                new SequenceSetHandler(OnControllerSequenceRestored);

            controller.RelatedSequenceSet +=
                new SequenceSetHandler(OnControllerRelatedSequenceSet);


            this.ShowAll();
        }
Beispiel #11
0
        /// <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();
        }
		public UnassistedStageWidget(MainRecognizerWindow parent)
			: base(parent)
		{
			Glade.XML gladeXml = new XML("mathtextrecognizer.glade",
			                             "unassistedStageWidgetBase");
			
			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>
        /// Handles the click on the "go to tokenizer" button.
        /// </summary>
        /// <param name="sender">
        /// A <see cref="System.Object"/>
        /// </param>
        /// <param name="arg">
        /// A <see cref="EventArgs"/>
        /// </param>
        private void OnGoToTokenizerBtnClicked(object sender, EventArgs arg)
        {
            // We have to check the leaf nodes for problems.

            SegmentedNode analizedNode = rootNode;
            List <string> errors       = CheckErrors();

            if (errors.Count == 0)
            {
                MainRecognizerWindow.CreateTokenizingWidget();
                NextStage();
            }
            else
            {
                string errorss = String.Join("\n", errors.ToArray());
                OkDialog.Show(this.MainRecognizerWindow.Window,
                              MessageType.Info,
                              "Para continuar a la siguente fase de procesado,"
                              + "debes solucionar los siguentes problemas:\n\n{0}",
                              errorss);
            }
        }
		public OCRStageWidget(MainRecognizerWindow window)
			: base(window)
		{
			Glade.XML gxml = new Glade.XML("mathtextrecognizer.glade",
			                               "ocrStageWidgetBase");

			gxml.Autoconnect(this);
			
			this.Add(ocrStageWidgetBase);
			
			
			// We load the contextual menu.
			gxml = new Glade.XML("mathtextrecognizer.glade", 
			               "segmentedNodeMenu");
			
			gxml.Autoconnect(this);
			
			
			controller = new OCRController();
			
			// Asignamos los eventos que indican que se han alcanzado hitos
			// en el reconocimiento de un cáracter.
			controller.MessageLogSent += 
				new MessageLogSentHandler(OnControllerMessageLogSent);
			
			controller.NodeBeingProcessed += 
				new NodeBeingProcessedHandler(OnControllerNodeBeingProcessed);
			    		
			controller.ProcessFinished += OnControllerProcessFinished;
			    
			controller.BitmapProcessedByDatabase +=
			    new BitmapProcessedHandler(OnControllerBitmapProcessedByDatabase);
			
			InitializeWidgets();
		}
 private void OnBlackboardModeBtnClicked(object sender, EventArgs args)
 {
     MainRecognizerWindow.CreateBlackboardWidget();
     NextStage();
 }
 private void OnAutoModeBtnClicked(object sender, EventArgs args)
 {
     MainRecognizerWindow.CreateUnassistedWidget();
     NextStage();
 }
        private void OnEducationalModeBtnClicked(object sender, EventArgs args)
        {
            MainRecognizerWindow.CreateOCRWidget();

            NextStage();
        }
		/// <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();
		}
		/// <summary>
		/// <c>RecognizingStepWidget</c>'s constructor.
		/// </summary>
		/// <param name="window">
		/// The <c>MathTextRecognizer</c>'s main window instance.
		/// </param>
		public RecognizingStageWidget(MainRecognizerWindow window)
			: base(0.5f,0.5f,1.0f,1.0f)
		{
			this.mainWindow = window;
		}
 /// <summary>
 /// <c>RecognizingStepWidget</c>'s constructor.
 /// </summary>
 /// <param name="window">
 /// The <c>MathTextRecognizer</c>'s main window instance.
 /// </param>
 public RecognizingStageWidget(MainRecognizerWindow window)
     : base(0.5f, 0.5f, 1.0f, 1.0f)
 {
     this.mainWindow = window;
 }
		/// <summary>
		/// <see cref="ParsingStageWidget"/>'s constructor.
		/// </summary>
		/// <param name="window">
		/// The <see cref="MainRecognizerWindow"/> that contains the widget.
		/// </param>
		public ParsingStageWidget(MainRecognizerWindow window) : base(window)
		{
			Glade.XML gladeXml = new XML("mathtextrecognizer.glade",
			                             "parsingStageBaseWidget");
			
			gladeXml.Autoconnect(this);
			
			this.Add(parsingStageBaseWidget);
			
			
			
			InitializeWidgets();
			
			controller = new ParsingController();
			controller.MessageLogSent += 
				new MessageLogSentHandler(OnControllerMessageLogSent);
			
			controller.ProcessFinished += OnControllerProcessFinishedHandler;
			
			controller.Matching += 
				new MatchingHandler(OnControllerMatching);
			
			controller.MatchingFinished += 
				new MatchingFinishedHandler(OnControllerMatchingFinished);
			
			controller.StepDone += 
				new EventHandler(OnControllerStepDone);
			
			controller.TokenMatching +=
				new TokenMatchingHandler(OnControllerTokenMatching);
			
			controller.TokenMatchingFinished+=
				new TokenMatchingFinishedHandler(OnControllerTokenMatchingFinished);
			
			controller.RuleSequenceRestored += 
				new SequenceSetHandler(OnControllerSequenceRestored);
			
			controller.RelatedSequenceSet += 
				new SequenceSetHandler(OnControllerRelatedSequenceSet);
			
		
			this.ShowAll();
		}