using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; using com.andoutomo.kybernetes.data.DAO; using com.andoutomo.kybernetes.data.connection; namespace com.andoutomo.kybernetes.view { public partial class CategorySetting : Form { public CategorySetting() { InitializeComponent(); } private Color frColor; private Color bgColor; private int categId; /// /// ダイアログを閉じると同時に、データを反映します。 /// /// /// private void btnClose_Click(object sender, EventArgs e) { List sqlList = new List(); sqlList.Add(new MultiSQLRunnningBean(SqlDictionary.clearCategory,new List())); foreach (CategoryData innerData in innerCategList) { List argList = new List(); argList.Add(innerData.CategId); argList.Add(innerData.Category); argList.Add(innerData.FRColor); argList.Add(innerData.BGColor); sqlList.Add(new MultiSQLRunnningBean(SqlDictionary.insertCategory, argList)); } TaskDBConnection.Connection.updateData(sqlList); this.Close(); } private void btnSetFR_Click(object sender, EventArgs e) { DialogResult result = FrColorDialog.ShowDialog(); frColor = FrColorDialog.Color; lblSample.ForeColor = frColor; } private void btnSetBG_Click(object sender, EventArgs e) { //DialogResult result = BgColorDialog.ShowDialog(); //bgColor = BgColorDialog.Color; //lblSample.BackColor = bgColor; bgColor = Color.Black; lblSample.BackColor = Color.Black; } private List innerCategList; /// /// 外部(あるいは内部)から、リストを設定します。 /// /// public void setCategoryList(List categList) { this.CateglistBox.Items.Clear(); innerCategList = categList; foreach(CategoryData data in categList){ this.CateglistBox.Items.Add(data.dataForDropDown.Val); } } /// /// カテゴリリストの選択を制御します。 /// /// /// private void CateglistBox_SelectedIndexChanged(object sender, EventArgs e) { if (CateglistBox.SelectedItem == null) return; var rawdata = from data in innerCategList where data.Category == CateglistBox.SelectedItem.ToString() select data; foreach (CategoryData innerData in rawdata) { this.txtCategName.Text = innerData.Category; this.frColor = innerData.FRColorObject; this.bgColor = innerData.BGColorObject; this.categId = innerData.CategId; lblSample.ForeColor = frColor; //lblSample.BackColor = bgColor; } } /// /// カテゴリを追加します。 /// /// /// private void btnAdd_Click(object sender, EventArgs e) { if (this.txtCategName.Text == string.Empty) return; var rawdata = from data in innerCategList where data.Category == this.txtCategName.Text select data; foreach (CategoryData dummy in rawdata) { //既にデータがある場合は何もせず終了 return; } CategoryData insertData = new CategoryData(); insertData.Category = this.txtCategName.Text; insertData.FRColor = this.frColor.ToArgb(); //insertData.BGColor = this.bgColor.ToArgb(); var nextid = 0; if (CateglistBox.Items.Count > 0) { nextid = (from data in innerCategList select data.CategId).Max(); } insertData.CategId = ((int)nextid) + 1; innerCategList.Add(insertData); setCategoryList(innerCategList); txtCategName.Clear(); } /// /// カテゴリを変更します。 /// /// /// private void btnApply_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.txtCategName.Text)) { if (this.categId == 0) { return; } } var rawdata = from data in innerCategList where data.CategId == this.categId select data; foreach (CategoryData updData in rawdata) { if (string.IsNullOrEmpty(this.txtCategName.Text)) { innerCategList.Remove(updData); break; } else { updData.Category = this.txtCategName.Text; updData.FRColor = this.frColor.ToArgb(); // updData.BGColor = this.bgColor.ToArgb(); } } setCategoryList(innerCategList); } } }