protected virtual void SetupElement( ElementBase elem, InfContentsElem17 cttElem, InfElementsElemContainer17 elElem) { elem.TitleTextId = elElem._elem.titleTextId; elem.Deleted = cttElem != null && cttElem.deleted != 0; elem.TemplateId = elElem._elem.templateId; elem.ConceptId = elElem._elem.conceptId; // elem.OnComponentPosChanged(-1, ComponentPos); elem.ComponentPos = elElem._elem.componPos; // elem.AFactor = elElem._elem.AFactor; if (cttElem != null) { elem.ParentId = cttElem.parentId; elem.FirstChildId = cttElem.firstChildId; elem.LastChildId = cttElem.lastChildId; elem.NextSiblingId = cttElem.nextSiblingId; elem.PrevSiblingId = cttElem.prevSiblingId; elem.DescendantCount = cttElem.descendantCount; elem.ChildrenCount = cttElem.childrenCount; } }
protected virtual ElementFieldFlags UpdateElement( ElementBase elem, InfContentsElem17 cttElem, InfElementsElemContainer17 elElem) { #if DEBUG && !DEBUG_IN_PROD LogTo.Debug("[{0} {1}] Updating", elem.GetType().Name, elem.Id); #endif ElementFieldFlags flags = ElementFieldFlags.None; void UpdateFlag(object sender, PropertyChangedEventArgs e) { var fieldFlag = ElementBase.FieldFlagMapping.SafeGet(e.PropertyName); flags |= fieldFlag; } elem.PropertyChanged += UpdateFlag; if (elElem != null) { elem.TitleTextId = elElem._elem.titleTextId; elem.TemplateId = elElem._elem.templateId; elem.ConceptId = elElem._elem.conceptId; elem.ComponentPos = elElem._elem.componPos; // elem.AFactor = elElem._elem.AFactor } if (cttElem != null) { elem.Deleted = cttElem.deleted != 0; elem.ParentId = cttElem.parentId; elem.FirstChildId = cttElem.firstChildId; elem.LastChildId = cttElem.lastChildId; elem.NextSiblingId = cttElem.nextSiblingId; elem.PrevSiblingId = cttElem.prevSiblingId; elem.DescendantCount = cttElem.descendantCount; elem.ChildrenCount = cttElem.childrenCount; } elem.PropertyChanged -= UpdateFlag; elem.OnUpdated(flags); return(flags); }
protected virtual void Commit(int id, InfContentsElem17 cttElem, InfElementsElemContainer17 elElem) { var el = _getElementFunc(id); if (el != null) { var flags = UpdateElement(el, cttElem, elElem); _onElementUpdatedCallback(el, flags); } else { el = _createFunc(id, (ElementType)elElem._elem.elementType); SetupElement(el, cttElem, elElem); _onElementCreatedCallback(el); } }