Beispiel #1
0
        private IPlaceholderTag CreatePhTag(string tagContent, XmlNode item, int tagNo, bool source)
        {
            IPlaceholderTagProperties phTagProperties = PropertiesFactory.CreatePlaceholderTagProperties(tagContent);
            IPlaceholderTag           phTag           = ItemFactory.CreatePlaceholderTag(phTagProperties);


            phTagProperties.TagContent  = item.OuterXml;
            phTagProperties.DisplayText = string.Format("{{{0}}}", tagNo);
            phTagProperties.CanHide     = false;

            //determine tag id
            if (source)
            {
                var thisId =
                    new TagId(_totalTagCount.ToString(CultureInfo.InvariantCulture));

                phTagProperties.TagId = thisId;
                _totalTagCount       += 1;
                _tmpTotalTagCount    += 1;
                _srcSegmentTagCount  += 1;
            }
            else
            {
                var thisId =
                    new TagId(_totalTagCount.ToString(CultureInfo.InvariantCulture));

                phTagProperties.TagId = thisId;
                _totalTagCount       += 1;
            }

            return(phTag);
        }
Beispiel #2
0
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     _tokens.Add(new Token {
         Content = tag.Properties.TagId.Id, Type = Token.TokenType.TagPlaceholder
     });
     PlainText.Append(tag.Properties.TextEquivalent);
 }
Beispiel #3
0
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     if (_element is ElementPlaceholder && tag.TagProperties.TagId.Id == _elementIdToSearch)
     {
         FoundElement = tag;
     }
 }
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     if (tag.TagProperties != null)
     {
         _containsTag = true;
     }
 }
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     if (ElementTypeToSearch == Token.TokenType.TagPlaceholder && tag.TagProperties.TagId.Id == ElementIdToSearch)
     {
         FoundElement = tag;
     }
 }
Beispiel #6
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            if (tag.Properties.MetaDataContainsKey("Anonymizer"))
            {
                var abstractMarkupData = tag.Parent.AllSubItems.FirstOrDefault(i => i.IndexInParent.Equals(tag.IndexInParent));
                if (abstractMarkupData != null)
                {
                    //if we catch an exception that means is only a taged text is not encrypted
                    try
                    {
                        var decryptedText = _factory.CreateText(
                            _propertiesFactory.CreateTextProperties(
                                DecryptText(tag.Properties.TagContent)));

                        if (!_decryptSettings.IgnoreEncrypted)
                        {
                            var elementContainer = abstractMarkupData.Parent;
                            elementContainer.Insert(tag.IndexInParent, decryptedText);
                            elementContainer.RemoveAt(tag.IndexInParent);
                        }
                    }
                    catch (Exception e)
                    {
                        // take the text from tag and insert it back as IText
                        InsertTextBack(abstractMarkupData, tag);
                    }
                }
            }
        }
Beispiel #7
0
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     //if (!string.IsNullOrEmpty(_id))
     //{
     //	if (_id == tag.TagProperties.ta)
     //}
 }
 /// <summary>
 /// Check if tag pair contains specified property
 /// </summary>
 /// <returns></returns>
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     if (_detailLevel == DetailLevel.JustTagContent)
     {
         _textBuilder.Append(tag.TagProperties.TagContent);
     }
 }
        private IPlaceholderTag CreatePhTag(string tagContent, XmlNode item, bool source)
        {
            IPlaceholderTagProperties phTagProperties = PropertiesFactory.CreatePlaceholderTagProperties(tagContent);
            IPlaceholderTag           phTag           = ItemFactory.CreatePlaceholderTag(phTagProperties);

            string cont;

            if (item.NextSibling == null)
            {
                cont = "";
            }
            else
            {
                cont = item.NextSibling.Value;
            }

            phTagProperties.SegmentationHint = SegmentationHint.IncludeWithText;
            phTagProperties.TagContent       = item.OuterXml;
            phTagProperties.DisplayText      = item.Name;
            phTagProperties.CanHide          = false;


            //determine tag id
            if (source)
            {
                /*Sdl.FileTypeSupport.Framework.NativeApi.TagId thisId =
                 *  new Sdl.FileTypeSupport.Framework.NativeApi.TagId(totalTagCount.ToString());
                 *
                 * phTagProperties.TagId = thisId;*/
                totalTagCount      += 1;
                tmpTotalTagCount   += 1;
                srcSegmentTagCount += 1;
            }
            else
            {
                /*foreach (object tag in thisSrcSegment.AllSubItems)
                 * {
                 *  if (tag.ToString().StartsWith("<") && tag.ToString().EndsWith(">"))
                 *  {
                 *      IPlaceholderTag srcPh = (IPlaceholderTag)tag;
                 *
                 *      if (srcPh.TagProperties.TagId.ToString() == totalTagCount.ToString())
                 *      {
                 *          if (phTagProperties.TagContent == srcPh.TagProperties.TagContent)
                 *          {
                 *              Sdl.FileTypeSupport.Framework.NativeApi.TagId thisId =
                 *                  new Sdl.FileTypeSupport.Framework.NativeApi.TagId(totalTagCount.ToString());
                 *
                 *              phTagProperties.TagId = thisId;
                 *              totalTagCount += 1;
                 *          }
                 *      }
                 *  }
                 * }*/
            }



            return(phTag);
        }
        private void InsertTextBack(IAbstractMarkupData abstractMarkupData, IPlaceholderTag tag)
        {
            var elementContainer = abstractMarkupData.Parent;
            var untagedText      = _documentItemFactory.CreateText(_propertiesFactory.CreateTextProperties(tag.Properties.TagContent));

            elementContainer.Insert(tag.IndexInParent, untagedText);
            elementContainer.RemoveAt(tag.IndexInParent);
        }
Beispiel #11
0
 public override void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     //if (tag.Properties.HasTextEquivalent)
     //{
     //    // count text equivalent characters for placeholder tags
     //    Count += tag.Properties.TextEquivalent.Length;
     //}
 }
Beispiel #12
0
        public void VisitPlaceholderTag(IPlaceholderTag placeholderTag)
        {
            if (_ignoreTags)
            {
                return;
            }

            Text += placeholderTag.Properties.TagContent;
        }
        private string ConvertTagToText(IPlaceholderTag phTag)
        {
            var content = phTag.TagProperties.TagContent;

            var text = string.Empty;

            if (!IsTag(content) && Regex.IsMatch(content, "(?:>|≤|<|≥)\\d+"))
            {
                text = content;
            }
            else
            {
                var     parser = new HtmlParser(content);
                HtmlTag tag;
                if (parser.ParseNext("*", out tag))
                {
                    if (tag.Attributes.Any())
                    {
                        var isTagPair = settings.Placeholders.FirstOrDefault(p => Regex.Replace(p.Content, @"\s+", "") == Regex.Replace(content, @"\s+", ""))?.IsTagPair;

                        if (isTagPair != null)
                        {
                            text = content;
                        }
                        else
                        {
                            text = tag.Attributes.Values.First();
                        }
                    }
                    else
                    {
                        if (tag.HasEndTag)
                        {
                            text = $"</{tag.Name}>";
                        }
                        else if (tag.TrailingSlash)
                        {
                            // Check if there is a space before the trailing slash
                            if (tag.SpaceBeforeTrailingSlash)
                            {
                                text = $"<{tag.Name} />";
                            }
                            else
                            {
                                text = $"<{tag.Name}/>";
                            }
                        }
                        else
                        {
                            text = $"<{tag.Name}>";
                        }
                    }
                }
            }

            return(text);
        }
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            var tagContent = tag.TagProperties.TagContent;

            if (tagContent != null)
            {
                phTags.Add(tag);
            }
        }
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            PlaceholderTags.Add((IPlaceholderTag)tag.Clone());


            if (tag.Properties.HasTextEquivalent && !IncludeTagText)
            {
                var objTag = new Tag
                {
                    AlignmentAnchor = "",
                    Anchor          = TagCounter.ToString(),
                    TagId           = tag.TagProperties.TagId.Id,
                    TextEquivalent  = tag.Properties.TextEquivalent,
                    SectionType     = Tag.Type.Standalone
                };


                TagUnits.Add(objTag);

                objTag.Revision = IsRevisionMarker ? RevisionMarker : null;
                SegmentSections.Add(objTag);

                PlainText.Append(tag.Properties.TextEquivalent);
            }
            else if (IncludeTagText)
            {
                var objTag = new Tag
                {
                    AlignmentAnchor = "",
                    Anchor          = TagCounter.ToString(),
                    TagId           = tag.TagProperties.TagId.Id,
                    TextEquivalent  = tag.Properties.TagContent,
                    SectionType     = Tag.Type.Standalone
                };

                TagUnits.Add(objTag);

                objTag.Revision = IsRevisionMarker ? RevisionMarker : null;
                SegmentSections.Add(objTag);

                PlainText.Append(tag.TagProperties.TagContent);


                var placeHolderTag = new Sdl.LanguagePlatform.Core.Tag
                {
                    Type           = TagType.TextPlaceholder,
                    TagID          = tag.TagProperties.TagId.Id,
                    TextEquivalent = tag.Properties.TextEquivalent,
                    Anchor         = TagCounter
                };
                Segment.Add(placeHolderTag);
            }
            TagCounter++;
        }
Beispiel #16
0
        private IPlaceholderTag CreatePhTag(string tagContent, int tagNo, bool source)
        {
            IPlaceholderTagProperties phTagProperties = PropertiesFactory.CreatePlaceholderTagProperties(tagContent);
            IPlaceholderTag           phTag           = ItemFactory.CreatePlaceholderTag(phTagProperties);

            phTagProperties.TagContent  = tagContent;
            phTagProperties.DisplayText = string.Format("{{{0}}}", tagNo);
            phTagProperties.CanHide     = false;

            if (source)
            {
                var thisId = new TagId(totalTagCount.ToString(CultureInfo.InvariantCulture));

                phTagProperties.TagId = thisId;

                if (tags.ContainsKey(int.Parse(thisId.Id)) && !tags.ContainsValue(phTagProperties))
                {
                    totalTagCount = CreatePlaceholderTagHelper(thisId, phTagProperties);
                }

                if (!(tags.ContainsKey(int.Parse(thisId.Id)) && tags.ContainsValue(phTagProperties)))
                {
                    tags.Add(totalTagCount, phTagProperties);
                }

                tagIds.Enqueue(totalTagCount);

                totalTagCount++;
            }
            else
            {
                int id;
                if (tagIds.Count != 0)
                {
                    id = tagIds.Dequeue();
                }
                else
                {
                    id = totalTagCount++;
                }


                var thisId = new TagId(id.ToString(CultureInfo.InvariantCulture));

                phTagProperties.TagId = thisId;

                if (tags.ContainsKey(int.Parse(thisId.Id)) && !tags.ContainsValue(phTagProperties))
                {
                    totalTagCount = CreatePlaceholderTagHelper(thisId, phTagProperties);
                }
            }

            return(phTag);
        }
Beispiel #17
0
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     if (tag.Properties.DisplayText.Length > 0)
     {
         var item = new RangeOfCharacterInfos {
             start = CollectedText.Length, length = tag.Properties.DisplayText.Length
         };
         ListOfLockedRanges.Add(item);
         CollectedText += tag.Properties.DisplayText;
     }
 }
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            if (tag.Properties.HasTextEquivalent && !IncludeTagText)
            {
                PlainText.Append(tag.Properties.TextEquivalent);
            }

            if (IncludeTagText)
            {
                PlainText.Append(tag.TagProperties.TagContent);
            }
        }
Beispiel #19
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            if (tag.Properties.HasTextEquivalent && !IncludeTagText)
            {
                PlainText.Append(tag.Properties.TextEquivalent);
            }

            if (IncludeTagText)
            {
                PlainText.Append(tag.TagProperties.TagContent);
            }
        }
Beispiel #20
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            if (tag.Properties.HasTextEquivalent && !IncludeTagText)
            {
                SegmentSections.Add(new SegmentSection(false, tag.Properties.TextEquivalent));

                PlainText.Append(tag.Properties.TextEquivalent);
            }

            if (IncludeTagText)
            {
                SegmentSections.Add(new SegmentSection(false, tag.Properties.TagContent));

                PlainText.Append(tag.TagProperties.TagContent);
            }
        }
Beispiel #21
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            if (FoundElement != null)
            {
                return;
            }

            // Dev Notes: should handle the tagContentId differently; potentially have priority
            var tagContentId = GetTagContentId(tag.TagProperties.TagContent);

            if (_element is ElementPlaceholder &&
                (tag.TagProperties.TagId.Id == _elementIdToSearch || tagContentId == _elementIdToSearch))
            {
                FoundElement = tag;
            }
        }
Beispiel #22
0
        private IPlaceholderTag CreatePhTag(string tagContent, XmlNode item, int tagNo, bool source)
        {
            IPlaceholderTagProperties phTagProperties = PropertiesFactory.CreatePlaceholderTagProperties(tagContent);
            IPlaceholderTag           phTag           = ItemFactory.CreatePlaceholderTag(phTagProperties);

            phTagProperties.TagContent  = item.OuterXml;
            phTagProperties.DisplayText = string.Format("{{{0}}}", tagNo);
            phTagProperties.CanHide     = false;

            //determine tag id
            if (source)
            {
                var thisId =
                    new TagId(_totalTagCount.ToString(CultureInfo.InvariantCulture));

                phTagProperties.TagId = thisId;
                _totalTagCount       += 1;
                _tmpTotalTagCount    += 1;
                _srcSegmentTagCount  += 1;

                //check for source with the same Id and different properties
                if (CheckForIdAndPropertiesNotEqual(thisId, phTagProperties))
                {
                    _totalTagCount = CreatePlaceholderTagHelper(thisId, phTagProperties);
                }

                //check for source with the same Id and same properties
                if (!CheckForIdAndPropertiesEqual(thisId, phTagProperties))
                {
                    _dictionaryTags.Add(int.Parse(thisId.Id), phTagProperties);
                }
            }
            else
            {
                var thisId =
                    new TagId(_totalTagCount.ToString(CultureInfo.InvariantCulture));

                phTagProperties.TagId = thisId;

                if (CheckForIdAndPropertiesNotEqual(thisId, phTagProperties))
                {
                    _totalTagCount = CreatePlaceholderTagHelper(thisId, phTagProperties);
                }
            }

            return(phTag);
        }
Beispiel #23
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            if (tag.Properties.MetaDataContainsKey("Anonymizer"))
            {
                var abstractMarkupData = tag.Parent.AllSubItems.FirstOrDefault(i => i.IndexInParent.Equals(tag.IndexInParent));
                if (abstractMarkupData != null)
                {
                    var decryptedText = _factory.CreateText(
                        _propertiesFactory.CreateTextProperties(AnonymizeData.DecryptData(tag.Properties.TagContent, "Andrea")));
                    var elementContainer = abstractMarkupData.Parent;

                    elementContainer.Insert(tag.IndexInParent, decryptedText);

                    elementContainer.RemoveAt(tag.IndexInParent);
                }
            }
        }
Beispiel #24
0
        public void VisitPlaceholderTag(IPlaceholderTag placeholderTag)
        {
            if (IgnoreTags)
            {
                return;
            }

            TagId++;
            var tag = new Tag(
                TagType.Standalone, placeholderTag.Properties.TagId.Id, TagId);

            if (placeholderTag.Properties.HasTextEquivalent)
            {
                tag.Type           = TagType.TextPlaceholder;
                tag.TextEquivalent = placeholderTag.Properties.TextEquivalent;
            }
            Segment?.Add(tag);
        }
Beispiel #25
0
        public void VisitPlaceholderTag(IPlaceholderTag placeholderTag)
        {
            if (_ignoreTags)
            {
                return;
            }

            var element = new ElementPlaceholder
            {
                TagId          = placeholderTag.TagProperties.TagId.Id,
                TagContent     = placeholderTag.TagProperties.TagContent,
                DisplayText    = placeholderTag.TagProperties.DisplayText,
                TextEquivalent = placeholderTag.Properties.TextEquivalent
            };

            Elements.Add(element);

            Text += placeholderTag.Properties.TagContent;
        }
Beispiel #26
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            if (!phAllUnchecked)
            {
                var content = tag.Properties.TagContent;

                if (!string.IsNullOrEmpty(content))
                {
                    bool isChecked;
                    if (settings.PlaceholderTagList.TryGetValue(content, out isChecked))
                    {
                        if (isChecked)
                        {
                            phTagsToRemove.Push(tag);
                        }
                    }
                }
            }
        }
Beispiel #27
0
        private IPlaceholderTag CreatePhTag(string tagContent, XmlNode item, int tagNo)
        {
            IPlaceholderTagProperties phTagProperties = PropertiesFactory.CreatePlaceholderTagProperties(tagContent);
            IPlaceholderTag           phTag           = ItemFactory.CreatePlaceholderTag(phTagProperties);

            string cont;

            if (item.NextSibling == null)
            {
                cont = "";
            }
            else
            {
                cont = item.NextSibling.Value;
            }

            phTagProperties.TagContent  = item.OuterXml;
            phTagProperties.DisplayText = item.Name;
            phTagProperties.CanHide     = false;

            return(phTag);
        }
Beispiel #28
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            PlaceholderTags.Add((IPlaceholderTag)tag.Clone());


            if (tag.Properties.HasTextEquivalent && !IncludeTagText)
            {
                TagUnits.Add(new TagUnit(tag.TagProperties.TagId.Id, tag.Properties.DisplayText, tag.Properties.TextEquivalent, TagUnit.TagUnitState.IsEmpty, TagUnit.TagUnitType.IsPlaceholder));

                SegmentSections.Add(new SegmentSection(SegmentSection.ContentType.Placeholder, tag.TagProperties.TagId.Id, tag.Properties.TextEquivalent));

                PlainText.Append(tag.Properties.TextEquivalent);
            }

            if (!IncludeTagText)
            {
                return;
            }
            TagUnits.Add(new TagUnit(tag.TagProperties.TagId.Id, tag.Properties.DisplayText, tag.Properties.TagContent, TagUnit.TagUnitState.IsEmpty, TagUnit.TagUnitType.IsPlaceholder));

            SegmentSections.Add(new SegmentSection(SegmentSection.ContentType.Placeholder, tag.TagProperties.TagId.Id, tag.Properties.TagContent));

            PlainText.Append(tag.TagProperties.TagContent);
        }
Beispiel #29
0
        public void VisitPlaceholderTag(IPlaceholderTag tag)
        {
            var placeHolderTag = new Sdl.LanguagePlatform.Core.Tag
            {
                Type           = Sdl.LanguagePlatform.Core.TagType.TextPlaceholder,
                TagID          = tag.TagProperties.TagId.Id,
                TextEquivalent = tag.Properties.TextEquivalent,
                Anchor         = TagCounter
            };

            Segment.Add(placeHolderTag);

            TagCounter++;

            if (tag.Properties.HasTextEquivalent && !IncludeTagText)
            {
                SegmentSections.Add(IsRevisionMarker
                    ? new SegmentSection(SegmentSection.ContentType.Placeholder, tag.TagProperties.TagId.Id,
                                         tag.Properties.TextEquivalent, RevisionMarker)
                    : new SegmentSection(SegmentSection.ContentType.Placeholder, tag.TagProperties.TagId.Id,
                                         tag.Properties.TextEquivalent));


                PlainText.Append(tag.Properties.TextEquivalent);
            }
            else if (IncludeTagText)
            {
                SegmentSections.Add(IsRevisionMarker
                    ? new SegmentSection(SegmentSection.ContentType.Placeholder, tag.TagProperties.TagId.Id,
                                         tag.Properties.TagContent, RevisionMarker)
                    : new SegmentSection(SegmentSection.ContentType.Placeholder, tag.TagProperties.TagId.Id,
                                         tag.Properties.TagContent));

                PlainText.Append(tag.TagProperties.TagContent);
            }
        }
        private IPlaceholderTag CreatePhTag(string tagContent, XmlNode item, bool source)
        {
            IPlaceholderTagProperties phTagProperties = PropertiesFactory.CreatePlaceholderTagProperties(tagContent);
            IPlaceholderTag           phTag           = ItemFactory.CreatePlaceholderTag(phTagProperties);

            string cont;

            if (item.NextSibling == null)
            {
                cont = "";
            }
            else
            {
                cont = item.NextSibling.Value;
            }

            phTagProperties.SegmentationHint = SegmentationHint.IncludeWithText;
            phTagProperties.TagContent       = item.OuterXml;
            phTagProperties.DisplayText      = item.Name;
            phTagProperties.CanHide          = false;


            //determine tag id
            if (source)
            {
                /*Sdl.FileTypeSupport.Framework.NativeApi.TagId thisId =
                 *  new Sdl.FileTypeSupport.Framework.NativeApi.TagId(totalTagCount.ToString());
                 *
                 * phTagProperties.TagId = thisId;*/
                totalTagCount      += 1;
                tmpTotalTagCount   += 1;
                srcSegmentTagCount += 1;
            }

            return(phTag);
        }
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     _tokens.Add(new Token(tag.Properties.TagId.Id, Token.TokenType.TagPlaceholder));
     PlainText.Append(tag.Properties.TextEquivalent);
 }
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     _currentContainer.Add((IPlaceholderTag)tag.Clone());
 }
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     TagToOriginalText(tag.Properties);
 }
Beispiel #34
0
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     Tags.Add(tag);
 }
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     //Ignore the placeholder
 }
 public void VisitPlaceholderTag(IPlaceholderTag tag)
 {
     PlainText.Append(tag.TagProperties.TagContent);
 }