Example #1
0
        ///////////////////////////////////////////////////////////////////////////////
        // Public methods                                                            //
        ///////////////////////////////////////////////////////////////////////////////
        #region PUBLICMETHODS

        /// <summary>
        /// Opens a file dialog to choose the ogamas export file that
        /// should be imported into the programs database.
        /// </summary>
        public static void Start()
        {
            try
            {
                asciiSettings = new ASCIISettings();

                if (asciiSettings.FileDialog.ShowDialog() == DialogResult.OK)
                {
                    // Save filename
                    string filename = asciiSettings.FileDialog.FileName;

                    // Save import file
                    asciiSettings.Filename = filename;

                    NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat;

                    // Set locale separator character
                    asciiSettings.DecimalSeparatorCharacter = nfi.NumberDecimalSeparator.ToCharArray()[0];

                    // Show import splash window
                    asciiSettings.WaitingSplash.RunWorkerAsync();

                    // Give some time to show the splash ...
                    Application.DoEvents();

                    // Generate the import tables
                    GenerateSubjectTrialRawdataList();

                    // Save the import into ogamas database and the mdf file.
                    var successful = SaveImportIntoTablesAndDB();

                    // Import has finished.
                    asciiSettings.WaitingSplash.CancelAsync();

                    // Inform user about success.
                    if (successful)
                    {
                        ExceptionMethods.ProcessMessage("Success", "Import data successfully written to database.");
                    }
                    else
                    {
                        string message = "Import had errors. Some or all of the import data " +
                                         "could not be written the database.";
                        ExceptionMethods.ProcessErrorMessage(message);
                    }
                }
            }
            catch (Exception ex)
            {
                string message = "Something failed during import." + Environment.NewLine
                                 + "Please try again with other settings. " + Environment.NewLine +
                                 "Error: " + ex.Message;
                ExceptionMethods.ProcessErrorMessage(message);

                if (asciiSettings.WaitingSplash.IsBusy)
                {
                    asciiSettings.WaitingSplash.CancelAsync();
                }
            }
        }
Example #2
0
        ///////////////////////////////////////////////////////////////////////////////
        // Construction and Initializing methods                                     //
        ///////////////////////////////////////////////////////////////////////////////
        #region CONSTRUCTION

        /// <summary>
        /// Initializes static members of the ImportOgamaData class.
        /// </summary>
        static ImportOgamaData()
        {
            subjectList     = new List <SubjectsData>();
            trialList       = new List <TrialsData>();
            trialEventsList = new List <TrialEventsData>();
            rawDataList     = new List <RawData>();
            asciiSettings   = new ASCIISettings();
        }
Example #3
0
 /// <summary>
 ///   Initializes static members of the ImportFixations class.
 /// </summary>
 static ImportFixations()
 {
     SubjectList      = new List <SubjectsData>();
     TrialList        = new List <TrialsData>();
     FixationDataList = new List <FixationData>();
     detectionSetting = new DetectionSettings();
     asciiSetting     = new ASCIISettings();
 }
Example #4
0
        /// <summary>
        /// Reads an OGAMA import settings file.
        /// </summary>
        /// <param name="filePath">
        /// A <see cref="string"/> with the path to the
        ///   OGAMA import settings xml file.
        /// </param>
        private static void DeserializeSettings(string filePath)
        {
            try
            {
                using (var fs = new FileStream(filePath, FileMode.Open))
                {
                    // Create an instance of the XmlSerializer class;
                    // specify the type of object to be deserialized
                    var serializer = new XmlSerializer(typeof(MergedSettings));

                    /* Use the Deserialize method to restore the object's state with
                     * data from the XML document. */
                    var settings = (MergedSettings)serializer.Deserialize(fs);

                    asciiSetting     = settings.AsciiSetting;
                    detectionSetting = settings.DetectionSetting;
                }
            }
            catch (Exception ex)
            {
                ExceptionMethods.HandleException(ex);
            }
        }
Example #5
0
        ///////////////////////////////////////////////////////////////////////////////
        // Construction and Initializing methods                                     //
        ///////////////////////////////////////////////////////////////////////////////
        #region Constructors and Destructors

        /// <summary>
        ///   Initializes static members of the ImportAOI class.
        /// </summary>
        static ImportAOI()
        {
            AOIDataList   = new List <AOIData>();
            AOISettings   = new AOIDataSettings();
            asciiSettings = new ASCIISettings();
        }
Example #6
0
        /// <summary>
        ///   Starts a multiple dialog routine (fixations import assistant)
        ///   for reading fixation log files into OGAMAs database.
        /// </summary>
        public static void Start()//(MainForm mainWindow)
        {
            try
            {
                asciiSetting     = new ASCIISettings();
                detectionSetting = new DetectionSettings();

                var objfrmImportAssistent = new ImportFixationsAssistentDialog();
                if (objfrmImportAssistent.ShowDialog() == DialogResult.OK)
                {
OpenFile:
                    if (asciiSetting.FileDialog.ShowDialog() == DialogResult.OK)
                    {
                        // Save filename
                        string filename = asciiSetting.FileDialog.FileName;

                        // Ask the user to use a settings file
                        // and loads it into the importsettings, if true.
                        AskforUsingSettingsFile();

                        // Save import file
                        asciiSetting.Filename = filename;

                        // Set import mode
                        detectionSetting.ImportType = ImportTypes.Fixations;

                        var objfrmImportReadFile = new ImportParseFileDialog(ref asciiSetting);
ReadFile:
                        DialogResult resultRawData = objfrmImportReadFile.ShowDialog();
                        if (resultRawData == DialogResult.OK)
                        {
                            var objfrmImportFixationsAssignColumns = new ImportFixationsAssignColumnsDialog();

MakeAssignments:
                            DialogResult resultAssign = objfrmImportFixationsAssignColumns.ShowDialog();
                            if (resultAssign == DialogResult.OK)
                            {
                                var objfrmImportTrials = new ImportTrialsDialog(ref asciiSetting, ref detectionSetting);

                                //CheckTrials:
                                DialogResult resultTrials = objfrmImportTrials.ShowDialog();
                                if (resultTrials == DialogResult.OK)
                                {
                                    //var objfrmImportImages = new ImportImagesDialog(ref asciiSetting, ref detectionSetting);

                                    //DialogResult resultImages = objfrmImportImages.ShowDialog();
                                    //if (resultImages == DialogResult.OK)
                                    //{
                                    if (InformationDialog.Show(
                                            "Save ?",
                                            "Would you like to save the import settings ?",
                                            true,
                                            MessageBoxIcon.Question) == DialogResult.Yes)
                                    {
                                        SaveImportSettings();
                                    }

                                    // Inform user about deletion.
                                    string cleanupMessage = "If you continue the import process, " + Environment.NewLine + "all existing "
                                                            + "gaze fixation data is deleted before the imported fixations "
                                                            + "are written to the database.";
                                    if (MessageBox.Show(
                                            cleanupMessage,
                                            Application.ProductName,
                                            MessageBoxButtons.OKCancel,
                                            MessageBoxIcon.Information) == DialogResult.Cancel)
                                    {
                                        return;
                                    }

                                    // Show import splash window
                                    asciiSetting.WaitingSplash.RunWorkerAsync();

                                    // Give some time to show the splash ...
                                    Application.DoEvents();

                                    // Read log file again, but complete
                                    if (!GenerateOgamaFixationDataList(-1))
                                    {
                                        asciiSetting.WaitingSplash.CancelAsync();
                                        return;
                                    }

                                    // Generate the trials
                                    GenerateOgamaSubjectAndTrialList();

                                    // Save the import into ogamas database and the mdf file.
                                    var successful = SaveImportIntoTablesAndDB();

                                    //// Create slideshow trials
                                    //ImportRawData.GenerateOgamaSlideshowTrials(detectionSetting, mainWindow);

                                    // Import has finished.
                                    asciiSetting.WaitingSplash.CancelAsync();

                                    // Inform user about success.
                                    if (successful)
                                    {
                                        string message = "Fixation data successfully written to database.";// + Environment.NewLine +
                                        //"Please donĀ“t forget to move the stimuli images to the SlideResources subfolder" +
                                        //"of the experiment, otherwise no images will be shown.";
                                        ExceptionMethods.ProcessMessage("Success", message);
                                    }
                                    else
                                    {
                                        string message = "Import had errors. Some or all of the import data " +
                                                         "could not be written the database.";
                                        ExceptionMethods.ProcessErrorMessage(message);
                                    }
                                    //}
                                    //else if (resultImages == DialogResult.Cancel)
                                    //{
                                    //  goto CheckTrials;
                                    //}
                                }
                                else if (resultTrials == DialogResult.Cancel)
                                {
                                    goto MakeAssignments;
                                }
                                else if (resultTrials == DialogResult.Abort)
                                {
                                }
                            }
                            else if (resultAssign == DialogResult.Cancel)
                            {
                                goto ReadFile;
                            }
                        }
                        else if (resultRawData == DialogResult.Cancel)
                        {
                            goto OpenFile;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string message = "Something failed during import." + Environment.NewLine
                                 + "Please try again with other settings." + Environment.NewLine + "Error: " + ex.Message;
                ExceptionMethods.ProcessErrorMessage(message);

                if (asciiSetting.WaitingSplash.IsBusy)
                {
                    asciiSetting.WaitingSplash.CancelAsync();
                }
            }
        }