/// <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; } }
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)); } }
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)); } }
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); }
private CompoundTag CreateTestNbtTag() { var tag = new CompoundTag() { Name = "hello world", }; var subTag = new StringTag() { Name = "name", Value = "Bananrama", }; tag.Items.Add(subTag); return tag; }
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 ++; }