Exemple #1
0
 /// <summary>
 /// 分析标签
 /// </summary>
 /// <param name="parser">TemplateParser</param>
 /// <param name="tc">Token集合</param>
 /// <returns></returns>
 public Tag Parse(TemplateParser parser, TokenCollection tc)
 {
     if (tc!=null
         && tc.Count == 3
         && tc.First.TokenKind == TokenKind.StringStart
         && tc[1].TokenKind == TokenKind.String
         && tc.Last.TokenKind == TokenKind.StringEnd
         )
     {
         StringTag tag = new StringTag();
         tag.Value = tc[1].Text;
         return tag;
     }
     return null;
 }
        public void UpdateTags()
        {
            List<StringTag> stringTags = tags.GetTags(subcategory);

            /* Set a default value */
            if (stringTags.Count == 0) {
                StringTag tag = new StringTag{Value=subcategory[0], SubCategory=subcategory};
                tags.Add(tag);
                stringTags.Add(tag);
            }

            foreach (var tag in stringTags) {
                if (dict.ContainsKey(tag))
                    dict[tag].Active = true;
            }
        }
Exemple #3
0
        public async Task TestStringSerialization()
        {
            StringTag st = Helpers.GenerateLongStringTag();

            using (MemoryStream ms = new MemoryStream())
                using (FileStream fs = File.Create(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "String.nbt")))
                {
                    st.WriteTo(ms);

                    ms.Position = 0;
                    await ms.CopyToAsync(fs);

                    Console.WriteLine("Finished string serialization.");

                    ms.Position = 0;
                    Assert.AreEqual((string)st, (string)Tag.ReadFrom <StringTag>(ms));
                }
        }
Exemple #4
0
        private void AddTagWidget(StringTag tag, bool radio)
        {
            CheckButton button;
            uint        row, col;

            if (radio)
            {
                if (firstRB == null)
                {
                    button = firstRB = new RadioButton(tag.Value);
                }
                else
                {
                    button = new RadioButton(firstRB, tag.Value);
                }
            }
            else
            {
                button = new CheckButton(tag.Value);
            }
            button.WidthRequest = 120;

            button.Toggled += delegate(object sender, EventArgs e) {
                if (button.Active)
                {
                    if (!tags.Contains(tag))
                    {
                        tags.Add(tag);
                    }
                }
                else
                {
                    tags.Remove(tag);
                }
            };
            dict.Add(tag, button);
            row = count % BUTTONS_PER_ROW;
            col = count / BUTTONS_PER_ROW;
            table.Attach(button, row, row + 1, col, col + 1);
            button.ShowAll();
            count++;
        }
        /// <summary>
        /// Parse child tag
        /// </summary>
        protected override ITlvTag ParseChild(ITlvTag childTag)
        {
            switch (childTag.Type)
            {
            case Constants.PublicationData.TagType:
                return(PublicationData = childTag as PublicationData ?? new PublicationData(childTag));

            case Constants.PublicationRecord.PublicationReferencesTagType:
                StringTag refTag = GetStringTag(childTag);
                PublicationReferences.Add(refTag.Value);
                return(refTag);

            case Constants.PublicationRecord.PublicationRepositoryUriTagType:
                StringTag uriTag = GetStringTag(childTag);
                RepositoryUri.Add(uriTag.Value);
                return(uriTag);

            default:
                return(base.ParseChild(childTag));
            }
        }
Exemple #6
0
        public override string CreateString(int minIndex = -1)
        {
            Initialize();

            var lumaPart   = new EmptyTag();
            var chromaPart = new StringTag(Label);

            foreach (var tag in SubTags)
            {
                if (tag.ConnectedTo(m_ChromaTag))
                {
                    chromaPart.AddInputLabel(tag);
                }
                else
                {
                    lumaPart.AddInputLabel(tag);
                }
            }

            lumaPart.Initialize();
            chromaPart.Initialize();

            var luma = lumaPart
                       .CreateString(minIndex)
                       .FlattenStatus()
                       .PrependToStatus("Luma: ");

            var chroma = chromaPart
                         .CreateString(minIndex)
                         .FlattenStatus();

            if (!chroma.StartsWith("Chroma: "))
            {
                chroma = chroma.PrependToStatus(luma == "" ? "" : "Chroma: ");
            }

            return(chroma.AppendStatus(luma));
        }
        public void StringTagTest()
        {
            var tag = new StringTag();

            Assert.AreEqual(TagType.String, tag.Type);
        }
Exemple #8
0
        private CompoundTag CreateTestNbtTag()
        {
            var tag = new CompoundTag()
            {
                Name = "hello world",
            };

            var subTag = new StringTag()
            {
                Name = "name",
                Value = "Bananrama",
            };

            tag.Items.Add(subTag);

            return tag;
        }
Exemple #9
0
        private CompoundTag CreateBigTestNbtTag()
        {
            var tag = new CompoundTag()
            {
                Name = "Level",
            };

            var longTest = new LongTag()
            {
                Name = "longTest",
                Value = 9223372036854775807L,
            };
            tag.Items.Add(longTest);

            var shortTest = new ShortTag()
            {
                Name = "shortTest",
                Value = 32767,
            };
            tag.Items.Add(shortTest);

            var stringTest = new StringTag()
            {
                Name = "stringTest",
                Value = @"HELLO WORLD THIS IS A TEST STRING ÅÄÖ!",
            };
            tag.Items.Add(stringTest);

            var floatTest = new FloatTag()
            {
                Name = "floatTest",
                Value = 0.49823147F,
            };
            tag.Items.Add(floatTest);

            var intTest = new IntTag()
            {
                Name = "intTest",
                Value = 2147483647,
            };
            tag.Items.Add(intTest);

            var nestedCompoundTest = new CompoundTag()
            {
                Name = "nested compound test",
                Items = new List<Tag>()
                {
                    new CompoundTag()
                    {
                        Name = "ham",
                        Items = new List<Tag>()
                        {
                            new StringTag()
                            {
                                Name = "name",
                                Value = "Hampus",
                            },
                            new FloatTag()
                            {
                                Name = "value",
                                Value = 0.75F,
                            }
                        },
                    },
                    new CompoundTag()
                    {
                        Name = "egg",
                        Items = new List<Tag>()
                        {
                            new StringTag()
                            {
                                Name = "name",
                                Value = "Eggbert",
                            },
                            new FloatTag()
                            {
                                Name = "value",
                                Value = 0.5F,
                            }
                        },
                    }
                },
            };
            tag.Items.Add(nestedCompoundTest);

            var listTestLong = new ListTag()
            {
                Name = "listTest (long)",
                ItemType = TagType.Long,
                Length = 5,
                Items = new Tag[]
                {
                    new LongTag()
                    {
                        Value = 11,
                    },
                    new LongTag()
                    {
                        Value = 12,
                    },
                    new LongTag()
                    {
                        Value = 13,
                    },
                    new LongTag()
                    {
                        Value = 14,
                    },
                    new LongTag()
                    {
                        Value = 15,
                    },
                },
            };
            tag.Items.Add(listTestLong);

            var listTestCompound = new ListTag()
            {
                Name = "listTest (compound)",
                ItemType = TagType.Compound,
                Length = 2,
                Items = new Tag[]
                {
                    new CompoundTag()
                    {
                        Items = new List<Tag>()
                        {
                            new StringTag()
                            {
                                Name = "name",
                                Value = "Compound tag #0",
                            },
                            new LongTag()
                            {
                                Name = "created-on",
                                Value = 1264099775885L,
                            },
                        },
                    },
                    new CompoundTag()
                    {
                        Items = new List<Tag>()
                        {
                            new StringTag()
                            {
                                Name = "name",
                                Value = "Compound tag #1",
                            },
                            new LongTag()
                            {
                                Name = "created-on",
                                Value = 1264099775885L,
                            },
                        },
                    },
                },
            };
            tag.Items.Add(listTestCompound);

            var byteTest = new ByteTag()
            {
                Name = "byteTest",
                Value = 127,
            };
            tag.Items.Add(byteTest);

            var byteArrayTest = new ByteArrayTag()
            {
                Name = "byteArrayTest (the first 1000 values of (n*n*255+n*7)%100, starting with n=0 (0, 62, 34, 16, 8, ...))",
                Length = 1000,
                Items = new byte[1000],
            };
            for (int i = 0; i < 1000; ++i)
            {
                byteArrayTest.Items[i] = (byte)((i * i * 255 + i * 7) % 100);
            }
            tag.Items.Add(byteArrayTest);

            var doubleTest = new DoubleTag()
            {
                Name = "doubleTest",
                Value = 0.4931287132182315,
            };
            tag.Items.Add(doubleTest);

            return tag;
        }
        private void AddTagWidget(StringTag tag, bool radio)
        {
            CheckButton button;

            if (radio) {
                if (firstRB == null)
                    button = firstRB = new RadioButton (tag.Value);
                else
                    button = new RadioButton(firstRB, tag.Value);
            } else {
                button = new CheckButton(tag.Value);
            }

            button.Toggled += delegate(object sender, EventArgs e) {
                if (button.Active) {
                    if (!tags.Contains(tag))
                        tags.Add(tag);
                } else
                    tags.Remove(tag);
            };
            dict.Add(tag, button);
            buttonsbox.PackStart(button, false, false, 0);
            button.ShowAll();
        }
        void UpdateStats(Project project)
        {
            catStats.Clear();

            foreach (Category cat in project.Categories) {
                CategoryStats stats;
                List<Play> plays;
                int localTeamCount, visitorTeamCount;

                plays = project.PlaysInCategory (cat);
                CountPlaysInTeam(plays, out localTeamCount, out visitorTeamCount);
                stats = new CategoryStats(cat.Name, plays.Count, localTeamCount, visitorTeamCount);
                catStats.Add (stats);

                foreach (ISubCategory subcat in cat.SubCategories) {
                    SubCategoryStat subcatStat;

                    if (subcat is PlayerSubCategory)
                        continue;

                    subcatStat = new SubCategoryStat(subcat.Name);
                    stats.AddSubcatStat(subcatStat);

                     if (subcat is TagSubCategory) {
                        foreach (string option in subcat.ElementsDesc()) {
                            List<Play> subcatPlays;
                            StringTag tag;

                            tag = new StringTag{SubCategory=subcat, Value=option};
                            subcatPlays = plays.Where(p => p.Tags.Tags.Contains(tag)).ToList();
                            GetSubcategoryStats(subcatPlays, subcatStat, option,
                                stats.TotalCount, out localTeamCount, out visitorTeamCount);
                            GetPlayersStats(project, subcatPlays, option, subcatStat, cat);
                        }
                     }

                     if (subcat is TeamSubCategory) {
                        List<Team> teams = new List<Team>();
                        teams.Add(Team.LOCAL);
                        teams.Add(Team.VISITOR);

                        foreach (Team team in teams) {
                            List<Play> subcatPlays;
                            TeamTag tag;

                            tag = new TeamTag{SubCategory=subcat, Value=team};
                            subcatPlays = plays.Where(p => p.Teams.Tags.Contains(tag)).ToList();
                            GetSubcategoryStats(subcatPlays, subcatStat, team.ToString(),
                                stats.TotalCount, out localTeamCount, out visitorTeamCount);
                        }
                     }
                }
            }
        }
        private void AddTagWidget(StringTag tag, bool radio)
        {
            CheckButton button;
            uint row, col;

            if (radio) {
                if (firstRB == null)
                    button = firstRB = new RadioButton (tag.Value);
                else
                    button = new RadioButton(firstRB, tag.Value);
            } else {
                button = new CheckButton(tag.Value);
            }
            button.WidthRequest = 120;

            button.Toggled += delegate(object sender, EventArgs e) {
                if (button.Active) {
                    if (!tags.Contains(tag))
                        tags.Add(tag);
                } else
                    tags.Remove(tag);
            };
            dict.Add(tag, button);
            row = count % BUTTONS_PER_ROW;
            col = count / BUTTONS_PER_ROW;
            table.Attach (button, row, row+1, col, col+1);
            button.ShowAll();
            count ++;
        }