public MarkerPresenter(FdoCache cache, string mapfile, string datafile, string fwFile, int numColumns)
		{
			m_cache = cache;
			m_mapFile = mapfile;
			m_dataFile = datafile;
			m_fwFile = fwFile;
			m_numColumns = numColumns;
			m_SortOrder = new ArrayList();
			for (int i=0; i<numColumns; i++)
			{
				m_SortOrder.Add(true);
			}
			m_SortOrder[1] = false;	// handle first click in column one

			bool goodMap = InitFromMapFile(m_mapFile);
			m_DataInfo = new Sfm2Xml.SfmFileReader(m_dataFile);

			// read in the Lex Import Fields
			string sRootDir = SIL.FieldWorks.Common.Utils.DirectoryFinder.FWCodeDirectory;
			if (!sRootDir.EndsWith("\\"))
				sRootDir += "\\";
			string sImportFileds = sRootDir + "Language Explorer\\Import\\ImportFields.xml";

			m_LexFields = new LexImportFields();
			m_LexFields.ReadLexImportFields(sImportFileds);
			// get a list of the languages that are defined/editied in the GUI
			m_htUILangInfo = LexImportWizard.Wizard().GetUILanguages();
			// this will now fill the m_htMarkerData hashtable with contentmapping objects
			MergeData();

		}
		public void UpdateLexFieldsWithCustomFields(Sfm2Xml.ILexImportFields customFields)
		{
			m_LexFields = customFields as Sfm2Xml.LexImportFields;
			string sRootDir = m_rootDir;	// SIL.Utils.FwDirectoryFinder.CodeDirectory;
			if (!sRootDir.EndsWith(Path.DirectorySeparatorChar.ToString()))
				sRootDir += Path.DirectorySeparatorChar;
			string sImportFields = sRootDir + String.Format("Language Explorer{0}Import{0}ImportFields.xml", Path.DirectorySeparatorChar);
			m_LexFields.ReadLexImportFields(sImportFields);
		}
		public void UpdateLexFieldsWithCustomFields(Sfm2Xml.ILexImportFields customFields)
		{
			m_LexFields = customFields as Sfm2Xml.LexImportFields;
			string sRootDir = m_rootDir;	// SIL.FieldWorks.Common.Utils.DirectoryFinder.FWCodeDirectory;
			if (!sRootDir.EndsWith("\\"))
				sRootDir += "\\";
			string sImportFields = sRootDir + "Language Explorer\\Import\\ImportFields.xml";
			m_LexFields.ReadLexImportFields(sImportFields);
		}
Esempio n. 4
0
		public Sfm2Xml.ILexImportFields ReadCustomFieldsFromDB(out bool changed)
		{
			System.Text.StringBuilder sb = new System.Text.StringBuilder();
			List<uint> crcs = new List<uint>();
			Sfm2Xml.ILexImportFields customFields = new Sfm2Xml.LexImportFields();
			// FieldDescription.ClearDataAbout(m_cache);
			foreach (FieldDescription fd in FieldDescription.FieldDescriptors(m_cache))
			{
				if (fd.IsCustomField && fd.Class > 4999 && fd.Class < 6000)
				{
					Sfm2Xml.LexImportCustomField lif = FieldDescriptionToLexImportField(fd);
					System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

					string helpString = GetCustomFieldHelp(fd);
					doc.LoadXml(helpString);

					System.Xml.XmlNode root = doc.DocumentElement;
					lif.ReadNode(root);
					sb.Append(lif.CRC);	// for cumulative CRC (over the whole list)
					crcs.Add(lif.CRC);
					customFields.AddCustomField(fd.Class, lif);
				}
			}
			if (crcs.Count == m_lastCrcs.Count)
			{
				int ipos = 0;
				while (ipos < crcs.Count && crcs[ipos] == m_lastCrcs[ipos])
				{
					ipos++;
				}
				if (ipos == crcs.Count)
					changed = false;
				else
				{
					changed = true;
					m_lastCrcs = crcs;
				}
			}
			else
			{
				changed = true;
				m_lastCrcs = crcs;
			}

			return customFields;
		}