static List <DmTagNodeReversed> GetParentNodes(DmContext context, DmTagNode node) { List <DmTagNodeReversed> res = new List <DmTagNodeReversed>(); if (node.Children == null || node.Children.Count == 0) { res.Add(new DmTagNodeReversed() { Tag = node.Tag, Type = node.Type }); context.TagNodesReversed.Add(res[0]); return(res); } foreach (DmTagNode child in node.Children) { List <DmTagNodeReversed> list = GetParentNodes(context, child); foreach (DmTagNodeReversed rchild in list) { DmTagNodeReversed rnode = new DmTagNodeReversed() { Tag = node.Tag, Type = node.Type, Parent = rchild }; context.TagNodesReversed.Add(rnode); res.Add(rnode); } } return(res); }
private void tlCategories_DoubleClick(object sender, EventArgs e) { if (File == null) { return; } TreeListNode node = this.tlCategories.CalcHitInfo(this.tlCategories.PointToClient(Control.MousePosition)).Node; if (node == null) { return; } object item = this.tlCategories.GetDataRecordByNode(node); DmTag tag = item as DmTag; DmTagNode tnode = item as DmTagNode; if (tnode != null) { tag = tnode.Tag; } if (File.ContainsTag(tag, TagType)) { XtraMessageBox.Show("This tag has been already added.", SettingsStore.ApplicationName); } Model.AddKeyword(File, tag, TagType); InitializeAddedKeywordsEdit(tag); }
void InitializeTags(DmContext context, TagNodeDataSource source) { foreach (TagNode node in source.Nodes) { DmTag tag = GetOrCreateTag(context, node); node.Tag = tag; DmTagNode tagNode = CreateNode(node); context.TagNodes.Add(tagNode); } }
DmTagNode CreateNode(TagNode node) { DmTagNode dn = new DmTagNode() { Id = GetTagGuidForId(node.Id), Tag = node.Tag, Type = TagType.Tag }; if (node.ParentId != -1) { dn.ParentId = GetTagGuidForId(node.ParentId); } node.Node = dn; return(dn); }
public override object GetResultValue() { DmTagNode node = GetSelectedDataItem() as DmTagNode; if (node == null) { return(null); } foreach (TokenEditToken token in OwnerEdit.Properties.Tokens) { if (token.Value == node.Tag) { return(token); } } return(null); }
static List <DmTagNodeReversed> ConntectNodeToChildren(DmContext context, DmTagNode node) => GetParentNodes(context, node);