/// <summary>
 /// Выполнить элемент программы.
 /// </summary>
 /// <param name="element">Элемент.</param>
 protected virtual void ExecuteElement(IRenderProgramElement element)
 {
     if (CommonRenderProgramElements.LineBreak.Equals(element.Id, StringComparison.CurrentCultureIgnoreCase))
     {
         LineBreak = true;
         return;
     }
     if (CommonRenderProgramElements.AddAttribute.Equals(element.Id, StringComparison.CurrentCultureIgnoreCase))
     {
         var el = element as IAttributeRenderProgramElement;
         if (el != null && el.Attribute != null)
         {
             Attributes.AddAttribute(el.Attribute);
         }
         return;
     }
     if (CommonRenderProgramElements.RemoveAttribute.Equals(element.Id, StringComparison.CurrentCultureIgnoreCase))
     {
         var el = element as IAttributeRenderProgramElement;
         if (el != null && el.Attribute != null)
         {
             Attributes.RemoveAttribute(el.Attribute);
         }
         return;
     }
 }
 /// <summary>
 /// Добавить элемент.
 /// </summary>
 /// <param name="element">Элемент.</param>
 /// <returns>Можно ещё выполнять команды.</returns>
 public bool PushProgramElement(IRenderProgramElement element)
 {
     if (!CommandFormer.AddElement(element))
     {
         Flush();
         CommandFormer.AddElement(element);
     }
     return true;
 }
예제 #3
0
 /// <summary>
 /// Добавить элемент.
 /// </summary>
 /// <param name="element">Элемент.</param>
 /// <returns>Можно ещё выполнять команды.</returns>
 public bool PushProgramElement(IRenderProgramElement element)
 {
     if (ExceedLines)
     {
         return false;
     }
     if (!Former.AddElement(element))
     {
         Flush();
         Former.AddElement(element);
     }
     return true;
 }
 /// <summary>
 /// Добавить элемент.
 /// </summary>
 /// <param name="element">Элемент.</param>
 /// <returns>true, если добавлено успешно. false, если нужно вызвать GetCommand</returns>
 public virtual bool AddElement(IRenderProgramElement element)
 {
     if (element == null || element.Id == null)
     {
         return true;
     }
     if (HasNonTextContent)
     {
         return false;
     }
     if (CommonRenderProgramElements.PrintText.Equals(element.Id, StringComparison.OrdinalIgnoreCase) &&
         element is ITextRenderProgramElement)
     {
         var txt = (ITextRenderProgramElement) element;
         Text.Append(txt.Text ?? "");
         return true;
     }
     if (Text.Length > 0)
     {
         return false;
     }
     ExecuteElement(element);
     return true;
 }