/** Creates a new instance of AnalysisThread */
		public AnalysisThread(FileCollection theFileCollection, FFSignatureFile theSigFile, AnalysisController theAnalysisController)
		{
			myFileCollection = theFileCollection;
			mySigFile = theSigFile;
			myAnalysisController = theAnalysisController;
		}
 /**
  * Reads and parses the signature file
  * @param theSigFileName Name of the signature file
  * @param isConfigSave Flag to indicate whether the configuration file should be updated with this signature file.
  * @param hideWarning gives the ability to hide the warning if a file failes to load
  */
 public void readSigFile(string theSigFileName, bool isConfigSave, bool hideWarning) //throws Exception {
 {
     
     try
     {
         //checks that the file exists, throws an error if it doesn't
         checkFile(theSigFileName);
         
         //store the name of the new signature file
         myConfigFile.setSigFile(theSigFileName);
         
         //prepare for XML read
         MessageDisplay.ResetXmlRead();
         
         //carry out XML read
         mySigFile = parseSigFile(theSigFileName);
         
         mySigFile.prepareForUse();
         
         String theVersion = mySigFile.getVersion();
         try
         {
             myConfigFile.setSigFileVersion(theVersion);
         }
         catch(Exception)
         {
         }
         
         //let the user know the outcome
         MessageDisplay.SetStatusText("Current signature file is V"+getSigFileVersion(), "Signature file V"+getSigFileVersion()+" has been checked");
         int numXMLWarnings = MessageDisplay.GetNumberOfXmlWarnings(); //.getNumXMLWarnings();
         if(numXMLWarnings > 0) {
             String successMessage = "The signature file "+theSigFileName+" was loaded with "+numXMLWarnings+" warnings";
             String cmdlineMessage = numXMLWarnings+" warnings were found";
             MessageDisplay.GeneralInformation(successMessage, cmdlineMessage);
         }
         
         if (isConfigSave)
         {
             //update the configuration file to contain the details of this signature file
             try
             {
                 saveConfiguration();
             }
             catch(System.IO.IOException)
             {
                 MessageDisplay.GeneralWarning("Unable to save configuration updates");
             }
         }            
     }
     catch (Exception e)
     {
         if(!hideWarning)
         {
             MessageDisplay.GeneralWarning(e.ToString());
         }
         mySigFile = null;
     }
 }