示例#1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Gets or creates a mapping for the given marker.
        /// </summary>
        /// <param name="marker">The marker.</param>
        /// ------------------------------------------------------------------------------------
        private ImportMappingInfo GetOrCreateMarkerMapping(ref string marker)
        {
            ImportMappingInfo markerMapping;

            if (m_scanInlineBackslashMarkers)
            {
                bool fMapEndMarker = false;
                if (marker.EndsWith("*"))
                {
                    string beginMarker = marker.Substring(0, marker.Length - 1);
                    if (m_mappingList[beginMarker] != null)
                    {
                        marker        = beginMarker;
                        fMapEndMarker = true;
                    }
                }
                else if (m_mappingList[marker + "*"] != null)
                {
                    // If the corresponding end marker is present in the mapping list
                    // (as a begin marker), we need to remove it and instead map it as
                    // an end marker. This is unlikely, but can happen if the data has
                    // an errant end marker before the begin marker.
                    m_mappingList.Delete(m_mappingList[marker + "*"]);
                    fMapEndMarker = true;
                }
                markerMapping = m_mappingList.AddDefaultMappingIfNeeded(marker, m_domain, true);

                if (fMapEndMarker)
                {
                    markerMapping.EndMarker = marker + "*";
                }
            }
            else
            {
                markerMapping = m_mappingList.AddDefaultMappingIfNeeded(marker, m_domain, true);
            }
            return(markerMapping);
        }
示例#2
0
		public void HasChanged()
		{
			ScrMappingList list = new ScrMappingList(MappingSet.Main, null);
			list.Add(new ImportMappingInfo(@"\aa", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.Remark, null));
			list.Add(new ImportMappingInfo(@"\bb", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.Remark, null));
			list.Add(new ImportMappingInfo(@"\cc", null, false, MappingTargetType.TEStyle, MarkerDomain.BackTrans, ScrStyleNames.Remark, null));
			Assert.IsTrue((bool)ReflectionHelper.GetProperty(list, "HasChanged"));

			Assert.AreEqual(3, list.Count);

			ReflectionHelper.SetProperty(list[0], "HasChanged", false);
			ReflectionHelper.SetProperty(list[1], "HasChanged", false);
			ReflectionHelper.SetProperty(list[2], "HasChanged", false);
			Assert.IsFalse((bool)ReflectionHelper.GetProperty(list, "HasChanged"));

			list.Delete(list[1]);
			Assert.AreEqual(2, list.Count);
			Assert.IsTrue((bool)ReflectionHelper.GetProperty(list, "HasChanged"));
		}
示例#3
0
		public void Delete()
		{
			ScrMappingList list = new ScrMappingList(MappingSet.Main, null);
			list.Add(new ImportMappingInfo(@"\aa", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.Remark, null));
			list.Add(new ImportMappingInfo(@"\bb", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.Remark, null));
			list.Add(new ImportMappingInfo(@"\cc", null, false, MappingTargetType.TEStyle, MarkerDomain.BackTrans, ScrStyleNames.Remark, null));

			Assert.AreEqual(3, list.Count);

			list.Delete(list[1]);
			Assert.AreEqual(2, list.Count);

			Assert.AreEqual(@"\aa", list[0].BeginMarker);
			Assert.AreEqual(@"\cc", list[1].BeginMarker);
		}