void write_tab_to_json(int tab_id) { if (tab_id > 0 && tab_id < tab_fld.TabCount - 1) { DbdCharacter last_char = dbd_char_list[tab_id - 1]; json_obj["CharacterData"][last_char.EntryNum]["CharacterDataValue"]["inventoryData"] = JToken.FromObject(last_char.GetInventoryData()); cur_json = Newtonsoft.Json.JsonConvert.SerializeObject(json_obj, Newtonsoft.Json.Formatting.None); } else if (tab_id == tab_fld.TabCount - 1) { cur_json = json_text_field.Text; json_obj = JObject.Parse(cur_json); //Compactify cur_json = Newtonsoft.Json.JsonConvert.SerializeObject(json_obj, Newtonsoft.Json.Formatting.None); } }
void fill_tabs() { if (cur_json.Length == 0) { return; } //Parse json try { json_obj = JObject.Parse(cur_json); //Json text json_text_field.Text = Newtonsoft.Json.JsonConvert.SerializeObject(json_obj, Newtonsoft.Json.Formatting.Indented); dbd_char_list.Clear();; main_val_listview.Clear(); main_val_listview.Items.Clear(); main_val_listview.Columns.Clear(); main_val_listview.Columns.Add("Key", -2, HorizontalAlignment.Left); main_val_listview.Columns.Add("Value", -2, HorizontalAlignment.Left); main_val_listview.View = View.Details; foreach (string key in main_keys) { var item = new ListViewItem(new[] { key, json_obj.GetValue(key).ToString() }); main_val_listview.Items.Add(item); } main_val_listview.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); main_val_listview.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); IList <JToken> results = json_obj["CharacterData"].Children().ToList(); IList <MainForm.CharacterData> searchResults = new List <MainForm.CharacterData>(); item_cnt = 0; int entry = 0; foreach (JToken result in results) { MainForm.CharacterData cc = result.ToObject <MainForm.CharacterData>(); searchResults.Add(cc); if (cc.CharacterDataID == "-1") { ++entry; continue; } IList <JToken> item_token = cc.CharacterDataValue["inventoryData"].Children().ToList(); DbdCharacter dbd_char = new DbdCharacter(cc.CharacterDataID, entry); foreach (JToken item in item_token) { MainForm.InventoryData inv_item = item.ToObject <MainForm.InventoryData>(); if (!dbd_char.Inventory.ContainsKey(inv_item.name)) { dbd_char.Inventory[inv_item.name] = 1; } else { ++dbd_char.Inventory[inv_item.name]; } ++item_cnt; } dbd_char_list.Add(dbd_char); ++entry; } for (int i = 0; i < char_tabs.Count; ++i) { char_tabs[i].Dispose(); } char_tabs.Clear(); int cnum = dbd_char_list.Count; foreach (DbdCharacter dbd_char in dbd_char_list.Reverse()) { CharEditTab gui_tab = new CharEditTab(this, --cnum, dbd_char); char_tabs.Add(gui_tab); } } catch (Newtonsoft.Json.JsonReaderException) { MessageBox.Show("Savegame file is not valid :-("); } }
public CharEditTab(MainForm parent_form, int char_num, DbdCharacter the_dbd_char) { parent = parent_form; this.slasher_tab = new System.Windows.Forms.TabPage(); this.add_item_btn = new System.Windows.Forms.Button(); this.modify_lvl_btn = new System.Windows.Forms.Button(); this.copy_btn = new System.Windows.Forms.Button(); this.paste_btn = new System.Windows.Forms.Button(); this.modify_amount_btn = new System.Windows.Forms.Button(); this.slasher_list_view = new System.Windows.Forms.ListView(); this.slasher_tab.SuspendLayout(); parent_form.SuspendLayout(); dbd_char = the_dbd_char; this.add_item_btn.Location = new System.Drawing.Point(265, 470); this.add_item_btn.Name = "add_item_btn"; this.add_item_btn.Size = new System.Drawing.Size(251, 40); this.add_item_btn.Text = "Add new item"; this.add_item_btn.UseVisualStyleBackColor = true; this.add_item_btn.Click += new System.EventHandler(parent.add_item_btn_Click); this.modify_amount_btn.Location = new System.Drawing.Point(5, 470); this.modify_amount_btn.Name = "modify_amount_btn"; this.modify_amount_btn.Size = new System.Drawing.Size(251, 40); this.modify_amount_btn.Text = "Modify amount"; this.modify_amount_btn.UseVisualStyleBackColor = true; this.modify_amount_btn.Click += new System.EventHandler(parent.modify_amount_btn_Click); this.modify_lvl_btn.Location = new System.Drawing.Point(603, 470); this.modify_lvl_btn.Name = "modify_lvl_btn"; this.modify_lvl_btn.Size = new System.Drawing.Size(48, 40); this.modify_lvl_btn.Text = "Level"; this.modify_lvl_btn.UseVisualStyleBackColor = true; this.modify_lvl_btn.Click += new System.EventHandler(parent.set_level_btn_Click); this.copy_btn.Location = new System.Drawing.Point(659, 470); this.copy_btn.Name = "copy_btn"; this.copy_btn.Size = new System.Drawing.Size(115, 40); this.copy_btn.Text = "Copy"; this.copy_btn.UseVisualStyleBackColor = true; this.copy_btn.Click += new System.EventHandler(parent.copy_items_btn_Click); this.paste_btn.Location = new System.Drawing.Point(661 + 115 + 11, 470); this.paste_btn.Name = "paste_btn"; this.paste_btn.Size = new System.Drawing.Size(115, 40); this.paste_btn.Text = "Paste"; this.paste_btn.UseVisualStyleBackColor = true; this.paste_btn.Click += new System.EventHandler(parent.paste_items_btn_Click); this.slasher_list_view.FullRowSelect = true; this.slasher_list_view.Location = new System.Drawing.Point(5, 6); this.slasher_list_view.MultiSelect = true; this.slasher_list_view.Name = "slasher_list_view_" + char_num; this.slasher_list_view.Size = new System.Drawing.Size(896, 448); this.slasher_list_view.UseCompatibleStateImageBehavior = false; this.slasher_list_view.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(parent.slasher_tab_MouseDoubleClick); this.slasher_tab.Controls.Add(this.modify_lvl_btn); this.slasher_tab.Controls.Add(this.copy_btn); this.slasher_tab.Controls.Add(this.paste_btn); this.slasher_tab.Controls.Add(this.add_item_btn); this.slasher_tab.Controls.Add(this.modify_amount_btn); this.slasher_tab.Controls.Add(this.slasher_list_view); this.slasher_tab.Location = new System.Drawing.Point(4, 22); this.slasher_tab.Name = "tabPage" + char_num; this.slasher_tab.Size = new System.Drawing.Size(908, 507); if (dbd_char.IsKiller()) { this.slasher_name = replace_name("kill_" + dbd_char.TruncDataId()); this.slasher_tab.Text = this.slasher_name; } else { this.slasher_name = replace_name("surv_" + dbd_char.TruncDataId()); this.slasher_tab.Text = this.slasher_name; } this.has_prestige = check_has_prestige(this.slasher_name); this.slasher_tab.UseVisualStyleBackColor = true; fill_tab(); IntPtr h = parent.get_tab_fld().Handle; parent.get_tab_fld().TabPages.Insert(1, this.slasher_tab); this.slasher_tab.ResumeLayout(false); parent_form.ResumeLayout(false); }