public bool CreateEmptyFileWithType(Type tt) { ViewableFile vv = new ViewableFile(new EFEDiskFile(), tt, true); ViewedFiles.Add(vv); vv.DialogClosing += new ViewableFile.DialogClosingEventHandler(v_DialogClosing); vv.ShowDialog(Application.OpenForms[0]); foreach (var v in ViewedFiles) { if (vv != v && v.Dialog is IUseOtherFiles) { ((IUseOtherFiles)v.Dialog).FileOpened(vv); } } return(true); }
public bool OpenFile(EFEFile File, EFEFile Parent = null) { foreach (var v in ViewedFiles) { if (v.File.Equals(File)) { MessageBox.Show("This file has already been opened!"); ((Form1)Application.OpenForms[0]).BringMDIWindowToFront(v.Dialog); return(false); } } Type[] formats = GetPossibleFormats(File); if (formats.Length == 0) { return(false); } List <Type> Viewables = new List <Type>(); foreach (Type t in formats) { if (t.GetInterfaces().Contains(typeof(IViewable))) { Viewables.Add(t); } } Type tt; if (Viewables.Count == 0) { return(false); } else if (Viewables.Count == 1) { tt = Viewables[0]; } else { MessageBox.Show("Multiple types match!"); return(false); } ViewableFile vv = new ViewableFile(File, tt); ViewedFiles.Add(vv); vv.DialogClosing += new ViewableFile.DialogClosingEventHandler(v_DialogClosing); vv.ShowDialog(Application.OpenForms[0]); if (Parent != null) { File.Parent = Parent; Parent.Children.Add(File); } foreach (var v in ViewedFiles) { if (vv != v && v.Dialog is IUseOtherFiles) { ((IUseOtherFiles)v.Dialog).FileOpened(vv); } } return(true); }