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