OSDN Git Service

f3d03cc7bbcc8717f0c8c07e30b585d65dccb9e2
[kybernetes/Kybernetes.git] / KyberNetes / view / PanelController.cs
1 using System.Windows.Forms;\r
2 using System.Drawing;\r
3 using com.andoutomo.kybernetes.data.DAO;\r
4 using System;\r
5 \r
6 namespace com.andoutomo.kybernetes.view\r
7 {\r
8     internal class PanelController\r
9     {\r
10         private BaseForm baseForm;\r
11         internal PanelController(BaseForm form)\r
12         {\r
13             this.baseForm = form;\r
14         }\r
15         internal Panel createRow(int point,TaskData data)\r
16         {\r
17             Panel rowPanel=new Panel();\r
18             Color frColor = Color.FromArgb(data.FrColor);\r
19             Color bgColor = Color.FromArgb(data.BgColor);\r
20             FontStyle style;\r
21             FontStyle timeStyle;\r
22             float fontsize;\r
23             int rowsize;\r
24 \r
25             if (data.ForecastMin >= 90|| data.RealMin >=90)\r
26             {\r
27                 fontsize = 10F;\r
28                 rowsize = 24;\r
29                 \r
30                 if (data.isComplete)\r
31                 {\r
32                     style = FontStyle.Strikeout;\r
33                     timeStyle = FontStyle.Strikeout;\r
34                     frColor = Color.Gray;\r
35                 }\r
36                 else if (data.ForecastMin >= 120 || data.RealMin >=120)\r
37                 {\r
38                     style = FontStyle.Regular;\r
39                     timeStyle = FontStyle.Bold;\r
40                 }\r
41                 else\r
42                 {\r
43                     timeStyle = FontStyle.Regular;\r
44                     style = FontStyle.Regular;\r
45                 }\r
46             }\r
47             else if (data.ForecastMin >= 60 || data.RealMin >= 60)\r
48             {\r
49                 fontsize = 9F;\r
50                 rowsize = 20;\r
51 \r
52                 if (data.isComplete)\r
53                 {\r
54                     timeStyle = FontStyle.Strikeout;\r
55                     style = FontStyle.Strikeout;\r
56                     frColor = Color.Gray;\r
57                 }\r
58                 else\r
59                 {\r
60                     timeStyle = FontStyle.Regular;\r
61                     style = FontStyle.Regular;\r
62                 }\r
63 \r
64             }\r
65             else\r
66             {\r
67                 fontsize = 9F;\r
68                 rowsize = 16;\r
69 \r
70                 if (data.isComplete)\r
71                 {\r
72                     timeStyle = FontStyle.Strikeout;\r
73                     style = FontStyle.Strikeout;\r
74                     frColor = Color.Gray;\r
75                 }\r
76                 else\r
77                 {\r
78                     timeStyle = FontStyle.Regular;\r
79                     style = FontStyle.Regular;\r
80                 }\r
81 \r
82             }\r
83             //全体サイズからContentの長さを決める。\r
84             \r
85             int wkPanelSize = baseForm.getPanelSize();\r
86 \r
87             int wkContentSize = wkPanelSize - 689;\r
88             int wkDelaySize = wkContentSize - 211;\r
89             sortID = data.SortID;\r
90 \r
91             //rowPanel.Controls.Add(new CustomLabel(data.Indicator, frColor, bgColor, FontStyle.Regular, 9F, 0, 21, rowsize,ContentAlignment.MiddleCenter));\r
92             rowPanel.Controls.Add(new CustomLabel(data.SortID.ToString(), frColor, bgColor, style, 9F, 0, 41, rowsize, ContentAlignment.MiddleRight));\r
93             rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDateString(), frColor, bgColor, style, 9F, 40, 56, rowsize,ContentAlignment.MiddleCenter));\r
94             rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDowStr(), frColor, bgColor, style, 9F, 95, 26, rowsize,ContentAlignment.MiddleCenter));\r
95             rowPanel.Controls.Add(new CustomLabel(data.TimeArea, frColor, bgColor, style, 9F, 120, 21, rowsize,ContentAlignment.MiddleCenter));\r
96             rowPanel.Controls.Add(new CustomLabel(data.Category, frColor, bgColor, style, 9F, 140, 81, rowsize));\r
97             rowPanel.Controls.Add(new CustomLabel(data.Contents, frColor, bgColor, style, 9F, 220, wkContentSize, rowsize));\r
98             rowPanel.Controls.Add(new CustomLabel(data.getForcastHourStr, frColor, bgColor, timeStyle, fontsize, wkDelaySize + 430, 51, rowsize,ContentAlignment.MiddleRight));\r
99             rowPanel.Controls.Add(new CustomLabel(data.ForecastMin.ToString(), frColor, bgColor, timeStyle, fontsize, wkDelaySize + 480, 51, rowsize, ContentAlignment.MiddleRight));\r
100             rowPanel.Controls.Add(new CustomLabel(data.RealMin.ToString(), frColor, bgColor, timeStyle, fontsize, wkDelaySize + 530, 51, rowsize, ContentAlignment.MiddleRight));\r
101             rowPanel.Controls.Add(new CustomLabel(data.StartTime.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 580, 61, rowsize, ContentAlignment.MiddleCenter));\r
102             rowPanel.Controls.Add(new CustomLabel(data.EndTime.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 640, 61, rowsize, ContentAlignment.MiddleCenter));\r
103             \r
104             rowPanel.Controls.Add(new CustomLabel(data.Project, frColor, bgColor, style, 9F, wkDelaySize + 700, 81, rowsize));\r
105             rowPanel.Controls.Add(new CustomLabel((data.IsRepeat == 1 ? "R" : ""), frColor, bgColor, style, 9F, wkDelaySize + 780, 21, rowsize, ContentAlignment.MiddleCenter));\r
106             rowPanel.Controls.Add(new CustomLabel((data.HasComment == 1 ? "*" : ""), frColor, bgColor, style, 9F, wkDelaySize + 800, 21, rowsize, ContentAlignment.MiddleCenter));\r
107             rowPanel.Controls.Add(new CustomLabel((string.IsNullOrEmpty(data.Tags) ? "" : "*"), frColor, bgColor, style, 9F, wkDelaySize + 820, 21, rowsize, ContentAlignment.MiddleCenter,data.Tags));\r
108             rowPanel.Controls.Add(new CustomLabel(data.SortID.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 840, 41, rowsize, ContentAlignment.MiddleRight));\r
109 \r
110             rowPanel.Location = new Point(0, point);\r
111             rowPanel.Size = new Size(wkPanelSize - 19, rowsize);\r
112             \r
113             rowPanel.TabStop = false;\r
114             foreach (Control eachControls in rowPanel.Controls)\r
115             {\r
116                 eachControls.DoubleClick += new System.EventHandler(rowPanelDblClickAction);\r
117             }\r
118 \r
119             return rowPanel;\r
120         }\r
121         private int sortID;\r
122 \r
123         private void rowPanelDblClickAction(object sender, EventArgs args)\r
124         {\r
125             baseForm.AddIDToText(sortID.ToString());\r
126         }\r
127         \r
128     }\r
129 \r
130     internal class CustomLabel:Label\r
131     {\r
132         internal CustomLabel(string text,Color FRColor,Color BGColor,FontStyle style,float size,int location,int colsize,int rowSize)\r
133         {\r
134             //innerLabel = new Label();\r
135             //可変要素\r
136             this.Text = text;\r
137             this.BackColor = BGColor;\r
138             this.ForeColor = FRColor;\r
139             this.Font = new Font("MS UI Gothic", size, style, GraphicsUnit.Point, 128);\r
140             this.Location = new Point(location, 0);\r
141             this.Size = new Size(colsize, rowSize);\r
142 \r
143             //固定要素\r
144             this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
145             this.TabIndex = 0;\r
146             this.TextAlign = ContentAlignment.MiddleLeft;\r
147             this.Anchor = (AnchorStyles.Left | AnchorStyles.Top);\r
148         }\r
149         internal CustomLabel(string text, Color FRColor, Color BGColor, FontStyle style, float size, int location, int colsize, int rowSize, ContentAlignment align)\r
150             :this(text,FRColor,BGColor,style,size,location,colsize,rowSize)\r
151         {\r
152             this.TextAlign = align;\r
153         }\r
154 \r
155         internal CustomLabel(string text, Color FRColor, Color BGColor, FontStyle style, float size, int location, int colsize, int rowSize, ContentAlignment align, string tooltipStr)\r
156             : this(text, FRColor, BGColor, style, size, location, colsize, rowSize,align)\r
157         {\r
158             ToolTip pop = new ToolTip();\r
159             //ToolTipの設定を行う\r
160             //ToolTipが表示されるまでの時間\r
161             pop.InitialDelay = 500;\r
162             //ToolTipが表示されている時に、別のToolTipを表示するまでの時間\r
163             pop.ReshowDelay = 100;\r
164             //ToolTipを表示する時間\r
165             pop.AutoPopDelay = 4000;\r
166             //フォームがアクティブでない時でもToolTipを表示する\r
167             pop.ShowAlways = false;\r
168 \r
169             //このオブジェクトにToolTipが表示されるようにする\r
170             pop.SetToolTip(this, tooltipStr);\r
171             \r
172 \r
173         }\r
174     }\r
175 }\r