Exemplo n.º 1
0
        /// <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();
        }