/// <summary> /// 貿易の新規ボタン押下時の処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnTradeNewButtonClick(object sender, EventArgs e) { Scenario scenario = Scenarios.Data; List<Treaty> trades = scenario.GlobalData.Trades; // 貿易リストに項目を追加する Treaty trade = new Treaty { StartDate = new GameDate(), EndDate = new GameDate(), Id = Scenarios.GetNewTypeId(Scenarios.DefaultTreatyType, 1) }; trades.Add(trade); // 貿易リストビューに項目を追加する ListViewItem item = new ListViewItem { Tag = trade }; item.SubItems.Add(""); item.SubItems.Add(""); tradeListView.Items.Add(item); // 編集済みフラグを設定する trade.SetDirty(Treaty.ItemId.StartYear); trade.SetDirty(Treaty.ItemId.StartMonth); trade.SetDirty(Treaty.ItemId.StartDay); trade.SetDirty(Treaty.ItemId.EndYear); trade.SetDirty(Treaty.ItemId.EndMonth); trade.SetDirty(Treaty.ItemId.EndDay); trade.SetDirty(Treaty.ItemId.Type); trade.SetDirty(Treaty.ItemId.Id); trade.SetDirty(Treaty.ItemId.Cancel); Scenarios.Data.SetDirty(); Scenarios.SetDirty(); // 追加した項目を選択する if (tradeListView.SelectedIndices.Count > 0) { ListViewItem prev = tradeListView.SelectedItems[0]; prev.Focused = false; prev.Selected = false; } item.Focused = true; item.Selected = true; }
/// <summary> /// 編集項目の編集済みフラグを設定する /// </summary> /// <param name="itemId">項目ID</param> /// <param name="treaty">協定</param> public void SetItemDirty(ScenarioEditorItemId itemId, Treaty treaty) { switch (itemId) { case ScenarioEditorItemId.DiplomacyNonAggression: case ScenarioEditorItemId.DiplomacyPeace: if (treaty != null) { treaty.SetDirty(Treaty.ItemId.StartYear); treaty.SetDirty(Treaty.ItemId.StartMonth); treaty.SetDirty(Treaty.ItemId.StartDay); treaty.SetDirty(Treaty.ItemId.EndYear); treaty.SetDirty(Treaty.ItemId.EndMonth); treaty.SetDirty(Treaty.ItemId.EndDay); treaty.SetDirty(Treaty.ItemId.Type); treaty.SetDirty(Treaty.ItemId.Id); treaty.SetDirty(); } break; default: treaty.SetDirty((Treaty.ItemId) ItemDirtyFlags[(int) itemId]); break; } Scenarios.Data.SetDirty(); Scenarios.SetDirty(); }