Example #1
0
        private void AddFMFile_Click(object sender, RoutedEventArgs e)
        {
            FILMANFileRecord ffr;
            if ((ffr = FMFileListItem.OpenFILMANFile()) == null) return;

            FMFileListItem fli = new FMFileListItem(ffr);
            fli.ErrorCheckReq += new EventHandler(checkForError);
            FilePointSelectors.Add(fli);
            Files.Items.Add(fli);
            if (FilePointSelectors.Count > 0) RemoveFile.IsEnabled = true;
            checkForError(fli, null);
        }
Example #2
0
        private FILMANFileRecord OpenFILMANFile()
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "Open a FILMAN file ...";
            ofd.AddExtension = true;
            ofd.DefaultExt = ".fmn"; // Default file extension
            ofd.Filter = "FILMAN files (.fmn)|*.fmn|All files|*.*"; // Filter files by extension
            Nullable<bool> result = ofd.ShowDialog();
            if (result == false) return null;

            FILMANInputStream fmTemp;
            try
            {
                fmTemp = new FILMANInputStream(new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read));
            }
            catch (Exception ex)
            {
                MessageBox.Show("Unable to read FILMAN file " + ofd.FileName + "." + Environment.NewLine + "Exception: " + ex.Message,
                    "FILMAN error", MessageBoxButton.OK, MessageBoxImage.Error);
                return null;
            }
            FILMANFileRecord ffr = new FILMANFileRecord();
            ffr.path = ofd.FileName;
            ffr.stream = fmTemp;
            //Now check to see if there is a Header file available
            string directory = Path.GetDirectoryName(ffr.path);
            IEnumerable<string> hdrFiles = Directory.EnumerateFiles(directory, "*.hdr");
            if (hdrFiles.Count() > 0) //there's a candidate Header file in this directory
            {
                HeaderFileReader headerFile = new HeaderFileReader
                    (new FileStream(hdrFiles.First(), FileMode.Open, FileAccess.Read));
                ffr.GVDictionary = headerFile.read().GroupVars; //save the GroupVar dictionary
                headerFile.Dispose(); //closes file
            }
            FMFileListItem fli = new FMFileListItem(ffr);
            ffr.FMFilePointSelector = fli;
            fli.ErrorCheckReq += new EventHandler(checkForError);
            checkForError(fli, null);
            return ffr;
        }