/// <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> /// <returns><strong>True</strong> if successful, /// otherwise <strong>null</strong>.</returns> private ASCIISettings Deserialize(string filePath) { try { ASCIISettings settings = new ASCIISettings(); using (FileStream fs = new FileStream(filePath, FileMode.Open)) { // Create an instance of the XmlSerializer class; // specify the type of object to be deserialized XmlSerializer serializer = new XmlSerializer(typeof(ASCIISettings)); //////* If the XML document has been altered with unknown //////nodes or attributes, handle them with the //////UnknownNode and UnknownAttribute events.*/ ////serializer.UnknownNode += new XmlNodeEventHandler(serializer_UnknownNode); ////serializer.UnknownAttribute += new XmlAttributeEventHandler(serializer_UnknownAttribute); /* Use the Deserialize method to restore the object's state with * data from the XML document. */ settings = (ASCIISettings)serializer.Deserialize(fs); } return(settings); } catch (Exception ex) { ExceptionMethods.HandleException(ex); } return(null); }
/// <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(); }
/////////////////////////////////////////////////////////////////////////////// // 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(); }
/////////////////////////////////////////////////////////////////////////////// // Construction and Initializing methods // /////////////////////////////////////////////////////////////////////////////// #region CONSTRUCTION /// <summary> /// Initializes a new instance of the ImportImagesDialog class. /// </summary> /// <param name="newAsciiSettings">Ref. The <see cref="ASCIISettings"/> to use.</param> /// <param name="newDetectionSettings">Ref. The <see cref="DetectionSettings"/> to use.</param> public ImportImagesDialog(ref ASCIISettings newAsciiSettings, ref DetectionSettings newDetectionSettings) { this.InitializeComponent(); this.numberOfImportLines = 20000; this.detectionSetting = newDetectionSettings; this.asciiSetting = newAsciiSettings; this.imagesImportRows = new List <string[]>(); this.imagefileColumnHeaders = new List <string>(); }
/////////////////////////////////////////////////////////////////////////////// // Construction and Initializing methods // /////////////////////////////////////////////////////////////////////////////// #region CONSTRUCTION /// <summary> /// Initializes a new instance of the ImportTrialsDialog class. /// </summary> /// <param name="newAsciiSettings">Ref. The <see cref="ASCIISettings"/> to use.</param> /// <param name="newDetectionSettings">Ref. The <see cref="DetectionSettings"/> to use.</param> public ImportTrialsDialog(ref ASCIISettings newAsciiSettings, ref DetectionSettings newDetectionSettings) { this.InitializeComponent(); this.numberOfImportLines = 20000; this.detectionSetting = newDetectionSettings; this.asciiSetting = newAsciiSettings; this.trialImportRows = new List <string[]>(); this.trialColumnHeaders = new List <string>(); this.cbbTimeUnit.SelectedIndex = 1; }
/// <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); } }
/// <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(); } } }
/////////////////////////////////////////////////////////////////////////////// // Construction and Initializing methods // /////////////////////////////////////////////////////////////////////////////// #region CONSTRUCTION /// <summary> /// Initializes a new instance of the ImportImagesDialog class. /// </summary> /// <param name="newAsciiSettings">Ref. The <see cref="ASCIISettings"/> to use.</param> /// <param name="newDetectionSettings">Ref. The <see cref="DetectionSettings"/> to use.</param> public ImportImagesDialog(ref ASCIISettings newAsciiSettings, ref DetectionSettings newDetectionSettings) { this.InitializeComponent(); this.numberOfImportLines = 20000; this.detectionSetting = newDetectionSettings; this.asciiSetting = newAsciiSettings; this.imagesImportRows = new List<string[]>(); this.imagefileColumnHeaders = new List<string>(); }
/////////////////////////////////////////////////////////////////////////////// // 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 Constructors and Destructors /// <summary> /// Initializes static members of the ImportRawData class. /// </summary> static ImportRawData() { SubjectList = new List<SubjectsData>(); TrialList = new List<TrialsData>(); RawDataList = new List<RawData>(); detectionSetting = new DetectionSettings(); asciiSetting = new ASCIISettings(); }
/////////////////////////////////////////////////////////////////////////////// // Construction and Initializing methods // /////////////////////////////////////////////////////////////////////////////// #region CONSTRUCTION /// <summary> /// Initializes a new instance of the ImportParseFileDialog class. /// </summary> /// <param name="importSettings">ref. A <see cref="ASCIISettings"/> /// with the settings to use and update.</param> public ImportParseFileDialog(ref ASCIISettings importSettings) { this.InitializeComponent(); this.asciiSetting = importSettings; this.numberOfImportLines = 1000; }
/// <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> /// <returns><strong>True</strong> if successful, /// otherwise <strong>null</strong>.</returns> private ASCIISettings Deserialize(string filePath) { try { ASCIISettings settings = new ASCIISettings(); using (FileStream fs = new FileStream(filePath, FileMode.Open)) { // Create an instance of the XmlSerializer class; // specify the type of object to be deserialized XmlSerializer serializer = new XmlSerializer(typeof(ASCIISettings)); //////* If the XML document has been altered with unknown //////nodes or attributes, handle them with the //////UnknownNode and UnknownAttribute events.*/ ////serializer.UnknownNode += new XmlNodeEventHandler(serializer_UnknownNode); ////serializer.UnknownAttribute += new XmlAttributeEventHandler(serializer_UnknownAttribute); /* Use the Deserialize method to restore the object's state with data from the XML document. */ settings = (ASCIISettings)serializer.Deserialize(fs); } return settings; } catch (Exception ex) { ExceptionMethods.HandleException(ex); } return null; }
/////////////////////////////////////////////////////////////////////////////// // Construction and Initializing methods // /////////////////////////////////////////////////////////////////////////////// #region CONSTRUCTION /// <summary> /// Initializes a new instance of the ImportTrialsDialog class. /// </summary> /// <param name="newAsciiSettings">Ref. The <see cref="ASCIISettings"/> to use.</param> /// <param name="newDetectionSettings">Ref. The <see cref="DetectionSettings"/> to use.</param> public ImportTrialsDialog(ref ASCIISettings newAsciiSettings, ref DetectionSettings newDetectionSettings) { this.InitializeComponent(); this.numberOfImportLines = 20000; this.detectionSetting = newDetectionSettings; this.asciiSetting = newAsciiSettings; this.trialImportRows = new List<string[]>(); this.trialColumnHeaders = new List<string>(); this.cbbTimeUnit.SelectedIndex = 1; }
/////////////////////////////////////////////////////////////////////////////// // 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(); }