示例#1
0
        private void txtTagSearch_TextChanged(object sender, EventArgs e)
        {
            flowLayoutPanel1.Controls.Clear();

            List <TFSTag> Tags = mTagsDB.FindTagsLike(txtTagSearch.Text);

            if (Tags == null)
            {
                return;
            }

            //lstTags.Items.Clear();
            foreach (TFSTag Tag in Tags)
            {
                //lstTags.Items.Add(Tag.Name);
                mTagsDB.GetTagHierarchy(Tag);
                var tb = new ucTagBranch(Tag);
                tb.TagClick += TagClick;
                flowLayoutPanel1.Controls.Add(tb);
            }
        }
示例#2
0
        public void TagClick(object sender, TagsFS.ucTagBranch.TagClickEventArgs e)
        {
            this.Text = e.Tag.Name;

            flowLayoutPanel1.Controls.Clear();

            List <TFSTag> Tags = mTagsDB.FindAllTagChildren(e.Tag);

            if (Tags == null)
            {
                return;
            }

            //lstTags.Items.Clear();
            foreach (TFSTag Tag in Tags)
            {
                //lstTags.Items.Add(Tag.Name);
                mTagsDB.GetTagHierarchy(Tag);
                var tb = new ucTagBranch(Tag);
                tb.TagClick += TagClick;
                flowLayoutPanel1.Controls.Add(tb);
            }
        }
示例#3
0
        private void txtFileSearch_TextChanged(object sender, EventArgs e)
        {
            Text = "FindFilesLike";
            String fileswhere = "";
            String tagswhere  = "";
            String attrswhere = "";

            if (txtFileSearch.Text == "")
            {
                return;
            }
            var prms = txtFileSearch.Text.Split(' ');

            foreach (var prm in prms)
            {
                if (prm != "")
                {
                    //tagswhere += "name REGEXP '[[:<:]]" + prm + "[[:>:]]' AND ";
                    tagswhere += "([name] LIKE '% " + prm + " %' OR ";
                    tagswhere += "[name] LIKE  '% " + prm + "' OR ";
                    tagswhere += "[name] LIKE  '" + prm + " %' OR ";

                    tagswhere += "[name] LIKE  '% " + prm + "/_%' ESCAPE '/' OR ";
                    tagswhere += "[name] LIKE  '%/_" + prm + " %' ESCAPE '/' OR ";

                    tagswhere += "[name] LIKE  '%/_" + prm + "/_%' ESCAPE '/' OR ";
                    tagswhere += "[name] LIKE  '%/_" + prm + "' ESCAPE '/' OR ";
                    tagswhere += "[name] LIKE  '" + prm + "/_%' ESCAPE '/' OR ";

                    tagswhere += "[name] LIKE  '" + prm + "') AND ";


                    attrswhere += "([value] LIKE '% " + prm + " %' OR ";
                    attrswhere += "[value] LIKE  '% " + prm + "' OR ";
                    attrswhere += "[value] LIKE  '" + prm + " %' OR ";

                    attrswhere += "[value] LIKE  '% " + prm + "/_%' ESCAPE '/' OR ";
                    attrswhere += "[value] LIKE  '%/_" + prm + " %' ESCAPE '/' OR ";

                    attrswhere += "[value] LIKE  '%/_" + prm + "/_%' ESCAPE '/' OR ";
                    attrswhere += "[value] LIKE  '%/_" + prm + "' ESCAPE '/' OR ";
                    attrswhere += "[value] LIKE  '" + prm + "/_%' ESCAPE '/' OR ";

                    attrswhere += "[value] LIKE  '" + prm + "') AND ";

                    fileswhere += "path LIKE '%" + prm + "%' AND ";

                    //if (prm.Substring(0, 4) == "tag:")
                    //    tagswhere += "name LIKE '" + prm.Substring(4) + "'";
                    //else if (prm.Substring(0, 5) == "attr:")
                    //    attrswhere += "value LIKE '" + prm.Substring(5) + "'";
                    //else
                    //    fileswhere += "path LIKE '" + Name + "'";
                }
            }
            tagswhere  = tagswhere.Substring(0, tagswhere.Length - 5);
            attrswhere = attrswhere.Substring(0, attrswhere.Length - 5);
            fileswhere = fileswhere.Substring(0, fileswhere.Length - 5);

            var Tags = mTagsDB.FindTagsWhere(tagswhere);

            flowLayoutPanel1.Controls.Clear();
            if (Tags != null)
            {
                foreach (TFSTag Tag in Tags)
                {
                    //lstTags.Items.Add(Tag.Name);
                    //mTagsDB.GetTagHierarchy(Tag);
                    var tb = new ucTagBranch(Tag);
                    tb.TagClick += TagClick;
                    flowLayoutPanel1.Controls.Add(tb);
                }
            }

            var Attrs = mTagsDB.FindFileAttrsWhere(attrswhere);

            if (Attrs.Count > 10)
            {
                Attrs = Attrs.GetRange(0, 10);
            }

            //ltAttributes.Controls.Clear();
            while (ltAttributes.Controls.Count > 1)
            {
                ltAttributes.Controls.RemoveAt(0);
            }

            if (Attrs != null)
            {
                foreach (TFSFileAttribute FileAttr in Attrs)
                {
                    var Attribute = new ucFileAttribute(FileAttr);
                    ltAttributes.Controls.Add(Attribute);
                    ltAttributes.Controls.SetChildIndex(Attribute, ltAttributes.Controls.Count - 2);
                }
            }

            //return;
            var Files = mTagsDB.FindFilesWhere(fileswhere); //Like("%" + txtFileSearch.Text + "%");

            if (Files.Count > 10)
            {
                Files = Files.GetRange(0, 10);
            }
            Text = "FillFilesAttributes";
            mTagsDB.FillFilesAttributes(Files);
            Text = "FillFilesTags";
            mTagsDB.FillFilesTags(Files);

            ltFiles.Controls.Clear();

            Text = "Filling list";

            int i = 10;

            foreach (TFSFile File in Files)
            {
                ucFile ucF = new ucFile(File);
                ucF.Enter += ucF_Enter;
                //ucF.Dock = DockStyle.Fill;
                ucF.Width = ltFiles.Width - 30;
                ltFiles.Controls.Add(ucF);

                i--;
                if (i < 0)
                {
                    return;
                }
            }

            Text = "Ready";
        }