/// ------------------------------------------------------------------------------- /// <summary> /// Constructor. /// </summary> /// ------------------------------------------------------------------------------- public SFFileListBuilder() { SetStyle(ControlStyles.UserPaint, true); // This call is required by the Windows.Forms Form Designer. InitializeComponent(); m_resources = new ResourceManager("SIL.FieldWorks.Common.Controls.ScrControls", System.Reflection.Assembly.GetExecutingAssembly()); m_OpenFileDlg = new OpenFileDialog(); List<FileFilterType> fileTypes = new List<FileFilterType>(2); fileTypes.Add(FileFilterType.AllScriptureStandardFormat); fileTypes.Add(FileFilterType.AllFiles); m_OpenFileDlg.Filter = ResourceHelper.BuildFileFilter(fileTypes); m_OpenFileDlg.FilterIndex = 0; m_OpenFileDlg.CheckFileExists = true; m_OpenFileDlg.RestoreDirectory = false; m_OpenFileDlg.ShowHelp = false; m_OpenFileDlg.Title = m_resources.GetString("kstidOFDTitle"); m_OpenFileDlg.Multiselect = true; m_OpenFileDlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal); m_currentListView = scrFileList; m_currentRemoveButton = btnRemoveScr; m_fileRemovedHandler = new ScrImportFileEventHandler(HandleFileRemoval); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Add a file to the project, and determine the file encoding and mappings. /// </summary> /// <param name="fileName">file name to add</param> /// <param name="domain">The domain to add the file to</param> /// <param name="wsId">The writing system identifier for the source (ignored for /// scripture domain)</param> /// <param name="noteType">The CmAnnotationDefn for the note type /// (ignored for back trans and scripture domains)</param> /// <param name="fileRemovedHandler">Handler for FileRemoved event (can be null if /// caller doesn't need to know if a file is removed as a result of a overlapping /// conflict</param> /// <returns>The IScrImportFileInfo representing the added file</returns> /// ------------------------------------------------------------------------------------ public IScrImportFileInfo AddFile(string fileName, ImportDomain domain, string wsId, ICmAnnotationDefn noteType, ScrImportFileEventHandler fileRemovedHandler) { lock (SyncRoot) { if (ImportTypeEnum == TypeOfImport.Paratext6) throw new InvalidOperationException("Cannot add files to Paratext 6 import Projects"); // first check to see if the file is already in the project, // if so - then remove the file. RemoveFile(fileName, domain, wsId, noteType); // Make a new file info entry for the added file IScrImportFileInfo info = m_scrImpFinfoFact.Create(fileName, GetMappingListForDomain(domain), domain, wsId, noteType, (ImportTypeEnum == TypeOfImport.Paratext5)); ScrSfFileList fileList = GetFileList(domain, wsId, noteType, true); if (fileRemovedHandler != null) fileList.FileRemoved += fileRemovedHandler; int index; try { index = fileList.Add(info); } finally { if (fileRemovedHandler != null) fileList.FileRemoved -= fileRemovedHandler; } return (index == -1) ? null : info; } }
/// ------------------------------------------------------------------------------------ /// <summary> /// Constructor. /// </summary> /// ------------------------------------------------------------------------------------ public SFFileListBuilder() { SetStyle(ControlStyles.UserPaint, true); // This call is required by the Windows.Forms Form Designer. InitializeComponent(); m_OpenFileDlg = new OpenFileDialogAdapter(); m_OpenFileDlg.Filter = ResourceHelper.BuildFileFilter(FileFilterType.AllScriptureStandardFormat, FileFilterType.AllFiles); m_OpenFileDlg.FilterIndex = 0; m_OpenFileDlg.CheckFileExists = true; m_OpenFileDlg.RestoreDirectory = false; m_OpenFileDlg.ShowHelp = false; m_OpenFileDlg.Title = TeResourceHelper.GetResourceString("kstidOFDTitle"); m_OpenFileDlg.Multiselect = true; m_OpenFileDlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal); m_currentListView = scrFileList; m_currentRemoveButton = btnRemoveScr; m_fileRemovedHandler = new ScrImportFileEventHandler(HandleFileRemoval); }