internal IContentElement take(IContentElement qReference, contentRelationType qRelation) { switch (qRelation) { case contentRelationType.self: return(qReference); break; case contentRelationType.next: return(qReference.next); break; case contentRelationType.prev: return(qReference.next); break; case contentRelationType.parent: return(qReference.parent); break; } return(null); }
public UIView CreateElementView(IContentElement element) { foreach (var alternate in element.Alternates) { var locatedAlternate = alternate; var path = NSBundle.MainBundle.PathForResource(locatedAlternate, "nib"); if (path == null) { locatedAlternate += "_"; path = NSBundle.MainBundle.PathForResource(locatedAlternate, "nib"); } if (path != null) { var arr = NSBundle.MainBundle.LoadNib(locatedAlternate, null, null); var view = Runtime.GetNSObject <UIView>(arr.ValueAt(0)); view.TranslatesAutoresizingMaskIntoConstraints = false; if (view is ElementView) { var elementView = (ElementView)view; elementView.DisplayContext = _displayContext; elementView.SetElement(element); } return(view); } } return(null); }
/// <summary> /// обходит element ища все elementType и выполняя для каждого action /// </summary> /// <param name="element"></param> /// <param name="elementType"></param> /// <param name="action">если вернул false то обход прекращается</param> /// <param name="traverseInsideMatchedTypes">проходить ли внутрь элементов elementType после вызова action</param> /// <returns>был ли обход досрочно остановлен</returns> static bool TraverseElement(IContentElement element, ElementType elementType, Func <Element, bool> action, bool traverseInsideMatchedTypes) { foreach (var collection in element.Content) { foreach (var elementInCollection in collection) { bool traverseInsideCurrentElement = elementInCollection is IContentElement; if (elementInCollection.ElementType == elementType) { if (!action(elementInCollection)) { return(false); } if (!traverseInsideMatchedTypes) { traverseInsideCurrentElement = false; } } if (traverseInsideCurrentElement) { if (!TraverseElement((IContentElement)elementInCollection, elementType, action, traverseInsideMatchedTypes)) { return(false); } } } } return(true); }
// private IImbCollections _items; /// <summary> /// Podešava PREV i NEXT za nlpBase klase -- i dodaje item u svoju items kolekciju /// </summary> /// <remarks> /// Radiće u slučaju da je item član liste kao i da nije. Ako nije dodeliće mu prev kao last /// </remarks> /// <typeparam name="T"></typeparam> /// <param name="list"></param> public IContentElement setItem(IContentElement newItem) { IContentElement source = this as IContentElement; if (newItem == this) { return(newItem); } if (source == null) { return(null); } if (!source.items.Contains(newItem)) { source.items.Add(newItem); } newItem.parent = this as IContentElement; source.items.Nest(newItem); // ind = source.items.IndexOf(newItem); /* * if (id > 0) * { * newItem.prev = source.items.items[ind - 1] as IContentElement; * newItem.prev.next = newItem; * } */ return(newItem); }
public override string getNodeName(IObjectWithPathAndChildSelector source, string defName = "") { string output = defName; if (source is IContentPage) { output = "C"; } else if (source is IContentBlock) { output = "B"; } else if (source is IContentParagraph) { output = "P"; } else if (source is IContentSentence) { output = "S"; } else if (source is IContentToken) { output = "T"; } if (source is IContentElement) { IContentElement source_IContentToken = (IContentElement)source; output = output + source_IContentToken.id; } return(output); }
public static ContentField GetField(this IContentElement contentItem, string name) { if (contentItem.Fields.TryGetValue(name, out ContentField? contentField) == false) { throw new Exception($"The field '{name}' was not found."); } return(contentField); }
/// <summary> /// Osvezava vezu za prethodnim elementom -- i prijavljuje se kod njega kao sledeci element /// </summary> /// <param name="item"></param> public void Nest(IContentElement item) { int ps = IndexOf(item as T); if (ps > 0) { item.prev = this[ps - 1]; item.prev.next = item; } }
public override void SetElement(IContentElement contentElement) { if (contentElement is TElement) { Element = (TElement)contentElement; Bind(); } else { throw new InvalidCastException($"Tried to create a {GetType().Name} with a {contentElement.GetType().Name}"); } }
internal IContentElement takeIndex(IContentElement qReference, contentRelationType qRelation, int i, int limit = -1) { IContentElement hIndex; hIndex = take(qReference, qRelation); if (limit != -1) { if (i > limit) { hIndex = null; } } return(hIndex); }
RectangleF ISelectable.GetSelectionRectangle(MapGraphics g, RectangleF clipRect) { RectangleF rectangleF = RectangleF.Empty; List <ILayerElement> layerElements = this.GetLayerElements(); foreach (ISelectable item in layerElements) { bool flag = false; IContentElement contentElement = item as IContentElement; if ((contentElement == null) ? item.IsVisible() : contentElement.IsVisible(g, this, false, clipRect)) { rectangleF = ((!rectangleF.IsEmpty) ? RectangleF.Union(rectangleF, item.GetSelectionRectangle(g, clipRect)) : item.GetSelectionRectangle(g, clipRect)); } } return(rectangleF); }
public static void FromBsonValue(this BsonValue bsonValue, string fieldName, IContentElement contentItem, IContentSchema schema) { if (bsonValue == BsonNull.Value) { return; } if (contentItem.Fields.TryGetValue(fieldName, out ContentField? contentField)) { if (schema.Fields.TryGetValue(fieldName, out ContentSchemaField? schemaField)) { IFieldSerializer fieldSerializer = MongoFieldManager.Default.GetByType(contentField.GetType()); fieldSerializer.Read(schemaField, contentField, bsonValue); } } }
private bool FindText(string watermarkText, IContentElement element) { if (element.ElementType == ElementType.Text) { TextContentElement textElement = (TextContentElement)element; return(textElement.TextObject.Text == watermarkText); } if (element.ElementType == ElementType.FormXObject) { FormContentElement elementsContainer = (FormContentElement)element; return(FindTextInElements(watermarkText, elementsContainer.FormXObject.Elements)); } return(false); }
/// <summary> /// Generiše izveštaj o contentPage objektu - vraca String Builder objekat /// </summary> /// <param name="sb"></param> /// <returns></returns> public static ITextRender makeReport(this IContentElement element, ITextRender sb = null, bool autoSaveAndOpen = true) { //if (sb == null) //{ // var hsb = new reportHtmlDocument("Report on: " + element.getTypeSignature(), // reportOutputFormatName.htmlReport, // reportFlag.filenameSmallLetters, reportFlag.filenameInsertTimestamp, // reportFlag.headerInsertDescription, // reportFlag.footerInsertOutputPath, reportFlag.footerInsertDocumentation, // reportFlag.headerInsertTitle, reportFlag.footerInsertTimestamp, // reportFlag.openOutput); // hsb.description = "About content element: " + element.getTypology().displayDescription; // sb = hsb; // if (autoSaveAndOpen) // { // String path = hsb.saveOutput(); // run.startApplication(externalTool.firefox, path); // } //} if (element is IContentPage) { IContentPage _pageElement = element as IContentPage; // _pageElement.items.makeReport(sb, 20); //_pageElement.paragraphs.makeReport(sb, 20); //_pageElement.sentences.makeReport(sb, 20); //_pageElement.tokens.makeReport(sb, 20); //_pageElement.chunks.makeReport(sb, 20); } return(sb); }
public static void FromRestValue(this JToken bsonValue, string fieldName, IContentElement contentItem, IContentSchema schema) { if (contentItem.Fields.TryGetValue(fieldName, out ContentField contentField)) { switch (bsonValue.Type) { case JTokenType.Null: break; case JTokenType.String: if (contentField is SingleValueContentField <string> stringField) { stringField.Value = bsonValue.Value <string>(); } else if (contentField is SingleValueContentField <Guid?> guidField) { guidField.Value = Guid.Parse(bsonValue.Value <string>()); } break; case JTokenType.Integer: if (contentField is SingleValueContentField <short?> shortField) { shortField.Value = bsonValue.Value <short?>(); } else if (contentField is SingleValueContentField <int?> intField) { intField.Value = bsonValue.Value <int?>(); } else if (contentField is SingleValueContentField <long?> longField) { longField.Value = bsonValue.Value <long?>(); } break; case JTokenType.Float: ((SingleValueContentField <double?>)contentField).Value = bsonValue.Value <double>(); break; case JTokenType.Boolean: ((SingleValueContentField <bool?>)contentField).Value = bsonValue.Value <bool>(); break; //case JTokenType.Guid: // ((SingleContentField<Guid?>)contentField).Value = bsonValue.Value<Guid>(); // break; case JTokenType.Array: if (contentField is ArrayField arrayField) { if (schema.Fields.TryGetValue(fieldName, out ContentSchemaField definition)) { ArrayFieldOptions arrayOptions = definition.Options as ArrayFieldOptions; foreach (JObject item in bsonValue) { ArrayFieldItem arrayFieldItem = arrayOptions.CreateArrayField(); foreach (var subitem in item) { FromRestValue(subitem.Value, subitem.Key, arrayFieldItem, arrayOptions); } arrayField.Items.Add(arrayFieldItem); } } } break; case JTokenType.Object: if (contentField is ReferenceField referenceField) { if (bsonValue.HasValues) { RestContentItem restContentItem = bsonValue.ToObject <RestContentItem>(NewtonJsonExtensions.CreateSerializer()); referenceField.ContentItem = restContentItem.ToModel(); } } else if (contentField is EmbedField embedField) { RestContentEmbedded restContentItem = bsonValue.ToObject <RestContentEmbedded>(NewtonJsonExtensions.CreateSerializer()); embedField.ContentEmbedded = restContentItem.ToModel(); } else if (contentField is AssetField assetField) { if (bsonValue.HasValues) { RestAsset restAsset = bsonValue.ToObject <RestAsset>(); assetField.Asset = restAsset.ToModel(); } } else { ContentField c = (ContentField)bsonValue.ToObject(contentField.GetType(), NewtonJsonExtensions.CreateSerializer()); contentItem.Fields[fieldName] = c; } break; } } }
public static string?GetSlug(this IContentElement contentItem, string name) { SlugField field = contentItem.GetField <SlugField>(name); return(field.Value); }
public List <string> Query(contentRelationQueryType qType, contentRelationType qRelation, IContentElement qReference, int limit = -1) { List <string> output = new List <string>(); contentElementList elements = Query(qRelation, qReference, limit); foreach (IContentElement element in elements) { switch (qType) { case contentRelationQueryType.gatherContents: output.Add(element.content); break; default: break; } } return(output); }
public List <CF> Query <CF>(contentRelationQueryType qType, contentRelationType qRelation, IContentElement qReference, int limit = -1) { List <CF> output = new List <CF>(); contentElementList elements = Query(qRelation, qReference, limit); foreach (IContentElement element in elements) { switch (qType) { case contentRelationQueryType.gatherFlags: IContentToken ict = element as IContentToken; if (ict != null) { output.AddRange(ict.flags.getEnumListFromFlags <CF>()); // output.populateWith(ict.flags); } break; case contentRelationQueryType.gatherSentenceFlags: IContentSentence ics = element as IContentSentence; if (ics != null) { output.AddRange(ics.sentenceFlags.getEnumListFromFlags <CF>()); // output.populateWith(ics.sentenceFlags); } break; case contentRelationQueryType.gatherParagraphFlags: IContentParagraph icp = element as IContentParagraph; if (icp != null) { output.AddRange(icp.flags.getEnumListFromFlags <CF>()); // output.populateWith(icp.flags); } // output.populateWith(icp.flags); break; case contentRelationQueryType.gatherBlockTags: IContentBlock icb = element as IContentBlock; if (icb != null) { output.AddRange(icb.flags.getEnumListFromFlags <CF>()); // output.populateWith(icb.flags); } break; case contentRelationQueryType.gatherOrigins: throw new NotImplementedException("gatherOrigin"); //IContentToken icto = element as IContentToken; //if (icto != null) output.Add((CF)icto.origin); break; default: //output.populateWith(element.flags); break; } } return(output); }
public static bool?GetBool(this IContentElement contentItem, string name) { BoolField field = contentItem.GetField <BoolField>(name); return(field.Value); }
public static T GetField <T>(this IContentElement contentItem, string name) where T : ContentField { return((T)GetField(contentItem, name)); }
public contentParagraph(string __content, IContentElement __parent) { items = new contentSentenceCollection(); content = __content; parent = __parent; }
public static DateTime?GetDate(this IContentElement contentItem, string name) { DateField field = contentItem.GetField <DateField>(name); return(field.Value); }
public static long?GetInteger(this IContentElement contentItem, string name) { IntegerField field = contentItem.GetField <IntegerField>(name); return(field.Value); }
public static double?GetFloat(this IContentElement contentItem, string name) { FloatField field = contentItem.GetField <FloatField>(name); return(field.Value); }
public static T?GetSingleValueField <T>(this IContentElement contentItem, string name) { return(((SingleValueContentField <T>)contentItem.Fields[name]).Value); }
public override ElementViewHolder CreateElementViewHolder(ViewGroup container, IContentElement element) { if (element is IBodyPart) { return(new WebViewBodyPartViewHolder(_displayContext, container, element as IBodyPart)); } return(base.CreateElementViewHolder(container, element)); }
public static Asset?GetAsset(this IContentElement contentItem, string name) { AssetField field = contentItem.GetField <AssetField>(name); return(field.Asset); }
public virtual ElementViewHolder CreateElementViewHolder(ViewGroup container, IContentElement element) { if (element is ICommonPart) { return(new CommonPartViewHolder(_displayContext, container, element as ICommonPart)); } else if (element is ITitlePart) { return(new TitlePartViewHolder(_displayContext, container, element as ITitlePart)); } else if (element is IBodyPart) { return(new BodyPartViewHolder(_displayContext, container, element as IBodyPart)); } else if (element is ITermPart) { return(new TermPartViewHolder(_displayContext, container, element as ITermPart)); } else if (element is ITaxonomyPart) { return(new TaxonomyPartViewHolder(_displayContext, container, element as ITaxonomyPart)); } else if (element is IImagePart) { return(new ImagePartViewHolder(_displayContext, container, element as IImagePart)); } else if (element is IBooleanField) { return(new BooleanFieldViewHolder(_displayContext, container, element as IBooleanField)); } else if (element is IMediaField) { return(new MediaFieldViewHolder(_displayContext, container, element as IMediaField)); } else { return(new ElementViewHolder <IContentElement>(_displayContext, container, element)); } }
public static string?GetTextArea(this IContentElement contentItem, string name) { TextAreaField field = contentItem.GetField <TextAreaField>(name); return(field.Value); }
/// <summary> /// Vraca listu elemenata u skladu sa upitom /// </summary> /// <param name="qRelation"></param> /// <param name="qReference"></param> /// <param name="limit"></param> /// <returns></returns> public contentElementList Query(contentRelationType qRelation, IContentElement qReference, int limit = -1) { contentElementList output = new contentElementList(); int i = 0; IContentElement hIndex; switch (qRelation) { case contentRelationType.self: output.AddNullSafe(qReference); break; case contentRelationType.next: output.AddNullSafe(qReference.next); break; case contentRelationType.prev: output.AddNullSafe(qReference.prev); break; case contentRelationType.both: output.AddNullSafe(qReference.next); output.AddNullSafe(qReference.prev); break; case contentRelationType.manyBoth: break; case contentRelationType.manyNext: hIndex = qReference; do { hIndex = takeIndex(hIndex, contentRelationType.next, i, limit); output.AddNullSafe(hIndex); i++; } while (hIndex != null); break; case contentRelationType.manyPrev: hIndex = qReference; do { hIndex = takeIndex(hIndex, contentRelationType.prev, i, limit); output.AddNullSafe(hIndex); i++; } while (hIndex != null); break; case contentRelationType.parent: output.AddNullSafe(qReference.parent); break; case contentRelationType.manyParent: hIndex = qReference; do { hIndex = takeIndex(hIndex, contentRelationType.parent, i, limit); output.AddNullSafe(hIndex); i++; } while (hIndex != null); break; case contentRelationType.parentOneBefore: hIndex = qReference.parent; if (hIndex != null) { hIndex = take(hIndex, contentRelationType.prev); output.AddNullSafe(hIndex); } break; case contentRelationType.parentOneAfter: hIndex = qReference.parent; if (hIndex != null) { hIndex = take(hIndex, contentRelationType.next); output.AddNullSafe(hIndex); } break; case contentRelationType.parentManyBefore: hIndex = qReference.parent; do { hIndex = takeIndex(hIndex, contentRelationType.prev, i, limit); output.AddNullSafe(hIndex); i++; } while (hIndex != null); break; case contentRelationType.parentManyAfter: hIndex = qReference.parent; do { hIndex = takeIndex(hIndex, contentRelationType.next, i, limit); output.AddNullSafe(hIndex); i++; } while (hIndex != null); break; default: logSystem.log("contentCollection Query :: contentRelationType not supported: [" + qRelation.ToString() + "]", logType.ExecutionError); break; } return(output); }
public static ContentItem?GetReference(this IContentElement contentItem, string name) { ReferenceField field = contentItem.GetField <ReferenceField>(name); return(field.ContentItem); }