/////////////////////////////////////////////////////////////////////////////// // 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(); } } }
/////////////////////////////////////////////////////////////////////////////// // 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(); }
/// <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(); }
/// <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); } }
/////////////////////////////////////////////////////////////////////////////// // 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(); }
/// <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(); } } }