OSDN Git Service

v1.1.6.6
[kybernetes/Kybernetes.git] / main / view / CategorySetting.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Drawing;\r
4 using System.Linq;\r
5 using System.Windows.Forms;\r
6 using com.andoutomo.kybernetes.data.DAO;\r
7 using com.andoutomo.kybernetes.data.connection;\r
8 \r
9 \r
10 namespace com.andoutomo.kybernetes.view\r
11 {\r
12     public partial class CategorySetting : Form\r
13     {\r
14         public CategorySetting()\r
15         {\r
16             InitializeComponent();\r
17         }\r
18 \r
19         private Color frColor;\r
20         private Color bgColor;\r
21         private int categId;\r
22 \r
23         /// <summary>\r
24         /// ダイアログを閉じると同時に、データを反映します。\r
25         /// </summary>\r
26         /// <param name="sender"></param>\r
27         /// <param name="e"></param>\r
28         private void btnClose_Click(object sender, EventArgs e)\r
29         {\r
30             List<MultiSQLRunnningBean> sqlList = new List<MultiSQLRunnningBean>();\r
31             sqlList.Add(new MultiSQLRunnningBean(SqlDictionary.clearCategory,new List<object>()));\r
32             foreach (CategoryData innerData in innerCategList)\r
33             {\r
34                 \r
35                 List<object> argList = new List<object>();\r
36                 argList.Add(innerData.CategId);\r
37                 argList.Add(innerData.Category);\r
38                 argList.Add(innerData.FRColor);\r
39                 argList.Add(innerData.BGColor);\r
40                 sqlList.Add(new MultiSQLRunnningBean(SqlDictionary.insertCategory, argList));\r
41             }\r
42 \r
43             TaskDBConnection.Connection.updateData(sqlList);\r
44 \r
45 \r
46             this.Close();\r
47         }\r
48 \r
49         private void btnSetFR_Click(object sender, EventArgs e)\r
50         {\r
51             DialogResult result = FrColorDialog.ShowDialog();\r
52             frColor = FrColorDialog.Color;\r
53             lblSample.ForeColor = frColor;\r
54         }\r
55 \r
56         private void btnSetBG_Click(object sender, EventArgs e)\r
57         {\r
58             //DialogResult result = BgColorDialog.ShowDialog();\r
59             //bgColor = BgColorDialog.Color;\r
60             //lblSample.BackColor = bgColor;\r
61             bgColor = Color.Black;\r
62             lblSample.BackColor = Color.Black;\r
63         }\r
64 \r
65         private List<CategoryData> innerCategList;\r
66 \r
67         /// <summary>\r
68         /// 外部(あるいは内部)から、リストを設定します。\r
69         /// </summary>\r
70         /// <param name="categList"></param>\r
71         public void setCategoryList(List<CategoryData> categList)\r
72         {\r
73             this.CateglistBox.Items.Clear();\r
74             innerCategList = categList;\r
75             foreach(CategoryData data in categList){\r
76                 this.CateglistBox.Items.Add(data.dataForDropDown.Val);\r
77             }\r
78         }\r
79         /// <summary>\r
80         /// カテゴリリストの選択を制御します。\r
81         /// </summary>\r
82         /// <param name="sender"></param>\r
83         /// <param name="e"></param>\r
84         private void CateglistBox_SelectedIndexChanged(object sender, EventArgs e)\r
85         {\r
86             if (CateglistBox.SelectedItem == null) return;\r
87 \r
88             var rawdata = from data in innerCategList where data.Category == CateglistBox.SelectedItem.ToString() select data;\r
89 \r
90             foreach (CategoryData innerData in rawdata)\r
91             {\r
92                 this.txtCategName.Text = innerData.Category;\r
93                 this.frColor = innerData.FRColorObject;\r
94                 this.bgColor = innerData.BGColorObject;\r
95                 this.categId = innerData.CategId;\r
96 \r
97                 lblSample.ForeColor = frColor;\r
98                 //lblSample.BackColor = bgColor;\r
99             }\r
100 \r
101         }\r
102         /// <summary>\r
103         /// カテゴリを追加します。\r
104         /// </summary>\r
105         /// <param name="sender"></param>\r
106         /// <param name="e"></param>\r
107         private void btnAdd_Click(object sender, EventArgs e)\r
108         {\r
109             if (this.txtCategName.Text == string.Empty) return;\r
110 \r
111             var rawdata = from data in innerCategList where data.Category == this.txtCategName.Text select data;\r
112 \r
113             foreach (CategoryData dummy in rawdata)\r
114             {\r
115                 //既にデータがある場合は何もせず終了\r
116                 return;\r
117             }\r
118 \r
119             CategoryData insertData = new CategoryData();\r
120             insertData.Category = this.txtCategName.Text;\r
121             insertData.FRColor = this.frColor.ToArgb();\r
122             //insertData.BGColor = this.bgColor.ToArgb();\r
123 \r
124             var nextid = 0;\r
125             \r
126             if (CateglistBox.Items.Count > 0)\r
127             {\r
128                 nextid = (from data in innerCategList select data.CategId).Max();\r
129             }\r
130 \r
131             insertData.CategId = ((int)nextid) + 1;\r
132             innerCategList.Add(insertData);\r
133             setCategoryList(innerCategList);\r
134 \r
135             txtCategName.Clear();\r
136         }\r
137 \r
138         /// <summary>\r
139         /// カテゴリを変更します。\r
140         /// </summary>\r
141         /// <param name="sender"></param>\r
142         /// <param name="e"></param>\r
143         private void btnApply_Click(object sender, EventArgs e)\r
144         {\r
145             if (string.IsNullOrEmpty(this.txtCategName.Text))\r
146             {\r
147                 if (this.categId == 0) { return; }\r
148             }\r
149             var rawdata = from data in innerCategList where data.CategId == this.categId select data;\r
150             foreach (CategoryData updData in rawdata)\r
151             {\r
152                 if (string.IsNullOrEmpty(this.txtCategName.Text))\r
153                 {\r
154                     innerCategList.Remove(updData);\r
155                     break;\r
156                 }\r
157                 else\r
158                 {\r
159                     updData.Category = this.txtCategName.Text;\r
160                     updData.FRColor = this.frColor.ToArgb();\r
161               //      updData.BGColor = this.bgColor.ToArgb();\r
162                 }\r
163             }\r
164             setCategoryList(innerCategList);\r
165         }\r
166     }\r
167 }\r