protected override void RegisterComponentClasses() { ClassBuilder.Register(() => { var isCheckedClass = Value ? "checked" : "unchecked"; var isEnabledClass = IsEnabled ? "enabled" : "disabled"; return($"{RootElementClass}-{isEnabledClass}-{isCheckedClass}-{VisualClassRegistrar()}"); }); ClassBuilder.Register(() => IsInlineLabel ? $"{RootElementClass}-inline-{VisualClassRegistrar()}" : string.Empty); ClassBuilder.Register(() => OnText.HasNoValue() || OffText.HasNoValue() ? $"{RootElementClass}-noonoff-{VisualClassRegistrar()}" : string.Empty); ClassBuilder.Register(() => ValueInvalid is true ? $"{RootElementClass}-invalid-{VisualClassRegistrar()}" : string.Empty); }
private int[] Parse(string text, OnText OnTextCallback, OnTag OnTagCallback) { List <int> result = new List <int>(); int startPos = 0; int tagPos = text.IndexOf("["); while (tagPos >= 0) { // find end tag int endPos = text.IndexOf("]", tagPos + 1); if (endPos < 0) { break; } // add text before if (tagPos != startPos) { if (OnTextCallback != null) { string t = text.Substring(startPos, tagPos - startPos); OnTextCallback(t, startPos); } } string tag = text.Substring(tagPos + 1, endPos - tagPos - 1); if (OnTagCallback != null) { result.Add(tagPos); OnTagCallback(tag, tagPos); } startPos = endPos + 1; tagPos = text.IndexOf("[", startPos); } if (OnTextCallback != null) { string t = text.Substring(startPos, text.Length - startPos); OnTextCallback(t, startPos); } return(result.ToArray()); }
private int[] Parse(string text, OnText OnTextCallback, OnTag OnTagCallback) { List<int> result = new List<int>(); int startPos = 0; int tagPos = text.IndexOf("["); while (tagPos >= 0) { // find end tag int endPos = text.IndexOf("]", tagPos + 1); if (endPos < 0) break; // add text before if (tagPos != startPos) { if (OnTextCallback != null) { string t = text.Substring(startPos, tagPos - startPos); OnTextCallback(t, startPos); } } string tag = text.Substring(tagPos + 1, endPos - tagPos - 1); if (OnTagCallback != null) { result.Add(tagPos); OnTagCallback(tag, tagPos); } startPos = endPos + 1; tagPos = text.IndexOf("[", startPos); } if (OnTextCallback != null) { string t = text.Substring(startPos, text.Length - startPos); OnTextCallback(t, startPos); } return result.ToArray(); }
void Text(string content) { OnText?.Invoke(content); }
public void Parse() { try { reader.MoveToContent(); while (reader.Read()) { var arg = new ParseEventArg { NodeType = reader.NodeType, Depth = reader.Depth, Name = reader.Name, EmptyElement = reader.IsEmptyElement }; if (reader.HasValue) { arg.Value = reader.Value; } else { arg.Value = null; } if (reader.HasAttributes) { var arr = new Attribute[reader.AttributeCount]; for (var i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); arr[i] = new Attribute { Name = reader.Name, Value = reader.Value, Index = i }; } reader.MoveToElement(); arg.Attributes = new ReadOnlyCollection <Attribute>(arr); } else { arg.Attributes = new ReadOnlyCollection <Attribute>(empty); } OnNode?.Invoke(this, arg); switch (reader.NodeType) { case XmlNodeType.Element: OnElement?.Invoke(this, arg); break; case XmlNodeType.CDATA: OnCData?.Invoke(this, arg); break; case XmlNodeType.Comment: OnComment?.Invoke(this, arg); break; case XmlNodeType.DocumentType: OnDocType?.Invoke(this, arg); break; case XmlNodeType.EndElement: OnEndElement?.Invoke(this, arg); break; case XmlNodeType.EntityReference: OnEntityReferenceUnresolved?.Invoke(this, arg); reader.ResolveEntity(); reader.Read(); arg.Name = reader.Name; arg.Value = reader.Value; arg.Depth = reader.Depth; arg.NodeType = reader.NodeType; OnEntityReference?.Invoke(this, arg); break; case XmlNodeType.ProcessingInstruction: OnProcessingInstruction?.Invoke(this, arg); break; case XmlNodeType.Text: OnText?.Invoke(this, arg); break; } } } catch (XmlException e) { OnException?.Invoke(this, e); } }