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