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);
        }
        private void teAssignedKeywords_Properties_TokenRemoved(object sender, TokenEditTokenRemovedEventArgs e)
        {
            DmTag tag = (DmTag)e.Token.Value;

            Model.RemoveKeyword(File, tag, tagType);
            UpdateSuggestedKeywordsGallery();
        }
 private void UpdateSuggestedKeywordsGallery()
 {
     this.gcSuggestedKeywords.Gallery.BeginUpdate();
     try {
         this.gcSuggestedKeywords.Gallery.Groups.Clear();
         foreach (TokenEditToken token in this.teAssignedKeywords.Properties.SelectedItems)
         {
             DmTag            tag   = (DmTag)token.Value;
             GalleryItemGroup group = null;
             IEnumerable <DmTagNodeReversed> suggestedTags = Model.GetSuggestedTags(tag);
             foreach (DmTagNodeReversed suggested in suggestedTags)
             {
                 if (File.ContainsTag(suggested.Tag))
                 {
                     continue;
                 }
                 if (group == null)
                 {
                     group         = new GalleryItemGroup();
                     group.Caption = tag.Value;
                     group.Tag     = tag;
                     gcSuggestedKeywords.Gallery.Groups.Add(group);
                 }
                 GalleryItem item = new GalleryItem()
                 {
                     Caption = suggested.Tag.Value, Tag = suggested.Tag
                 };
                 group.Items.Add(item);
             }
         }
     } finally {
         this.gcSuggestedKeywords.Gallery.EndUpdate();
     }
 }
        private void teAssignedKeywords_Properties_TokenAdded(object sender, TokenEditTokenAddedEventArgs e)
        {
            DmTag tag = (DmTag)e.Token.Value;

            if (File.ContainsTag(tag))
            {
                return;
            }
            Model.AddKeyword(File, tag, TagType);
            UpdateSuggestedKeywordsGallery();
        }
        private void galleryControlGallery1_ItemDoubleClick(object sender, GalleryItemClickEventArgs e)
        {
            DmTag tag = (DmTag)e.Item.Tag;

            if (File.ContainsTag(tag, TagType))
            {
                return;
            }
            Model.BeginUpdateFile(File);
            Model.AddKeyword(File, tag, TagType);
            Model.EndUpdateFile(File);
            InitializeAddedKeywordsEdit(tag);
        }
        public void AddKeyword(string keywordText)
        {
            DmTag tag = Model.GetTag(keywordText, TagType);

            if (tag == null)
            {
                tag = Model.AddTag(keywordText, TagType);
            }
            Model.BeginUpdateFile(File);
            Model.AddKeyword(File, tag, TagType);
            Model.EndUpdateFile(File);
            InitializeAddedKeywordsEdit(tag);
        }
 private void InitializeAddedKeywordsEdit(DmTag selectTag)
 {
     this.teAssignedKeywords.Properties.BeginUpdate();
     this.teAssignedKeywords.Properties.EditValueType = TokenEditValueType.List;
     try {
         if (File == null)
         {
             return;
         }
         List <DmTag> tags = File.GetTags(TagType);
         this.teAssignedKeywords.EditValue = tags;
         UpdateSuggestedKeywordsGallery();
     } finally {
         this.teAssignedKeywords.Properties.EndUpdate();
     }
 }