public static void Reflect(TagManager dest, TagTreeViewItemModelManager source) { foreach (var deletedTag in source.DeletedTags) { dest.Remove(deletedTag.Id); } dest.ReconnectAllToBaseTag(); foreach (var tag in source.AddedTags) { var addNewTag = new TagModel(tag.Id) { Name = tag.Name }; dest.Add(addNewTag); dest.ConnectTags(dest.GetBaseTag(), addNewTag); } foreach (var tag in dest.TagDictionary.Values) { if (tag.IsBase()) { continue; } var sourceTag = source.TagDictionary[tag.Id]; var parent = dest.TagDictionary[sourceTag.Parent.Id]; dest.DisconnectFromParent(tag); dest.ConnectTags(parent, tag); tag.Name = sourceTag.Name; } }
public static BaseTagTreeViewItemModel ConvertBaseTag(TagModel tag) { var model = new BaseTagTreeViewItemModel(tag.Id); model.Name = tag.Name; return model; }
public void OnTagRemoved(TagModel tag) { if (TagRemoved != null) { TagRemoved(this, tag); } }
public void ChangeParent(TagModel target, TagModel draggedItem) { _manager.DisconnectFromParent(draggedItem); _manager.ConnectTags(target, draggedItem); var modelItem = target as TagTreeViewItemModel; modelItem.IsExpanded = true; }
public static void ExpandChild(TagTreeViewItemModel parentTag, TagModel baseTag, ref TagTreeViewItemModelManager manager) { foreach (var child in baseTag.Children) { var childTag = ConvertTagToTagTreeViewItemModel.ConvertTag(child); manager.Add(childTag); manager.ConnectTags(parentTag, childTag); ExpandChild(childTag, child, ref manager); } }
public static TagTreeViewItemModel ConvertTag(TagModel tag) { if (tag.IsBase()) { return ConvertBaseTag(tag); } var model = new TagTreeViewItemModel(tag.Id); model.Name = tag.Name; return model; }
protected override void RemoveFromDictonary(TagModel tag) { base.RemoveFromDictonary(tag as TagModel); if (_addedTags.Contains(tag)) { _addedTags.Remove(tag as TagTreeViewItemModel); } else { _deletedTags.Add(tag as TagTreeViewItemModel); } }
private static SaveTagModel GetSaveTag(TagModel tagModel) { var saveTagModel = new SaveTagModel(); saveTagModel.Id = tagModel.Id; saveTagModel.Name = tagModel.Name; saveTagModel.ParentId = tagModel.Parent.Id; foreach (var child in tagModel.Children) { saveTagModel.Children.Add(child.Id); } return saveTagModel; }
public virtual void Remove(TagModel tag) { if (tag.Parent == null) { return; } RemoveChildren(tag); RemoveFromDictonary(tag); OnTagRemoved(tag); DisconnectFromParent(tag); DoPostRemove(tag); }
public bool HasInDescendent(TagModel search) { foreach (var tag in _children) { if (tag.Id == search.Id) { return true; } if (tag.HasInDescendent(search)) { return true; } } return false; }
public bool HasInDescendent(TagModel search) { foreach (var tag in _children) { if (tag.Id == search.Id) { return(true); } if (tag.HasInDescendent(search)) { return(true); } } return(false); }
protected virtual void RemoveFromDictonary(TagModel tag) { _tagDictionary.Remove(tag.Id); }
public void RemoveChildren(TagModel tag) { foreach(var child in tag.Children) { RemoveFromDictonary(child); RemoveChildren(child); OnTagRemoved(child); DoPostRemove(child); } tag.Children.Clear(); }
protected virtual void DoPostRemove(TagModel tag) { EventAggregator.OnTagModelModified(this, new Event.TagModelModifiedEventArgs() { Kind = Event.TagModelModifiedKind.Deleted, ModifiedTag = tag, } ); }
private void ChangeIsAppearedTag(TagModel tag, bool isAppeared) { if (isAppeared == false) { SelectingModel.Tags.Remove(tag.Id); } }
public void DisconnectFromParent(TagModel tag) { tag.Parent.Children.Remove(tag); tag.Parent = null; }
void _treeViewModel_TagRemoved(object sender, TagModel deleteTag) { if (_selectingTags.Contains(deleteTag)) { _selectingTags.Remove(deleteTag); } }
public bool IsDeleted(TagModel tag) { return _deletedTags.Find((e) => e.Id == tag.Id) != null; }
public void Add(TagModel tag) { _tagDictionary.Add(tag.Id, tag); DoPostAdd(tag); }
public void Remove(TagModel deleteTarget) { _manager.Remove(deleteTarget); }
private bool CheckDropTarget(TagModel sourceItem, TagModel targetItem) { if (sourceItem.Id == targetItem.Id) { return false; } if (sourceItem.HasInDescendent(targetItem)) { return false; } return true; }
void _manager_TagRemoved(object sender, TagModel tag) { OnPropertyChanged("Tags"); OnTagRemoved(tag); }
protected override void DoPostAdd(TagModel tag) { }
public void ConnectTags(TagModel parent, TagModel child) { parent.Children.Add(child); child.Parent = parent; }
protected override void DoPostRemove(TagModel tag) { }
public void RemoveSelection(TagModel selectingTag) { if (selectingTag == null) { return; } if (!_selectingTags.Contains(selectingTag)) { return; } SelectingTags.Remove(selectingTag); OnSelectingButtonChanged(); }