• R/O
  • HTTP
  • SSH
  • HTTPS

Kybernetes: Commit

kybetnetes ~ TaskOperatingSystem


Commit MetaInfo

Révision5b92bddb0ef222587ab4304562fa26d1f58b5b9c (tree)
l'heure2014-08-22 12:24:34
AuteurAndouTomo <tomando.clar02@gmai...>
CommiterAndouTomo

Message de Log

v1.1.6.4
Chain機能を追加
タスクが日をまたぐときの実績時間計測方法を変更
Estimateコンソールと合計コンソールを設置、常時更新するように処理変更(これによりlonglistを廃止)
Creditにメールアドレスリンクを追加(Vectorからの要請による)
パネル文字サイズを見やすく変更
そのほか微調整

Change Summary

Modification

--- a/base/Basement.csproj
+++ b/base/Basement.csproj
@@ -103,6 +103,7 @@
103103 <Compile Include="data\accessor\SettingDataAccessor.cs" />
104104 <Compile Include="data\accessor\TaskDataAccessor.cs" />
105105 <Compile Include="data\accessor\TimeAreaDataAccessor.cs" />
106+ <Compile Include="data\accessor\TotalViewAccessor.cs" />
106107 <Compile Include="data\Component\DateComponent.cs" />
107108 <Compile Include="data\Component\TimeComponent.cs" />
108109 <Compile Include="data\connection\TaskDBConnection.cs" />
@@ -125,6 +126,7 @@
125126 <Compile Include="data\DAO\SimpleDataBean.cs" />
126127 <Compile Include="data\DAO\TaskData.cs" />
127128 <Compile Include="data\DAO\TimeAreaData.cs" />
129+ <Compile Include="data\DAO\TotalCountData.cs" />
128130 <Compile Include="Properties\AssemblyInfo.cs" />
129131 <Compile Include="view\BaseForm.cs">
130132 <SubType>Form</SubType>
--- a/base/Properties/AssemblyInfo.cs
+++ b/base/Properties/AssemblyInfo.cs
@@ -33,6 +33,6 @@ using System.Resources;
3333 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
3434 // 既定値にすることができます:
3535 // [assembly: AssemblyVersion("1.0.*")]
36-[assembly: AssemblyVersion("1.1.6.0")]
37-[assembly: AssemblyFileVersion("1.1.6.0")]
36+[assembly: AssemblyVersion("1.1.6.2")]
37+[assembly: AssemblyFileVersion("1.1.6.2")]
3838 [assembly: NeutralResourcesLanguageAttribute("ja")]
--- a/base/command/template/abCommand.cs
+++ b/base/command/template/abCommand.cs
@@ -42,6 +42,12 @@ namespace com.andoutomo.kybernetes.command
4242 message = turnMessage();
4343 KybernetesLogger.Log.debug("run success on " + this.GetType().ToString());
4444 KybernetesLogger.Log.debug("message:" + message);
45+
46+ if (chain)
47+ {
48+ chainCommand.run(chainCommandArg, _form);
49+ }
50+
4551 return true;
4652 }
4753 else
@@ -99,6 +105,23 @@ namespace com.andoutomo.kybernetes.command
99105 {
100106 get { return "> ";}
101107 }
108+ private CommandArg chainCommandArg;
109+ private AbCommand chainCommand;
110+ private bool chain;
111+ //このコマンド実行後に実施する追加コマンドを設定します。
112+ protected void setChainCommand(CommandArg arg, AbCommand cmd)
113+ {
114+ if (arg != null && cmd != null)
115+ {
116+ this.chainCommandArg = arg;
117+ this.chainCommand = cmd;
118+ chain = true;
119+ }
120+ else
121+ {
122+ chain = false;
123+ }
124+ }
102125
103126 }
104127 public enum ErrorType
@@ -107,4 +130,5 @@ namespace com.andoutomo.kybernetes.command
107130 DataNotFound,
108131
109132 }
133+
110134 }
--- a/base/data/Component/TimeComponent.cs
+++ b/base/data/Component/TimeComponent.cs
@@ -155,9 +155,22 @@ namespace com.andoutomo.kybernetes.data
155155 }
156156 #endregion
157157
158+ /// <summary>
159+ /// fromのコンポーネントとの差分を算出して返却します。
160+ /// </summary>
161+ /// <param name="from"></param>
162+ /// <returns></returns>
158163 public int getSubtractionMinute(TimeComponent from)
159164 {
160- return decimal.ToInt32(Math.Abs(this.TotalMinute - from.TotalMinute));
165+ if (this.TotalMinute >= from.TotalMinute)
166+ {
167+ return decimal.ToInt32(Math.Abs(this.TotalMinute - from.TotalMinute));
168+ }
169+ else
170+ {
171+ int dayOver = this.TotalMinute + (24 * 60);
172+ return decimal.ToInt32(Math.Abs(dayOver - from.TotalMinute));
173+ }
161174 }
162175 public TimeComponent getSubtractionComponent(TimeComponent from)
163176 {
--- /dev/null
+++ b/base/data/DAO/TotalCountData.cs
@@ -0,0 +1,26 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Linq;
4+using System.Text;
5+
6+namespace com.andoutomo.kybernetes.data.DAO
7+{
8+ public class TotalCountData
9+ {
10+ public DateComponent Dodate
11+ {
12+ get;
13+ set;
14+ }
15+ public TimeComponent ForecastTime
16+ {
17+ get;
18+ set;
19+ }
20+ public TimeComponent RealTime
21+ {
22+ get;
23+ set;
24+ }
25+ }
26+}
--- a/base/data/accessor/CommandDataAccessor.cs
+++ b/base/data/accessor/CommandDataAccessor.cs
@@ -124,7 +124,7 @@ namespace com.andoutomo.kybernetes.data.accessor
124124 public List<SimpleDataBean> getDllList()
125125 {
126126 List<SimpleDataBean> retData = new List<SimpleDataBean>();
127- SettingDBConnection.Connection.selectData("SELECT LIB_NAME FROM TBL_DLL",
127+ SettingDBConnection.Connection.selectData(CommandSqlDictionary.searchDll,
128128 (SQLiteDataReader reader) =>
129129 {
130130 while (reader.Read())
--- /dev/null
+++ b/base/data/accessor/TotalViewAccessor.cs
@@ -0,0 +1,54 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Linq;
4+using System.Text;
5+using com.andoutomo.kybernetes.data.DAO;
6+using com.andoutomo.kybernetes.data.connection;
7+using System.Data.SQLite;
8+
9+namespace com.andoutomo.kybernetes.data.accessor
10+{
11+ public class TotalViewAccessor
12+ {
13+ private static TotalViewAccessor accessor;
14+ private TotalViewAccessor()
15+ { }
16+ /// <summary>
17+ /// アクセッサを取得します。
18+ /// </summary>
19+ public static TotalViewAccessor getObject
20+ {
21+ get
22+ {
23+ if (accessor == null)
24+ {
25+ accessor = new TotalViewAccessor();
26+ }
27+ return accessor;
28+ }
29+ }
30+ /// <summary>
31+ /// トータルリストを取得します。
32+ /// </summary>
33+ /// <returns></returns>
34+ public List<TotalCountData> getTotalList()
35+ {
36+ List<TotalCountData> retList = new List<TotalCountData>();
37+ TaskDBConnection.Connection.selectData(SqlDictionary.getTotalDataFromView,
38+ (SQLiteDataReader reader) =>
39+ {
40+ while (reader.Read())
41+ {
42+ TotalCountData data = new TotalCountData();
43+ data.Dodate = new DateComponent(reader["DODATE"].ToString(), '/');
44+ data.ForecastTime = new TimeComponent(Convert.ToInt32(reader["FORECASTTOTAL"].ToString()));
45+ data.RealTime = new TimeComponent(Convert.ToInt32(reader["NREALTOTAL"].ToString()));
46+
47+ retList.Add(data);
48+ }
49+ });
50+ return retList;
51+ }
52+
53+ }
54+}
--- a/base/data/connection/CommandSqlDictionary.Designer.cs
+++ b/base/data/connection/CommandSqlDictionary.Designer.cs
@@ -22,21 +22,21 @@ namespace com.andoutomo.kybernetes.data.connection {
2222 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
2323 [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2424 [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25- public class CommandSqlDictionary {
25+ internal class CommandSqlDictionary {
2626
2727 private static global::System.Resources.ResourceManager resourceMan;
2828
2929 private static global::System.Globalization.CultureInfo resourceCulture;
3030
3131 [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32- public CommandSqlDictionary() {
32+ internal CommandSqlDictionary() {
3333 }
3434
3535 /// <summary>
3636 /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。
3737 /// </summary>
3838 [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39- public static global::System.Resources.ResourceManager ResourceManager {
39+ internal static global::System.Resources.ResourceManager ResourceManager {
4040 get {
4141 if (object.ReferenceEquals(resourceMan, null)) {
4242 global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("com.andoutomo.kybernetes.data.connection.CommandSqlDictionary", typeof(CommandSqlDictionary).Assembly);
@@ -51,7 +51,7 @@ namespace com.andoutomo.kybernetes.data.connection {
5151 /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
5252 /// </summary>
5353 [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54- public static global::System.Globalization.CultureInfo Culture {
54+ internal static global::System.Globalization.CultureInfo Culture {
5555 get {
5656 return resourceCulture;
5757 }
@@ -63,7 +63,7 @@ namespace com.andoutomo.kybernetes.data.connection {
6363 /// <summary>
6464 /// SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK ORDER BY BASE_COMMAND に類似しているローカライズされた文字列を検索します。
6565 /// </summary>
66- public static string getAllLink {
66+ internal static string getAllLink {
6767 get {
6868 return ResourceManager.GetString("getAllLink", resourceCulture);
6969 }
@@ -79,7 +79,7 @@ namespace com.andoutomo.kybernetes.data.connection {
7979 ///WHERE L.BASE_COMMAND = M.CMDSTR
8080 ///)where CMDSTR=? に類似しているローカライズされた文字列を検索します。
8181 /// </summary>
82- public static string getCommand {
82+ internal static string getCommand {
8383 get {
8484 return ResourceManager.GetString("getCommand", resourceCulture);
8585 }
@@ -88,7 +88,7 @@ namespace com.andoutomo.kybernetes.data.connection {
8888 /// <summary>
8989 /// select c.CMDSTR,h.SUMMARY,h.DETAIL from TBL_command c,tbl_help h where c.helpid = h.helpid AND cmdSTR=? に類似しているローカライズされた文字列を検索します。
9090 /// </summary>
91- public static string getHelp {
91+ internal static string getHelp {
9292 get {
9393 return ResourceManager.GetString("getHelp", resourceCulture);
9494 }
@@ -97,7 +97,7 @@ namespace com.andoutomo.kybernetes.data.connection {
9797 /// <summary>
9898 /// select l.link_command as link_command from tbl_command c,tbl_link l where c.cmdstr=l.base_command and c.cmdstr = ? に類似しているローカライズされた文字列を検索します。
9999 /// </summary>
100- public static string getLink {
100+ internal static string getLink {
101101 get {
102102 return ResourceManager.GetString("getLink", resourceCulture);
103103 }
@@ -106,7 +106,7 @@ namespace com.andoutomo.kybernetes.data.connection {
106106 /// <summary>
107107 /// SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK WHERE LINK_COMMAND=? に類似しているローカライズされた文字列を検索します。
108108 /// </summary>
109- public static string hasLink {
109+ internal static string hasLink {
110110 get {
111111 return ResourceManager.GetString("hasLink", resourceCulture);
112112 }
@@ -115,7 +115,7 @@ namespace com.andoutomo.kybernetes.data.connection {
115115 /// <summary>
116116 /// SELECT C.CMDSTR,H.SUMMARY FROM TBL_COMMAND C,TBL_HELP H WHERE C.HELPID=H.HELPID ORDER BY C.HelpID; に類似しているローカライズされた文字列を検索します。
117117 /// </summary>
118- public static string HELPALL {
118+ internal static string HELPALL {
119119 get {
120120 return ResourceManager.GetString("HELPALL", resourceCulture);
121121 }
@@ -124,7 +124,7 @@ namespace com.andoutomo.kybernetes.data.connection {
124124 /// <summary>
125125 /// INSERT INTO TBL_LINK (LINK_COMMAND,BASE_COMMAND) VALUES (?,?) に類似しているローカライズされた文字列を検索します。
126126 /// </summary>
127- public static string insertLink {
127+ internal static string insertLink {
128128 get {
129129 return ResourceManager.GetString("insertLink", resourceCulture);
130130 }
@@ -133,10 +133,19 @@ namespace com.andoutomo.kybernetes.data.connection {
133133 /// <summary>
134134 /// DELETE FROM TBL_LINK WHERE LINK_COMMAND=? に類似しているローカライズされた文字列を検索します。
135135 /// </summary>
136- public static string removeLink {
136+ internal static string removeLink {
137137 get {
138138 return ResourceManager.GetString("removeLink", resourceCulture);
139139 }
140140 }
141+
142+ /// <summary>
143+ /// SELECT LIB_NAME FROM TBL_DLL に類似しているローカライズされた文字列を検索します。
144+ /// </summary>
145+ internal static string searchDll {
146+ get {
147+ return ResourceManager.GetString("searchDll", resourceCulture);
148+ }
149+ }
141150 }
142151 }
--- a/base/data/connection/CommandSqlDictionary.resx
+++ b/base/data/connection/CommandSqlDictionary.resx
@@ -156,4 +156,8 @@ WHERE L.BASE_COMMAND = M.CMDSTR
156156 <value>SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK ORDER BY BASE_COMMAND</value>
157157 <comment>リンク一覧を出力します。</comment>
158158 </data>
159+ <data name="searchDll" xml:space="preserve">
160+ <value>SELECT LIB_NAME FROM TBL_DLL</value>
161+ <comment>dllを探します。</comment>
162+ </data>
159163 </root>
\ No newline at end of file
--- a/base/data/connection/SqlDictionary.Designer.cs
+++ b/base/data/connection/SqlDictionary.Designer.cs
@@ -415,6 +415,15 @@ namespace com.andoutomo.kybernetes.data.connection {
415415 }
416416
417417 /// <summary>
418+ /// SELECT DODATE,FORECASTTOTAL,ifnull(REALTOTAL,0) as NREALTOTAL FROM VW_TASKS_DAILY_TOTAL ORDER BY DODATE ASC に類似しているローカライズされた文字列を検索します。
419+ /// </summary>
420+ internal static string getTotalDataFromView {
421+ get {
422+ return ResourceManager.GetString("getTotalDataFromView", resourceCulture);
423+ }
424+ }
425+
426+ /// <summary>
418427 /// INSERT into tbl_category (CATEGID,CATEGORY,FRCOLOR,BGCOLOR) values(?,?,?,?) に類似しているローカライズされた文字列を検索します。
419428 /// </summary>
420429 internal static string insertCategory {
--- a/base/data/connection/SqlDictionary.resx
+++ b/base/data/connection/SqlDictionary.resx
@@ -328,4 +328,8 @@
328328 <value>UPDATE TBL_TASKS SET PROJECT = ? WHERE SORTID= ?</value>
329329 <comment>プロジェクト名を設定します。</comment>
330330 </data>
331+ <data name="getTotalDataFromView" xml:space="preserve">
332+ <value>SELECT DODATE,FORECASTTOTAL,ifnull(REALTOTAL,0) as NREALTOTAL FROM VW_TASKS_DAILY_TOTAL ORDER BY DODATE ASC</value>
333+ <comment>日別合計値をviewから取得します。</comment>
334+ </data>
331335 </root>
\ No newline at end of file
--- a/base/view/BaseForm.Designer.cs
+++ b/base/view/BaseForm.Designer.cs
@@ -38,8 +38,12 @@
3838 this.FRColorDlg = new System.Windows.Forms.ColorDialog();
3939 this.splBase = new System.Windows.Forms.SplitContainer();
4040 this.splConsole = new System.Windows.Forms.SplitContainer();
41- this.rSubConsole = new System.Windows.Forms.RichTextBox();
4241 this.rConsole = new System.Windows.Forms.TextBox();
42+ this.tabInfo = new System.Windows.Forms.TabControl();
43+ this.tab1 = new System.Windows.Forms.TabPage();
44+ this.rEstConsole = new System.Windows.Forms.RichTextBox();
45+ this.tab2 = new System.Windows.Forms.TabPage();
46+ this.rTotalConsole = new System.Windows.Forms.RichTextBox();
4347 ((System.ComponentModel.ISupportInitialize)(this.splBase)).BeginInit();
4448 this.splBase.Panel1.SuspendLayout();
4549 this.splBase.Panel2.SuspendLayout();
@@ -48,6 +52,9 @@
4852 this.splConsole.Panel1.SuspendLayout();
4953 this.splConsole.Panel2.SuspendLayout();
5054 this.splConsole.SuspendLayout();
55+ this.tabInfo.SuspendLayout();
56+ this.tab1.SuspendLayout();
57+ this.tab2.SuspendLayout();
5158 this.SuspendLayout();
5259 //
5360 // pnlTask
@@ -57,7 +64,6 @@
5764 | System.Windows.Forms.AnchorStyles.Right)));
5865 this.pnlTask.AutoScroll = true;
5966 this.pnlTask.BackColor = System.Drawing.Color.Black;
60- this.pnlTask.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
6167 this.pnlTask.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
6268 this.pnlTask.ForeColor = System.Drawing.Color.White;
6369 this.pnlTask.Location = new System.Drawing.Point(3, 3);
@@ -72,7 +78,7 @@
7278 this.txtInput.BackColor = System.Drawing.Color.Black;
7379 this.txtInput.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
7480 this.txtInput.ForeColor = System.Drawing.Color.White;
75- this.txtInput.Location = new System.Drawing.Point(3, 255);
81+ this.txtInput.Location = new System.Drawing.Point(1, 255);
7682 this.txtInput.Name = "txtInput";
7783 this.txtInput.Size = new System.Drawing.Size(450, 19);
7884 this.txtInput.TabIndex = 1;
@@ -136,46 +142,105 @@
136142 //
137143 // splConsole.Panel2
138144 //
139- this.splConsole.Panel2.Controls.Add(this.rSubConsole);
145+ this.splConsole.Panel2.Controls.Add(this.tabInfo);
140146 this.splConsole.Size = new System.Drawing.Size(836, 275);
141147 this.splConsole.SplitterDistance = 447;
142148 this.splConsole.TabIndex = 1;
143149 this.splConsole.TabStop = false;
144150 this.splConsole.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.splConsole_SplitterMoved);
145151 //
146- // rSubConsole
147- //
148- this.rSubConsole.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
149- | System.Windows.Forms.AnchorStyles.Left)
150- | System.Windows.Forms.AnchorStyles.Right)));
151- this.rSubConsole.BackColor = System.Drawing.Color.Black;
152- this.rSubConsole.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
153- this.rSubConsole.ForeColor = System.Drawing.Color.White;
154- this.rSubConsole.Location = new System.Drawing.Point(0, 0);
155- this.rSubConsole.Name = "rSubConsole";
156- this.rSubConsole.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
157- this.rSubConsole.Size = new System.Drawing.Size(388, 275);
158- this.rSubConsole.TabIndex = 0;
159- this.rSubConsole.TabStop = false;
160- this.rSubConsole.Text = "";
161- this.rSubConsole.MouseUp += new System.Windows.Forms.MouseEventHandler(this.rSubConsole_MouseUp);
162- //
163152 // rConsole
164153 //
165154 this.rConsole.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
166155 | System.Windows.Forms.AnchorStyles.Left)
167156 | System.Windows.Forms.AnchorStyles.Right)));
168157 this.rConsole.BackColor = System.Drawing.Color.Black;
158+ this.rConsole.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
169159 this.rConsole.ForeColor = System.Drawing.Color.White;
170- this.rConsole.Location = new System.Drawing.Point(3, 0);
160+ this.rConsole.Location = new System.Drawing.Point(3, 3);
171161 this.rConsole.Multiline = true;
172162 this.rConsole.Name = "rConsole";
173163 this.rConsole.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
174- this.rConsole.Size = new System.Drawing.Size(448, 255);
175- this.rConsole.TabIndex = 2;
164+ this.rConsole.Size = new System.Drawing.Size(441, 250);
165+ this.rConsole.TabIndex = 0;
176166 this.rConsole.TabStop = false;
177167 this.rConsole.MouseUp += new System.Windows.Forms.MouseEventHandler(this.rConsole_MouseUp);
178168 //
169+ // tabInfo
170+ //
171+ this.tabInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
172+ | System.Windows.Forms.AnchorStyles.Left)
173+ | System.Windows.Forms.AnchorStyles.Right)));
174+ this.tabInfo.Controls.Add(this.tab1);
175+ this.tabInfo.Controls.Add(this.tab2);
176+ this.tabInfo.Location = new System.Drawing.Point(0, 0);
177+ this.tabInfo.Name = "tabInfo";
178+ this.tabInfo.SelectedIndex = 0;
179+ this.tabInfo.Size = new System.Drawing.Size(389, 275);
180+ this.tabInfo.TabIndex = 1;
181+ this.tabInfo.TabStop = false;
182+ this.tabInfo.SelectedIndexChanged += new System.EventHandler(this.tabInfo_SelectedIndexChanged);
183+ this.tabInfo.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tabInfo_MouseUp);
184+ //
185+ // tab1
186+ //
187+ this.tab1.CausesValidation = false;
188+ this.tab1.Controls.Add(this.rEstConsole);
189+ this.tab1.Location = new System.Drawing.Point(4, 22);
190+ this.tab1.Name = "tab1";
191+ this.tab1.Padding = new System.Windows.Forms.Padding(3);
192+ this.tab1.Size = new System.Drawing.Size(381, 249);
193+ this.tab1.TabIndex = 0;
194+ this.tab1.Text = "estimate";
195+ this.tab1.UseVisualStyleBackColor = true;
196+ //
197+ // rEstConsole
198+ //
199+ this.rEstConsole.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
200+ | System.Windows.Forms.AnchorStyles.Left)
201+ | System.Windows.Forms.AnchorStyles.Right)));
202+ this.rEstConsole.BackColor = System.Drawing.Color.Black;
203+ this.rEstConsole.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
204+ this.rEstConsole.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
205+ this.rEstConsole.ForeColor = System.Drawing.Color.White;
206+ this.rEstConsole.Location = new System.Drawing.Point(0, 0);
207+ this.rEstConsole.Name = "rEstConsole";
208+ this.rEstConsole.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
209+ this.rEstConsole.Size = new System.Drawing.Size(380, 249);
210+ this.rEstConsole.TabIndex = 0;
211+ this.rEstConsole.TabStop = false;
212+ this.rEstConsole.Text = "";
213+ this.rEstConsole.MouseUp += new System.Windows.Forms.MouseEventHandler(this.rSubConsole_MouseUp);
214+ //
215+ // tab2
216+ //
217+ this.tab2.Controls.Add(this.rTotalConsole);
218+ this.tab2.Location = new System.Drawing.Point(4, 22);
219+ this.tab2.Name = "tab2";
220+ this.tab2.Padding = new System.Windows.Forms.Padding(3);
221+ this.tab2.Size = new System.Drawing.Size(381, 249);
222+ this.tab2.TabIndex = 1;
223+ this.tab2.Text = "total";
224+ this.tab2.UseVisualStyleBackColor = true;
225+ //
226+ // rTotalConsole
227+ //
228+ this.rTotalConsole.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
229+ | System.Windows.Forms.AnchorStyles.Left)
230+ | System.Windows.Forms.AnchorStyles.Right)));
231+ this.rTotalConsole.BackColor = System.Drawing.Color.Black;
232+ this.rTotalConsole.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
233+ this.rTotalConsole.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
234+ this.rTotalConsole.ForeColor = System.Drawing.Color.White;
235+ this.rTotalConsole.Location = new System.Drawing.Point(0, 0);
236+ this.rTotalConsole.Name = "rTotalConsole";
237+ this.rTotalConsole.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
238+ this.rTotalConsole.Size = new System.Drawing.Size(380, 249);
239+ this.rTotalConsole.TabIndex = 0;
240+ this.rTotalConsole.TabStop = false;
241+ this.rTotalConsole.Text = "";
242+ this.rTotalConsole.MouseUp += new System.Windows.Forms.MouseEventHandler(this.rForcastConsole_MouseUp);
243+ //
179244 // BaseForm
180245 //
181246 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -194,6 +259,9 @@
194259 this.splConsole.Panel2.ResumeLayout(false);
195260 ((System.ComponentModel.ISupportInitialize)(this.splConsole)).EndInit();
196261 this.splConsole.ResumeLayout(false);
262+ this.tabInfo.ResumeLayout(false);
263+ this.tab1.ResumeLayout(false);
264+ this.tab2.ResumeLayout(false);
197265 this.ResumeLayout(false);
198266
199267 }
@@ -209,8 +277,12 @@
209277 private System.Windows.Forms.ColorDialog FRColorDlg;
210278 private System.Windows.Forms.SplitContainer splBase;
211279 private System.Windows.Forms.SplitContainer splConsole;
212- private System.Windows.Forms.RichTextBox rSubConsole;
280+ private System.Windows.Forms.RichTextBox rEstConsole;
213281 private System.Windows.Forms.TextBox rConsole;
282+ private System.Windows.Forms.TabControl tabInfo;
283+ private System.Windows.Forms.TabPage tab1;
284+ private System.Windows.Forms.TabPage tab2;
285+ private System.Windows.Forms.RichTextBox rTotalConsole;
214286 }
215287 }
216288
--- a/base/view/BaseForm.cs
+++ b/base/view/BaseForm.cs
@@ -150,6 +150,8 @@ namespace com.andoutomo.kybernetes.view
150150 public void clearText()
151151 {
152152 rConsole.Clear();
153+ rTotalConsole.Clear();
154+ rEstConsole.Clear();
153155 }
154156
155157 private bool exitSwitch = false;
@@ -473,14 +475,14 @@ namespace com.andoutomo.kybernetes.view
473475 /// <param name="e"></param>
474476 private void rSubConsole_MouseUp(object sender, MouseEventArgs e)
475477 {
476- Clipboard.SetDataObject(rSubConsole.SelectedText.Trim());
478+ Clipboard.SetDataObject(rEstConsole.SelectedText.Trim());
477479
478480 txtInput.Focus();
479481 this.txtInput.Select(this.txtInput.Text.Length, 0);
480482 }
481483
482484 /// <summary>
483- /// 背景色設定を呼び出します。パネルとサブコンソールが対象です。
485+ /// 背景色設定を呼び出します。コンテンツすべてが対象です。
484486 /// </summary>
485487 public bool setPnlBackground()
486488 {
@@ -488,7 +490,10 @@ namespace com.andoutomo.kybernetes.view
488490 if (res == System.Windows.Forms.DialogResult.OK)
489491 {
490492 pnlTask.BackColor = BGColorDlg.Color;
491- rSubConsole.BackColor = BGColorDlg.Color;
493+ rEstConsole.BackColor = BGColorDlg.Color;
494+ rConsole.BackColor = BGColorDlg.Color;
495+ rTotalConsole.BackColor = BGColorDlg.Color;
496+ txtInput.BackColor = BGColorDlg.Color;
492497 return true;
493498 }
494499 else { return false; }
@@ -504,12 +509,15 @@ namespace com.andoutomo.kybernetes.view
504509 if (res == System.Windows.Forms.DialogResult.OK)
505510 {
506511 frColor = FRColorDlg.Color;
507- rSubConsole.ForeColor = FRColorDlg.Color;
512+ rEstConsole.ForeColor = FRColorDlg.Color;
513+ rConsole.ForeColor = FRColorDlg.Color;
514+ rTotalConsole.ForeColor = FRColorDlg.Color;
515+ txtInput.ForeColor = FRColorDlg.Color;
508516 return true;
509517 }
510518 else { return false; }
511519 }
512- private Color frColor;
520+ private Color frColor = Color.White;
513521 /// <summary>
514522 /// スプリッターが動いた時に、入力ボックスにフォーカスを移します。
515523 /// </summary>
@@ -641,18 +649,64 @@ namespace com.andoutomo.kybernetes.view
641649 throw new KybernetesApplicationException();
642650 }
643651 }
652+ /// <summary>
653+ /// 時間予測コンソールに文字を追加します。
654+ /// </summary>
655+ /// <param name="estTimeStr"></param>
656+ public void showOnEstConsole(List<EstTextSet> estTimeStr)
657+ {
658+ this.rEstConsole.Text = string.Empty;
659+ foreach (EstTextSet str in estTimeStr)
660+ {
661+ this.rEstConsole.AppendText(str.Text);
662+ int currentSelectionStart = rEstConsole.SelectionStart - str.Text.Length;
663+
664+ Color tmpColor = str.TxtColor;
665+ if (tmpColor == Color.Transparent)
666+ {
667+ //tmpColor = this.frColor;
668+ tmpColor =rEstConsole.ForeColor;
669+ }
644670
645- public void showOnSubConsole(List<string> estTimeStr)
671+ //色を変更する
672+ rEstConsole.Select(currentSelectionStart, str.Text.Length);
673+ rEstConsole.SelectionColor = tmpColor;
674+ rEstConsole.Select(rEstConsole.Text.Length, 0);
675+ }
676+ }
677+ /// <summary>
678+ /// 合計時間コンソールに文字を追加します。
679+ /// </summary>
680+ /// <param name="dataList"></param>
681+ public void showOnTotalConsole(List<EstTextSet> dataList)
646682 {
647- this.rSubConsole.Text = System.Environment.NewLine;
683+ this.rTotalConsole.Text = string.Empty;
684+ Font baseFont = rTotalConsole.SelectionFont;
648685
649- foreach (string str in estTimeStr)
686+ foreach (EstTextSet data in dataList)
650687 {
651- this.rSubConsole.AppendText(
652- str + System.Environment.NewLine);
688+ this.rTotalConsole.AppendText(data.Text);
689+ int currentSelectionStart = rTotalConsole.SelectionStart - data.Text.Length;
690+
691+ Color tmpColor = data.TxtColor;
692+ if (tmpColor == Color.Transparent)
693+ {
694+ tmpColor = rTotalConsole.ForeColor;
695+ }
696+ //色変更する
697+ rTotalConsole.Select(currentSelectionStart,data.Text.Length);
698+ rTotalConsole.SelectionColor = tmpColor;
699+ rTotalConsole.Select(rTotalConsole.Text.Length, 0);
653700 }
701+
702+ baseFont.Dispose();
703+
654704 }
655705
706+ /// <summary>
707+ /// 取得したデータを元にタスクパネルにタスクを表示します。
708+ /// </summary>
709+ /// <param name="taskList"></param>
656710 public void showOnPanel(List<TaskData> taskList)
657711 {
658712
@@ -683,8 +737,47 @@ namespace com.andoutomo.kybernetes.view
683737 txtInput.Focus();
684738 }
685739
740+ private void tabInfo_SelectedIndexChanged(object sender, EventArgs e)
741+ {
742+ txtInput.Focus();
743+ }
686744
745+ private void tabInfo_MouseUp(object sender, MouseEventArgs e)
746+ {
747+ txtInput.Focus();
748+ }
749+
750+ private void rForcastConsole_MouseUp(object sender, MouseEventArgs e)
751+ {
752+ Clipboard.SetDataObject(rTotalConsole.SelectedText.Trim());
753+
754+ txtInput.Focus();
755+ this.txtInput.Select(this.txtInput.Text.Length, 0);
756+ }
757+ }
758+ /// <summary>
759+ /// 見積もり用コンソールの文字列クラス
760+ /// </summary>
761+ public class EstTextSet
762+ {
763+ public string Text
764+ {
765+ get;
766+ private set;
767+ }
768+ public Color TxtColor
769+ {
770+ get;
771+ private set;
772+ }
773+ public EstTextSet(string text, Color prtxtColor)
774+ {
775+ this.Text = text;
776+ this.TxtColor = prtxtColor;
777+ }
778+ public EstTextSet(string text): this(text, Color.Transparent) { }
687779
780+ public EstTextSet(): this(System.Environment.NewLine) { }
688781 }
689782
690783 }
\ No newline at end of file
--- a/base/view/Credit.Designer.cs
+++ b/base/view/Credit.Designer.cs
@@ -38,6 +38,7 @@
3838 this.linkLabel4 = new System.Windows.Forms.LinkLabel();
3939 this.pictureBox1 = new System.Windows.Forms.PictureBox();
4040 this.pictureBox2 = new System.Windows.Forms.PictureBox();
41+ this.linkLabel1 = new System.Windows.Forms.LinkLabel();
4142 ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
4243 ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
4344 this.SuspendLayout();
@@ -96,7 +97,7 @@
9697 // linkLabel3
9798 //
9899 this.linkLabel3.AutoSize = true;
99- this.linkLabel3.Location = new System.Drawing.Point(296, 203);
100+ this.linkLabel3.Location = new System.Drawing.Point(296, 197);
100101 this.linkLabel3.Name = "linkLabel3";
101102 this.linkLabel3.Size = new System.Drawing.Size(38, 12);
102103 this.linkLabel3.TabIndex = 7;
@@ -107,7 +108,7 @@
107108 // linkLabel4
108109 //
109110 this.linkLabel4.AutoSize = true;
110- this.linkLabel4.Location = new System.Drawing.Point(296, 230);
111+ this.linkLabel4.Location = new System.Drawing.Point(296, 216);
111112 this.linkLabel4.Name = "linkLabel4";
112113 this.linkLabel4.Size = new System.Drawing.Size(65, 12);
113114 this.linkLabel4.TabIndex = 8;
@@ -136,11 +137,23 @@
136137 this.pictureBox2.TabIndex = 9;
137138 this.pictureBox2.TabStop = false;
138139 //
140+ // linkLabel1
141+ //
142+ this.linkLabel1.AutoSize = true;
143+ this.linkLabel1.Location = new System.Drawing.Point(296, 235);
144+ this.linkLabel1.Name = "linkLabel1";
145+ this.linkLabel1.Size = new System.Drawing.Size(26, 12);
146+ this.linkLabel1.TabIndex = 10;
147+ this.linkLabel1.TabStop = true;
148+ this.linkLabel1.Text = "mail";
149+ this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
150+ //
139151 // Credit
140152 //
141153 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
142154 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
143155 this.ClientSize = new System.Drawing.Size(663, 262);
156+ this.Controls.Add(this.linkLabel1);
144157 this.Controls.Add(this.pictureBox2);
145158 this.Controls.Add(this.linkLabel4);
146159 this.Controls.Add(this.linkLabel3);
@@ -175,6 +188,7 @@
175188 private System.Windows.Forms.LinkLabel linkLabel3;
176189 private System.Windows.Forms.LinkLabel linkLabel4;
177190 private System.Windows.Forms.PictureBox pictureBox2;
191+ private System.Windows.Forms.LinkLabel linkLabel1;
178192
179193 }
180194 }
\ No newline at end of file
--- a/base/view/Credit.cs
+++ b/base/view/Credit.cs
@@ -41,6 +41,11 @@ namespace com.andoutomo.kybernetes.view
4141 invokeWebPage("http://sourceforge.jp/users/andoutomo/projects/");
4242 }
4343
44+ private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
45+ {
46+ invokeWebPage("mailto:andoutomo@users.sourceforge.jp");
47+ }
48+
4449
4550
4651 }
--- a/base/view/Credit.resx
+++ b/base/view/Credit.resx
@@ -121,7 +121,7 @@
121121 <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122122 <value>
123123 iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
124- YQUAAAAJcEhZcwAADr8AAA6/ATgFUyQAAJtHSURBVHhenX0FeBVX1/VFEkICBJJASALBoljc3d3dBUKC
124+ YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAJtHSURBVHhenX0FeBVX1/VFEkICBJJASALBoljc3d3dBUKC
125125 Bg3u7lKkSHF3p1B3F0qdUqfUKKVQILr+vc7NDYGm7/t+P8+zmblz505mZu299trnnDmjGdh/EHpb90H3
126126 bt1hZdFD1ntj4AAXREclYHjFGCyYvxSLF61AQUEp8nKLmiwnuxBZmfnIySp8ZPvjVpBXIscZ3fR51MhK
127127 bNu2B3NmL8LMGfOw4YktOLD/CJ595iW8/95H+PTjL/HJx1/gY7G33/5AbT9y+AQ2P/kUlixegXFjJ2Fc
@@ -790,7 +790,7 @@
790790 <data name="pictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
791791 <value>
792792 iVBORw0KGgoAAAANSUhEUgAAAXoAAAAuCAYAAAAmyNLFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
793- YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AACAhSURBVHhe7Z17rGVXXcfxFfFdAWlTXnWgzHSmM+1tgd4i
793+ YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAACAhSURBVHhe7Z17rGVXXcfxFfFdAWlTXnWgzHSmM+1tgd4i
794794 ZlDi1ZgLijcSHSN6Ew0TkqYYzEQSxlQdgjoaGIlO0kh9xAkmNhitRK0J2D8UFCMhSIkIKClQ0gfz6jw6
795795 07I9n337Pfd7vnetffbtzL2de2fn5JuZu/fa6/F7fNdv/dba5zyraZoBAwb0wD3NPc2hpz73jT55f8Az
796796 jweaB5rDo4/09InRJ8tcjnjW/rMHmpfG597RRwXub+5vtj6x3e4ufbj20Oijcn2w8/yM1fDS5q0n940u
--- a/base/view/PanelController.cs
+++ b/base/view/PanelController.cs
@@ -19,92 +19,86 @@ namespace com.andoutomo.kybernetes.view
1919 {
2020 Panel rowPanel=new Panel();
2121 Color frColor = Color.White;
22+ Color ctgFrColor = Color.White;
2223 if (!string.IsNullOrEmpty(data.Category))
2324 {
2425 frColor = Color.FromArgb(data.FrColor);
2526 }
26- //Color bgColor = Color.FromArgb(data.BgColor);
27+ //カテゴリ用だけ、元の設定色を保持しておく。
28+ ctgFrColor = Color.FromArgb(data.FrColor);
29+
2730 FontStyle style;
2831 FontStyle timeStyle;
2932 float fontsize;
30- int rowsize;
33+ float contentFontSize;
34+ int rowsize=0;
3135
32- if (data.ForecastMin >= 90|| data.RealMin >=90)
36+ if (data.isComplete)
3337 {
34- fontsize = 10F;
35- rowsize = 24;
38+ //完了済みの場合は実測時間からサイズを判断
39+ timeStyle = FontStyle.Strikeout;
40+ style = FontStyle.Strikeout;
41+ frColor = Color.Gray;
3642
37- if (data.isComplete)
43+
44+ if (data.RealMin >= 120)
3845 {
39- style = FontStyle.Strikeout;
40- timeStyle = FontStyle.Strikeout;
41- frColor = Color.Gray;
46+ fontsize = 14F;
47+ contentFontSize = 12F;
48+ rowsize = 30;
4249 }
43- else if (data.StartTime.IsValid)
50+ else if (data.RealMin >= 90)
4451 {
45- timeStyle = FontStyle.Underline;
46- style = FontStyle.Underline | FontStyle.Bold;
47- rowsize += 1;
52+ fontsize = 12F;
53+ contentFontSize = 12F;
54+ rowsize = 26;
4855 }
49- else if (data.ForecastMin >= 120 || data.RealMin >=120)
56+ else if (data.RealMin >= 60)
5057 {
51- if (data.StartTime.IsValid)
52- {
53- timeStyle = FontStyle.Underline;
54- style = FontStyle.Underline | FontStyle.Bold;
55- rowsize += 1;
56- }
57- else
58- {
59- style = FontStyle.Regular;
60- timeStyle = FontStyle.Bold;
61- }
58+
59+ fontsize = 10F;
60+ contentFontSize = 9F;
61+ rowsize = 24;
6262 }
6363 else
6464 {
65- timeStyle = FontStyle.Regular;
66- style = FontStyle.Regular;
65+ fontsize = 9F;
66+ contentFontSize = 9F;
67+ rowsize = 18;
6768 }
6869 }
69- else if (data.ForecastMin >= 60 || data.RealMin >= 60)
70+ else
7071 {
71- fontsize = 9F;
72- rowsize = 20;
73-
74- if (data.isComplete)
72+ //未完了の場合は予測時間からサイズを判断
73+ if (data.ForecastMin >= 120)
7574 {
76- timeStyle = FontStyle.Strikeout;
77- style = FontStyle.Strikeout;
78- frColor = Color.Gray;
75+ fontsize = 14F;
76+ contentFontSize = 12F;
77+ rowsize = 30;
7978 }
80- else if (data.StartTime.IsValid)
79+ else if (data.ForecastMin >= 90)
8180 {
82- timeStyle = FontStyle.Underline;
83- style = FontStyle.Underline | FontStyle.Bold;
84- rowsize += 1;
81+ fontsize = 12F;
82+ contentFontSize = 12F;
83+ rowsize = 26;
8584 }
86- else
85+ else if (data.ForecastMin >= 60)
8786 {
88- timeStyle = FontStyle.Regular;
89- style = FontStyle.Regular;
87+ fontsize = 10F;
88+ contentFontSize = 9F;
89+ rowsize = 24;
9090 }
91-
92- }
93- else
94- {
95- fontsize = 9F;
96- rowsize = 16;
97-
98- if (data.isComplete)
91+ else
9992 {
100- timeStyle = FontStyle.Strikeout;
101- style = FontStyle.Strikeout;
102- frColor = Color.Gray;
93+ fontsize = 9F;
94+ contentFontSize = 9F;
95+ rowsize = 18;
10396 }
104- else if (data.StartTime.IsValid)
97+
98+ if (data.StartTime.IsValid)
10599 {
106100 timeStyle = FontStyle.Underline;
107- style = FontStyle.Underline| FontStyle.Bold;
101+ style = FontStyle.Underline | FontStyle.Bold;
108102 rowsize += 1;
109103 }
110104 else
@@ -112,7 +106,6 @@ namespace com.andoutomo.kybernetes.view
112106 timeStyle = FontStyle.Regular;
113107 style = FontStyle.Regular;
114108 }
115-
116109 }
117110 //全体サイズからContentの長さを決める。
118111
@@ -121,7 +114,7 @@ namespace com.andoutomo.kybernetes.view
121114 int wkContentAdditional = wkPanelSize - 825;
122115 if (wkContentAdditional < 0) wkContentAdditional = 0;
123116 //int wkContentSize = wkPanelSize - 689;
124- int wkDelaySize = 395+wkContentAdditional;
117+ int wkDelaySize = 395 + wkContentAdditional;
125118
126119 sortID = data.SortID;
127120 //rowPanel.Controls.Add(new CustomLabel(data.Indicator, frColor, bgColor, FontStyle.Regular, 9F, 0, 21, rowsize,ContentAlignment.MiddleCenter));
@@ -129,15 +122,15 @@ namespace com.andoutomo.kybernetes.view
129122 rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDateString(), frColor, style, 9F, 40, 56, rowsize,ContentAlignment.MiddleCenter));
130123 rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDowStr(), frColor, style, 9F, 95, 26, rowsize,ContentAlignment.MiddleCenter));
131124 rowPanel.Controls.Add(new CustomLabel(data.TimeArea, frColor, style, 9F, 120, 21, rowsize,ContentAlignment.MiddleCenter));
132- rowPanel.Controls.Add(new CustomLabel(data.Category, frColor, style, 9F, 140, 81, rowsize));
125+ rowPanel.Controls.Add(new CustomLabel(data.Category, ctgFrColor, style, 9F, 140, 81, rowsize));
133126
134- rowPanel.Controls.Add(new CustomLabel(data.Contents, frColor, style, 9F, 220, 175 + wkContentAdditional, rowsize));
127+ rowPanel.Controls.Add(new CustomLabel(data.Contents, frColor, style, contentFontSize, 220, 175 + wkContentAdditional, rowsize));
135128
136129 rowPanel.Controls.Add(new CustomLabel(data.getForcastHourStr, frColor, timeStyle, fontsize, wkDelaySize, 51, rowsize, ContentAlignment.MiddleRight));
137130 rowPanel.Controls.Add(new CustomLabel(data.ForecastMin.ToString(), frColor, timeStyle, fontsize, wkDelaySize + 50, 51, rowsize, ContentAlignment.MiddleRight));
138131 rowPanel.Controls.Add(new CustomLabel(data.RealMin.ToString(), frColor, timeStyle, fontsize, wkDelaySize + 100, 51, rowsize, ContentAlignment.MiddleRight));
139- rowPanel.Controls.Add(new CustomLabel(data.StartTime.ToString(), frColor, style, 9F, wkDelaySize + 150, 61, rowsize, ContentAlignment.MiddleCenter));
140- rowPanel.Controls.Add(new CustomLabel(data.EndTime.ToString(), frColor, style, 9F, wkDelaySize + 210, 61, rowsize, ContentAlignment.MiddleCenter));
132+ rowPanel.Controls.Add(new CustomLabel(data.StartTime.ToString(), frColor, style, fontsize, wkDelaySize + 150, 61, rowsize, ContentAlignment.MiddleCenter));
133+ rowPanel.Controls.Add(new CustomLabel(data.EndTime.ToString(), frColor, style, fontsize, wkDelaySize + 210, 61, rowsize, ContentAlignment.MiddleCenter));
141134
142135 rowPanel.Controls.Add(new CustomLabel(data.Project, frColor, style, 9F, wkDelaySize + 270, 81, rowsize));
143136 rowPanel.Controls.Add(new CustomLabel((data.IsRepeat == 1 ? "R" : ""), frColor, style, 9F, wkDelaySize + 350, 21, rowsize, ContentAlignment.MiddleCenter));
Binary files a/kybernetes2.suo and b/kybernetes2.suo differ
--- a/main/CmdDispatcher.cs
+++ b/main/CmdDispatcher.cs
@@ -86,7 +86,7 @@ namespace com.andoutomo.kybernetes.control
8686 {
8787 commandType = asm.GetType(data.TargetClass);
8888 }
89- //両方見つかったら脱出。
89+ //見つかったら脱出。
9090 if (argsType != null && commandType != null)
9191 {
9292 break;
--- a/main/Kybernetes.csproj
+++ b/main/Kybernetes.csproj
@@ -116,7 +116,6 @@
116116 <Compile Include="command\CRUD\ListCommandArg.cs" />
117117 <Compile Include="command\CRUD\ListGoingCommandArg.cs" />
118118 <Compile Include="command\CRUD\ListRemainCommandArg.cs" />
119- <Compile Include="command\CRUD\LongListCommand.cs" />
120119 <Compile Include="command\CRUD\RenumCommand.cs" />
121120 <Compile Include="command\CRUD\UpdateCommand.cs" />
122121 <Compile Include="command\CRUD\UpdateCommandArg.cs" />
--- a/main/Properties/AssemblyInfo.cs
+++ b/main/Properties/AssemblyInfo.cs
@@ -33,6 +33,6 @@ using System.Resources;
3333 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
3434 // 既定値にすることができます:
3535 // [assembly: AssemblyVersion("1.0.*")]
36-[assembly: AssemblyVersion("1.1.6.0")]
37-[assembly: AssemblyFileVersion("1.1.6.0")]
36+[assembly: AssemblyVersion("1.1.6.4")]
37+[assembly: AssemblyFileVersion("1.1.6.4")]
3838 [assembly: NeutralResourcesLanguageAttribute("ja")]
Binary files /dev/null and b/main/bin/Debug/System.Data.SQLite.dll differ
--- /dev/null
+++ b/main/bin/Debug/help.txt
@@ -0,0 +1,709 @@
1+------- list
2+タスクを表示します。
3+
4+alies:ls
5+
6+タスクの表示を行います。
7+引数なしの場合は、システム設定日付のタスク一覧を、
8+引数がある場合はそれぞれその特性のデータを抽出し、ウィンドウに表示します。
9+
10+書式:
11+list {all|remain|going|{mmdd}}
12+
13+パラメータ:
14+all - 日付、状態にかかわらず全タスクを表示します。
15+remain - 日付、状態にかかわらず「終了していない」全タスクを表示します。
16+going - システム日付以降のタスクを表示します。
17+{MMdd} - 指定した日付の全タスクを表示します。
18+パラメータがない場合はシステム日付のタスクを表示します。
19+
20+なお、同時に見積もりコンソールと合計コンソールも更新します。
21+
22+------- pwd
23+現在実施中のタスクを表示します。
24+
25+alies:
26+
27+書式:
28+pwd
29+
30+
31+------- estimate
32+作業見積もりをサブコンソールに表示します。
33+
34+alies:est
35+
36+書式:
37+estimate
38+estimate {yyyyMMdd}
39+estimate {MMdd}
40+
41+パラメータ:
42+{yyyyMMdd} {MMdd} - 対象日付
43+
44+コンソールの見方は以下のとおりです。
45+
46+@ 対象タイムエリア
47+FROM-TO 対象タイムエリアの時間帯
48+Span 対象タイムエリア全体の時間
49+Forecast 対象タイムエリアの予測時間合計
50+REAL 対象タイムエリアの実績時間合計
51+REMAIN 対象タイムエリアの未終了タスクの予測時間合計
52+
53+なお、同時に合計コンソールも更新します。
54+
55+------- find
56+タスクの検索を行います。
57+
58+alies:
59+
60+
61+書式:
62+find {KEYWORD}
63+
64+パラメータ:
65+{KEYWORD} - 検索文字列(部分一致)
66+検索対象は実施事項、カテゴリ名、プロジェクト及びタグです。
67+
68+
69+------- sum
70+タスクの見積もり時間、実績時間を集計します。
71+
72+alies:
73+
74+
75+書式:
76+sum {ID} {ID} ...
77+
78+パラメータ:
79+{ID} - 集計対象のID(複数選択可)
80+見積もり時間及び実績時間を集計してコンソールに表示します。
81+
82+
83+------- show
84+タスクの詳細情報を表示します。
85+
86+alies:
87+
88+
89+書式:
90+show {ID}
91+
92+パラメータ:
93+{ID} - 変更対象のID
94+
95+そのタスクについたコメント、詳細見積もり情報等を含めて表示します。
96+
97+
98+------- simulate
99+終了時間をシミュレーションします。
100+
101+alies:sim
102+
103+タスクの予測時間から、最終的な終了時間の算出を行います。
104+引数なしの場合は、システム設定日付での算出を、
105+引数がある場合はその日付の算出を行います。
106+
107+書式:
108+simulate {mmdd}
109+
110+パラメータ:
111+{MMdd} - 指定した日付の全タスクを表示します。
112+パラメータがない場合はシステム日付のタスクでシミュレーションを行います。
113+なお、その時点で完了しているタスクはシミュレーション対象としません。
114+
115+
116+------- listall
117+全タスクを表示します。
118+
119+alies:
120+
121+
122+タスクの表示を行います。
123+list all と同じ処理を実施します。
124+
125+書式:
126+listall
127+
128+パラメータ:
129+なし
130+
131+
132+------- listremain
133+終了していないタスクを表示します。
134+
135+alies:
136+
137+タスクの表示を行います。
138+list remain と同じ処理を実施します。
139+
140+書式:
141+listremain
142+
143+パラメータ:
144+なし
145+
146+
147+------- listgoing
148+本日以降のタスクを表示します。
149+
150+alies:
151+
152+タスクの表示を行います。
153+list going と同じ処理を実施します。
154+
155+書式:
156+listgoing
157+
158+パラメータ:
159+なし
160+
161+
162+------- add
163+タスクを追加します。
164+
165+alies:a
166+
167+タスクの追加を行います。
168+タスクの必須項目は、日付、時間帯、カテゴリ、タスク名、見積もり時間となります。
169+追加コマンド実行時にそれらの項目が記入されていなければ、自動的にダイアログで確認を取ります。
170+
171+書式:
172+add {タスク名} d:{mmdd}{yyyyMMdd} c:{カテゴリ名} f:{見積もり時間} @:{A-Z}
173+
174+パラメータ:
175+d:{mmdd}{yyyyMMdd} - 実施日付を設定します。
176+c:{カテゴリ名} - カテゴリ名を設定します。
177+f:{見積もり時間} - 見積もり時間を設定します。最後尾に"h"をつけると時間換算になります。
178+@:{A-Z} - 対象タイムエリアを設定します。
179+
180+
181+------- update
182+タスクを更新します。
183+
184+alies:mod
185+
186+タスクを更新します。
187+タスクの必須項目は、日付、時間帯、カテゴリ、項目名、見積もり時間となります。
188+追加コマンド実行時にそれらの項目が記入されていなければ、自動的にダイアログで確認を取ります。
189+
190+書式:
191+update {ID} d:{mmdd}{yyyyMMdd} c:{カテゴリ名} f:{見積もり時間} @:{A-Z} {タスク名}
192+
193+パラメータ:
194+d:{mmdd}{yyyyMMdd} - 実施日付を設定します。
195+c:{カテゴリ名} - カテゴリ名を設定します。
196+f:{見積もり時間} - 見積もり時間を設定します。最後尾に"h"をつけると時間換算になります。
197+@:{A-Z} - 対象タイムエリアを設定します。
198+
199+
200+------- delete
201+タスクを削除します。
202+
203+alies:rm
204+
205+タスクを削除します。
206+削除対象は単数字、あるいはエリアで設定できます。
207+
208+書式:
209+delete {num} | delete f:{num} t:{num}
210+
211+パラメータ:
212+{num} 対象のタスクを削除します。
213+f:{num} 削除対象の開始位置(from)を指定します。
214+t:{num} 削除対象の終了位置(to)を指定します。
215+
216+対象のIDがマイナスである場合は、絶対値がt<fである必要があります。
217+
218+
219+------- duplicate
220+指定したタスクを複製します。
221+
222+alies:cp
223+
224+書式:
225+duplicate {ID}
226+
227+パラメータ:
228+{Id} - 複製したいID
229+
230+
231+------- comment
232+コメントを追加します。
233+
234+alies:c
235+
236+タスクあるいは仕事全体に対して、コメントを追加します。
237+
238+書式:
239+comment {ID} {Comment}
240+
241+パラメータ:
242+ID:設定されている場合、特定のタスクに対してコメントします。コメント内容はshowコマンドで閲覧可能です。
243+設定されない場合は全体コメントになります。
244+Comment:コメント本体です。書きたいことを書いてください。
245+
246+
247+------- clearcomment
248+コメントをクリアします。
249+
250+alies:
251+
252+書式:
253+clearcomment {ID|d:date}
254+
255+パラメータ:
256+ID:特定のタスクに対するコメントを削除します。
257+d:date:特定の日付の仕事全体に対するコメントを削除します。
258+
259+
260+------- report
261+タスクを開始/終了します。
262+
263+alies:
264+
265+指定したタスクに対して、開始/終了時間を入力し終了状態にします。
266+開始時間は直前の終了時間、終了時間は現時点とします。
267+Start+Endを同時に実施するイメージです。
268+
269+既に終了しているタスクの終了時間の変更も可能です。
270+また、繰り返しがある場合次回実施日を聞いてきます。
271+
272+書式::
273+report {id} {now|{hh:mm}}
274+
275+パラメータ:
276+id 開始対象のタスクIDです。
277+now システム時間を取得して終了時間とします。
278+hh:mm 終了時間を設定します。設定しない場合は、システム時間を取得して終了時間とします。
279+
280+
281+------- check
282+タスクを完了にします。
283+
284+alies:
285+
286+指定したタスクに対して、開始/終了時間を入力し終了状態にします。
287+開始/終了時間は指定した時間か、または現時点とします。
288+このコマンドを使用する場合、実績時間が0時間となります。
289+
290+既に終了しているタスクの終了時間の変更も可能です。
291+また、繰り返しがある場合次回実施日を聞いてきます。
292+
293+書式::
294+check {id} {now|{hh:mm}}
295+
296+パラメータ:
297+id 対象のタスクIDです。
298+now システム時間を取得して終了時間とします。
299+hh:mm 開始終了時間を設定します。設定しない場合は、システム時間を取得して設定時間とします。
300+
301+
302+------- svcall
303+割り込みタスクを設定します。
304+
305+alies:
306+
307+書式:
308+svcall
309+svcall {作業内容}
310+svend
311+svend {作業内容}
312+
313+割り込みの場合、各設定値は以下のとおりとなります。
314+
315+作業内容:- 割り込み作業 -
316+ (パラメータで設定も出来ます。その場合、作業内容に"- "が付与されます。)
317+日付:システム日付
318+時間帯:登録時点のタイムエリア設定に準拠
319+カテゴリ:なし
320+見積もり時間:0
321+開始時間:登録時点(SVCallの場合)、前回最終終了時点(SVEndの場合)
322+終了時間:登録時点(SVEndの場合)
323+タグ:"!!"
324+
325+
326+------- start
327+タスクを開始します。
328+
329+alies:
330+
331+指定したタスクに対して、開始時間を入力し開始状態にします。
332+既に開始しているタスクの開始時間の変更も可能です。
333+
334+書式::
335+start {id} {now|{hh:mm}}
336+
337+パラメータ:
338+id 開始対象のタスクIDです。
339+now システム時間を取得して開始時間とします。
340+hh:mm 開始時間を設定します。設定しない場合は、直前の終了時間を取得して開始時間とします。
341+
342+
343+------- end
344+タスクを終了します。
345+
346+alies:
347+
348+指定したタスクに対して、終了時間を入力し終了状態にします。
349+既に終了しているタスクの終了時間の変更も可能です。
350+また、繰り返しがある場合次回実施日をダイアログで確認します。
351+
352+書式::
353+end {id} {now|{hh:mm}}
354+
355+パラメータ:
356+id 開始対象のタスクIDです。
357+now システム時間を取得して終了時間とします。
358+hh:mm 終了時間を設定します。設定しない場合は、システム時間を取得して終了時間とします。
359+
360+
361+------- clear
362+タスクを実行前の状態に戻します。
363+
364+alies:
365+
366+書式:
367+clear {ID}
368+
369+パラメータ:
370+id 対象のタスクIDです。
371+
372+
373+------- repeat
374+タスクの繰り返しを設定します。
375+
376+alies:
377+
378+書式:
379+repeat {ID} {on|true|off|false}
380+
381+パラメータ:
382+on|true - 繰り返します。
383+off|false - 繰り返しません。
384+
385+
386+------- delay
387+タスクを日付レベルで延期します。
388+
389+alies:
390+
391+書式:
392+delay {ID} {d}
393+
394+パラメータ:
395+{ID} - 変更対象のID
396+{d} - 延期したい日数
397+なお、日数なしの場合ダイアログで確認します。
398+
399+
400+------- charea
401+指定したタスクのタイムエリアを変更します。
402+
403+alies:mv
404+
405+書式:
406+charea {ID} {TimeArea}
407+
408+パラメータ:
409+{ID} 対象タスクID
410+{TimeArea} - 変更したいタイムエリア
411+
412+
413+------- chnum
414+指定したタスクのソート番号を変更します。
415+
416+alies:nm
417+
418+書式:
419+chnum {OLDID} {NEWID}
420+
421+パラメータ:
422+{OLDID} - 変更前ID
423+{NEWID} - 変更後ID
424+
425+
426+------- renum
427+タスク番号の振り直しを行います。
428+
429+alies:
430+
431+書式:
432+renum
433+
434+renumコマンドにより、タスクソート順にそって10から番号が付与されます。
435+この時、過去分のタスクはマイナス算出されます。
436+
437+
438+------- project
439+タスクのプロジェクトを設定します。
440+
441+alies:prj
442+
443+指定したタスクに対して、プロジェクトを設定します。
444+
445+書式:
446+project {ID} {prjName}
447+
448+パラメータ:
449+id 対象のタスクIDです。
450+prjName 設定するプロジェクトです。設定しない場合は、ダイアログで現存するプロジェクトを選択できます。
451+なお、ダイアログで何も選択しないことで、プロジェクト設定を消去できます。
452+
453+
454+------- addtag
455+タスクにタグを付与します。
456+
457+alies:
458+
459+指定したタスクに対して、タグを付与します。既にタグがある場合は追加します。
460+
461+書式:
462+addtag {ID} {Tag}
463+
464+id 対象のタスクIDです。
465+Tag 付与するタグです。設定しない場合はダイアログで現存するタグを選択できます。
466+
467+タグを消去する場合はcleartagコマンドを使用してください。
468+
469+
470+------- cleartag
471+タグを消去します。
472+
473+alies:
474+
475+指定したタスクのタグをクリアします。
476+
477+書式:
478+cleartag {ID}
479+
480+id 対象のタスクIDです。
481+
482+タグについては全消去となります。
483+
484+
485+------- timer
486+タイマーを表示します。
487+
488+alies:
489+
490+タイマーを画面に表示します。
491+IDを設定した場合は、そのタスクの見積もり時間(既に開始している場合は残り時間)、
492+設定しない場合は、ダイアログで時間を設定します。
493+
494+なお、見積もり時間が0以下、あるいはダイアログで0設定を実施した場合は
495+ポモドーロ・テクニックに基づき、25分を設定します。
496+
497+書式:
498+timer
499+timer {ID}
500+
501+パラメータ:
502+ID:タイマー表示するタスクIDを設定します。
503+
504+
505+------- today
506+基準日を表示します。
507+
508+alies:
509+
510+システム基準日をコンソールに表示します。
511+
512+
513+------- date
514+基準日を変更します。
515+
516+alies:
517+
518+システム基準日を変更します。
519+
520+書式:
521+date {yyyyMMdd} | date {MMdd}
522+
523+パラメータ:
524+{yyyyMMdd}|{MMdd} - 合わせたい日付
525+
526+
527+------- echo
528+コンソールへのコマンド表示を制御します。
529+
530+alies:
531+
532+書式:
533+echo {on|true|off|false}
534+
535+パラメータ:
536+on|true - コマンド内容をコンソールに反映します。
537+off|false - コマンド内容をコンソールに反映しません。
538+
539+
540+------- cls
541+コンソールをクリアします。
542+
543+alies:
544+
545+書式:
546+cls
547+
548+
549+------- link
550+コマンドに関するアライアスを作成します。
551+
552+alies:ln
553+
554+書式:
555+link {alies} {basecmd}
556+
557+パラメータ:
558+{alies} - リンクとして使いたい語句
559+{basecmd} - リンク先となるコマンド
560+
561+
562+------- logmode
563+ログ出力モードを変更します。
564+
565+alies:
566+
567+書式:
568+logmode {error|trace|debug}
569+
570+パラメータ:
571+error:システムエラー時のみログ出力します。
572+trace:errorに加え、コンソールに表示された内容及び打ち込んだコマンドをログ出力します。
573+debug:traceに加え、内部で使用するSQL(データ取得クエリ)内容を取得します。
574+
575+
576+------- batch
577+バッチを実行します。
578+
579+alies:
580+
581+書式:
582+batch
583+batch {filepath} {arg1} {arg2} ...
584+
585+引数で指定したファイルに記載された内容を、行ごとにすべて実行します。
586+引数でファイルを指定しない場合は、ファイルダイアログで指定します。この時、引数は設定できません。
587+
588+パラメータ:
589+filepath:バッチファイルのパスです。絶対パスか、アプリケーション格納先からの相対パスで指定します。
590+arg1,2,...:引数です。バッチファイル内で%1,%2...と記載された部分にそれぞれ置き換えられます。
591+
592+------- bedit
593+バッチプログラムを編集します。
594+
595+alies:
596+
597+書式:
598+bedit
599+
600+プログラムの配置パスにある「batch.kysh」ファイルをメモ帳で開きます。
601+batchコマンドで便利です。
602+
603+
604+------- categ
605+カテゴリ設定画面を表示します。
606+
607+alies:
608+
609+書式:
610+categ
611+
612+カテゴリ設定画面を表示します。
613+
614+
615+------- timearea
616+タイムエリア設定画面を表示します。
617+
618+alies:
619+
620+書式:
621+timearea
622+
623+タイムエリア設定画面を表示します。
624+
625+
626+------- version
627+バージョン情報を表示します。
628+
629+alies:
630+
631+書式:
632+version | credit
633+
634+
635+
636+------- credit
637+バージョン情報を表示します。
638+
639+alies:
640+
641+書式:
642+version | credit
643+
644+
645+
646+------- exp
647+全タスクをファイルにエクスポートします。
648+
649+alies:
650+
651+書式:
652+exp
653+
654+実行後にファイル保存先指定ダイアログが出ます。
655+形式はcsv(カンマ区切りテキスト)です。
656+
657+
658+------- dmp
659+データベースのダンプを取得します。
660+
661+alies:
662+
663+書式:
664+dmp
665+
666+実行後にファイル保存先指定ダイアログが出ます。
667+形式はSQLite DB(*.db)です。
668+
669+
670+------- bgcolor
671+コンソールの背景を変更します。
672+
673+alies:
674+
675+コンソールの背景色を変更します。
676+色選択ダイアログから背景色を設定してください。
677+
678+
679+------- frcolor
680+コンソールの前景色を変更します。
681+
682+alies:
683+
684+コンソールの前景色を変更します。
685+色選択ダイアログから背景色を設定してください。
686+
687+選択した色は、タイムエリアインデックス及び表題部に反映されます。
688+
689+
690+------- help
691+各コマンドの解説を表示します。
692+
693+alies:
694+
695+書式:
696+help
697+help {Command}
698+
699+パラメータ:
700+{Command} - 閲覧したいコマンドの内容を入力します。リンクでの検索は出来ませんので注意してください。
701+
702+
703+------- exit
704+アプリケーションを終了します。
705+
706+alies:
707+
708+書式:
709+exit
--- /dev/null
+++ b/main/bin/Debug/readme.txt
@@ -0,0 +1,81 @@
1+#####################################################
2+# Kybernetes Task Operating System
3+# Version 1.1.6.4
4+#
5+#####################################################
6+
7+<これは何>
8+日々の仕事を、「タスク(ToDo)の集合体」と捉え、それを順次実行して行くという考え方に基づき、タスクの列挙、実行管理、見積もりや状況判断をサポートする目的で作成されたソフトウェアです。
9+
10+<kybernetesとは>
11+古ギリシア語で「船の舵をとるもの」という意味の言葉です。(フォントの関係でラテン語読みを採用しました。)
12+サイバノティクスの語源となった言葉になります。
13+アイコンは某F-1コンストラクタのステアリング写真から一部を頂いております。
14+
15+<コンセプト>
16+本ソフトウェアにおいてはほぼ全ての動作を擬似コマンドライン(画面右下の入力ボックスからのキーボード入力)によって
17+実行できるように構成されています。
18+入力コンセプトは、 Gina Trapani氏らの提唱された「ToDo.txt」にインスパイアを受けております。
19+
20+タスク管理コンセプトは、大橋悦夫氏作「Taskchute」の理論に基づいています。
21+
22+<システム要件>
23+Microsoft .Net Framework 4.0以上が必要です。
24+動作確認はWindows7 (32bit/64bit)で実施済み。
25+Windows8でも動くとは思いますが、ModernUIでの動作は保証いたしません。
26+WindowsXPでの動作確認は未済です。多分大丈夫でしょうけど。
27+基本的に日本語Windows用です。海外で使用する場合は文字が化けると思います。誰か試してください。
28+
29+<インストール/アンインストール>
30+本フォルダ内にある「kybernetes.exe」を起動してください。
31+アンインストールするときは、フォルダごと削除していただければOKです。
32+
33+<使い方>
34+kybernetesにおいてはほぼ全てのアクションが、下部の入力ボックスから文字を入力することで実行されます。
35+まずは「add kybernetes試してみる」と入力してEnterキーを押してみてください。必要な情報を聞いてきます。
36+ひと通り入力し終えたら、「list all」と入力してEnterキーを押してみてください。
37+その他、用意してあるコマンドについては「help」「help コマンド名」で情報が閲覧できます。
38+
39+タスク管理そのものの考え方は、TaskchuteやGTDの考え方をご参照ください。
40+http://taskchute.net/
41+http://gettingthingsdone.com/
42+
43+<操作>
44+Enterキーでコマンドを実行します。
45+escキーを入力することで、入力ボックスをクリアします。
46+ctrl+Spaceキーを入力することで、IMEのOn/Off切り替えを行います。
47+PageDownキーでタスクリストを1ページ分スクロールします。PageUpで1ページ分戻ります。
48+Ctrl+PageDown/PageUpキーでタスクリストを短めにスクロールします。
49+上矢印のキーでコマンドの履歴が表示されます。下矢印で履歴を逆引きします。(最大10件)。
50+
51+タスクリストをダブルクリックすると、選択されたタスクのIDをテキストボックスに追加します。
52+下部のコンソール(左右両方とも)でテキストを選択すると、そのテキストはクリップボードにコピーされます。
53+
54+その他の動作に関してはコマンドで操作しますので、上記通り「help」コマンドで情報が閲覧できます。
55+ヘルプの内容は当フォルダ内「help.txt」に記載されていますが、当ファイルを変更してもヘルプの内容は変化しません。
56+
57+<その他注意点>
58+カテゴリーを削除する場合は、対象カテゴリーを選択してカテゴリ名を表示させたあと、それを全消去してから
59+「適用」ボタンをクリックするとクリアされます。そのまま「閉じる」をクリックすると消去されます。
60+タイムエリアも同様に、アルファベットの設定値を削除して「適用」ボタンをクリックすると消去されます。
61+
62+<免責事項>
63+本ソフトウェアは個人使用/商用を問わず無料でご提供しております。
64+製造にあたっては細心の注意を払っておりますが、動作不具合による損害等に関しましては、当方では責任を負いかねます。予めご了承ください。
65+また、(ないとは思いますが)タスク管理コンセプトそのものによりもたらされた損害が仮にあったとしても、
66+当方では責任を負いかねますし、提唱者の方にも責任はありません。そのことを留意の上で使用してください。
67+
68+OSのバージョンアップ/EOSによる動作検証に関しても可能な限り対応いたしますが、基本的に無保証とさせていただきます。
69+
70+本ソフトウェアの著作権は作成者が保持しております。
71+ソースコードは開示いたしますが、不正行為による複製、改造、開示等は許諾いたしません。
72+また、製造者が実施した以外の改変、改造につきましては製造者は責任を負いかねます。自己責任でforkしてください。
73+
74+ソフトウェアを開示する場合は必ず著作者のブログか、SourceForgeのプロジェクトページに遷移するようにユーザを誘導してください。
75+
76+<お問い合わせ>
77+Twitter:@AndouTomo
78+Mailto: andoutomo@users.sourceforge.jp
79+
80+Copyright @AndouTomo 2014
81+http://stepinstepover.wordpress.com/
Binary files a/main/bin/Debug/setting.db and b/main/bin/Debug/setting.db differ
Binary files a/main/bin/Debug/user.db and b/main/bin/Debug/user.db differ
--- a/main/command/CRUD/EstimateCommand.cs
+++ b/main/command/CRUD/EstimateCommand.cs
@@ -2,6 +2,8 @@
22 using com.andoutomo.kybernetes.data.accessor;
33 using com.andoutomo.kybernetes.data.DAO;
44 using com.andoutomo.kybernetes.data;
5+using com.andoutomo.kybernetes.view;
6+using System.Drawing;
57
68 namespace com.andoutomo.kybernetes.command.reference
79 {
@@ -10,15 +12,29 @@ namespace com.andoutomo.kybernetes.command.reference
1012 protected override bool execute()
1113 {
1214 EstimateCommandArg param = (EstimateCommandArg)argument;
13- string targetDate=string.Empty;
14- bool isToday;
1515
16+ if (estimateToday(param) == false)
17+ {
18+ return false;
19+ }
20+ return getTotal();
21+
22+ }
23+ /// <summary>
24+ /// Estimateウィンドウの処理を実施します。
25+ /// </summary>
26+ /// <param name="param"></param>
27+ /// <returns></returns>
28+ private bool estimateToday(EstimateCommandArg param)
29+ {
1630 //タスクリストを取得
31+ string targetDate = string.Empty;
32+ bool isToday;
1733 List<TaskData> taskList;
1834 if (param.targetDate == null)
1935 {
2036 taskList = TaskDataAccessor.getObject.getToDayTaskList();
21- targetDate="本日";
37+ targetDate = "本日";
2238 isToday = true;
2339 }
2440 else
@@ -43,7 +59,7 @@ namespace com.andoutomo.kybernetes.command.reference
4359 area.ForcastMin += taskData.ForecastMin;
4460 // 実績時間
4561 area.ActualMin += taskData.RealMin;
46-
62+
4763
4864 // 終了していないタスクの時間
4965 if (taskData.isComplete == false)
@@ -56,41 +72,130 @@ namespace com.andoutomo.kybernetes.command.reference
5672 }
5773 }
5874
59- List<string> msgList = new List<string>();
60- msgList.Add(targetDate + "の作業見積もり及び実績");
61- msgList.Add(string.Empty);
62- msgList.Add(" @ FROM-TO Span Forecast REAL REMAIN ");
75+ List<EstTextSet> msgList = new List<EstTextSet>();
76+ msgList.Add(new EstTextSet(targetDate + "の作業見積もり及び実績"));
77+ msgList.Add(new EstTextSet());
78+ msgList.Add(new EstTextSet(" @ FROM-TO Span Forecast REAL REMAIN "));
79+ msgList.Add(new EstTextSet());
80+
6381 foreach (TimeAreaCalcData area_ in timeAreaList)
6482 {
6583 // image: @ FROM-TO Span Forecast REAL REMAIN
6684 // image: A 09:00-12:00 3:00 2:40 3:20 1:10
67- string estimateStr = " " + area_.AreaStr;
68- estimateStr += " ";
69- estimateStr += getFiveLengthTimeStr(area_.StartTime);
70- estimateStr += "-";
71- estimateStr += getFiveLengthTimeStr(area_.EndTime);
72- estimateStr += " ";
73- estimateStr += new TimeComponent(area_.Span).ToString();
74- estimateStr += " ";
75- estimateStr += new TimeComponent(area_.ForcastMin).ToString();
76- estimateStr += " ";
77- estimateStr += new TimeComponent(area_.ActualMin).ToString();
78- estimateStr += " ";
79- estimateStr += new TimeComponent(area_.RemainMin).ToString();
80- //estimateStr += " ";
81- //estimateStr += area_.Indicator;
82- msgList.Add(estimateStr);
85+ msgList.Add(new EstTextSet(" " + area_.AreaStr + " "));
86+ //タイムエリアの初期情報を設定
87+ msgList.Add(new EstTextSet(getFiveLengthTimeStr(area_.StartTime) + "-" + getFiveLengthTimeStr(area_.EndTime) + " "));
88+ //改行
89+ msgList.Add(new EstTextSet(new TimeComponent(area_.Span).ToString() + " "));
90+
91+ //予測時間
92+ EstTextSet forcast;
93+ if (area_.Span < area_.ForcastMin)
94+ {
95+ forcast = new EstTextSet(new TimeComponent(area_.ForcastMin).ToString(), Color.LightPink);
96+ }
97+ else if (area_.Span > area_.ForcastMin)
98+ {
99+ forcast = new EstTextSet(new TimeComponent(area_.ForcastMin).ToString(), Color.LightBlue);
100+ }
101+ else
102+ {
103+ forcast = new EstTextSet(new TimeComponent(area_.ForcastMin).ToString());
104+ }
105+ msgList.Add(forcast);
106+ msgList.Add(new EstTextSet(" "));
107+ //実時間
108+ EstTextSet actual;
109+ if (area_.Span < area_.ActualMin)
110+ {
111+ actual = new EstTextSet(new TimeComponent(area_.ActualMin).ToString(), Color.LightPink);
112+ }
113+ else if (area_.Span > area_.ActualMin)
114+ {
115+ actual = new EstTextSet(new TimeComponent(area_.ActualMin).ToString(), Color.LightBlue);
116+ }
117+ else
118+ {
119+ actual = new EstTextSet(new TimeComponent(area_.ActualMin).ToString());
120+ }
121+ msgList.Add(actual);
122+ msgList.Add(new EstTextSet(" "));
123+
124+ //残り時間
125+ EstTextSet remain;
126+ if ((area_.RemainMin + area_.ActualMin) > area_.ForcastMin)
127+ {
128+ remain = new EstTextSet(new TimeComponent(area_.RemainMin).ToString(), Color.LightPink);
129+ }
130+ else if ((area_.RemainMin + area_.ActualMin) < area_.ForcastMin)
131+ {
132+ remain = new EstTextSet(new TimeComponent(area_.RemainMin).ToString(), Color.LightBlue);
133+ }
134+ else
135+ {
136+ remain = new EstTextSet(new TimeComponent(area_.RemainMin).ToString());
137+ }
138+ msgList.Add(remain);
139+ msgList.Add(new EstTextSet(" "));
140+ msgList.Add(new EstTextSet());
83141 }
84- msgList.Add(string.Empty);
142+ msgList.Add(new EstTextSet());
85143 //本日分だけ予想終了時刻を算出する
86144 if (isToday)
87145 {
88- msgList.Add("現在時刻 : " + TimeComponent.justNow().ToString());
89- msgList.Add("残り作業 : " + new TimeComponent(minuteRemains).ToString());
90- msgList.Add("予想終了時刻: " + TimeComponent.justNow().add(minuteRemains).ToString());
146+ msgList.Add(new EstTextSet("現在時刻 : " + TimeComponent.justNow().ToString()));
147+ msgList.Add(new EstTextSet());
148+ msgList.Add(new EstTextSet("残り作業 : " + new TimeComponent(minuteRemains).ToString()));
149+ msgList.Add(new EstTextSet());
150+ msgList.Add(new EstTextSet("予想終了時刻: " + TimeComponent.justNow().add(minuteRemains).ToString()));
151+ msgList.Add(new EstTextSet());
91152 //msgList.Add(string.Empty);
92153 }
93- form.showOnSubConsole(msgList);
154+ form.showOnEstConsole(msgList);
155+ return true;
156+
157+ }
158+ /// <summary>
159+ /// 向こう一週間の予実を計測してサブコンソールに出力します。
160+ /// </summary>
161+ /// <returns></returns>
162+ private bool getTotal()
163+ {
164+ List<EstTextSet> totalList = new List<EstTextSet>();
165+ List<TotalCountData> dataList = TotalViewAccessor.getObject.getTotalList();
166+ DateComponent today =SettingDataAccessor.getObject.getToday();
167+
168+ totalList.Add(new EstTextSet("1週間の予想と実績"));
169+ totalList.Add(new EstTextSet());
170+ //日 付 予 想 実 績
171+ //07/14(月) 08:00 09:15
172+ totalList.Add(new EstTextSet("日 付 予 想 実 績 "));
173+ totalList.Add(new EstTextSet());
174+
175+ foreach (TotalCountData data in dataList)
176+ {
177+ string wkStr = string.Empty;
178+ wkStr += data.Dodate.getDateString();
179+ wkStr += "(" + data.Dodate.getDowStr() + ")";
180+ wkStr += " ";
181+ wkStr += data.ForecastTime.ToString();
182+ wkStr += " ";
183+ wkStr += data.RealTime.ToString() + " ";
184+ //今日だった場合
185+ if (data.Dodate.calculateDateDiff(today) == 0)
186+ {
187+ totalList.Add(new EstTextSet(wkStr, Color.LightBlue));
188+ }
189+ else
190+ {
191+ totalList.Add(new EstTextSet(wkStr));
192+ }
193+ totalList.Add(new EstTextSet());
194+ }
195+
196+ form.showOnTotalConsole(totalList);
197+
198+
94199 return true;
95200 }
96201
--- a/main/command/CRUD/ListCommand.cs
+++ b/main/command/CRUD/ListCommand.cs
@@ -4,6 +4,7 @@ using com.andoutomo.kybernetes.data.accessor;
44 using com.andoutomo.kybernetes.data;
55 using com.andoutomo.kybernetes.data.DAO;
66 using com.andoutomo.kybernetes.view;
7+using com.andoutomo.kybernetes.command.reference;
78
89 namespace com.andoutomo.kybernetes.command
910 {
@@ -48,6 +49,11 @@ namespace com.andoutomo.kybernetes.command
4849 }
4950
5051 form.showOnPanel(dataList);
52+
53+ //追加コマンドを設定します。
54+ EstimateCommandArg arg = new EstimateCommandArg();
55+ EstimateCommand cmd = new EstimateCommand();
56+ setChainCommand(arg, cmd);
5157
5258 message = string.Empty;
5359 return true;
--- a/main/command/CRUD/LongListCommand.cs
+++ /dev/null
@@ -1,49 +0,0 @@
1-using System.Collections.Generic;
2-using com.andoutomo.kybernetes.data.accessor;
3-using com.andoutomo.kybernetes.data.DAO;
4-using com.andoutomo.kybernetes.command.reference;
5-using com.andoutomo.kybernetes.data;
6-
7-namespace com.andoutomo.kybernetes.command.CRUD
8-{
9- class LongListCommand : EstimateCommand
10- {
11- protected override bool execute()
12- {
13- EstimateCommandArg param = (EstimateCommandArg)argument;
14- DateComponent today = SettingDataAccessor.getObject.getToday();
15-
16- //タスクリストを取得
17- List<TaskData> taskList;
18- if (param.targetDate == null)
19- {
20- taskList = TaskDataAccessor.getObject.getToDayTaskList();
21- }
22- else
23- {
24- taskList = TaskDataAccessor.getObject.getDailyTaskList(param.targetDate);
25- }
26- //パネルに表示する
27- form.showOnPanel(taskList);
28-
29- //ベースクラスを呼び出し見積もりを表示する
30- return base.execute();
31-
32- }
33-
34- protected override string turnMessage()
35- {
36- return "";
37- }
38-
39- protected override string turnErrorMessage()
40- {
41- return base.DefaultErrorMessage;
42- }
43-
44- protected override string turnSplitErrorMessage()
45- {
46- return base.DefaultSplitErrorMessage;
47- }
48- }
49-}
--- a/main/command/CRUD/UpdateCommand.cs
+++ b/main/command/CRUD/UpdateCommand.cs
@@ -2,6 +2,7 @@
22 using System.Collections.Generic;
33 using com.andoutomo.kybernetes.data.DAO;
44 using com.andoutomo.kybernetes.data.accessor;
5+using System.Windows.Forms;
56
67 namespace com.andoutomo.kybernetes.command
78 {
@@ -20,7 +21,7 @@ namespace com.andoutomo.kybernetes.command
2021 if (param.changeDialog)
2122 {
2223 #region 実施事項
23- data.Contents = form.showInputBox("実施事項を入力してください。",data.Contents);
24+ data.Contents = form.showInputBox("実施事項を入力してください。",data.Contents,ImeMode.Hiragana);
2425 if (data.Contents == null || data.Contents == string.Empty)
2526 {
2627 message = "処理を中断しました。";
--- a/main/command/SYSTEM/ClsCommand.cs
+++ b/main/command/SYSTEM/ClsCommand.cs
@@ -6,6 +6,7 @@ namespace com.andoutomo.kybernetes.command.SYSTEM
66 protected override bool execute()
77 {
88 form.clearText();
9+
910 return true;
1011 }
1112
--- a/main/command/SYSTEM/HelpCommand.cs
+++ b/main/command/SYSTEM/HelpCommand.cs
@@ -30,7 +30,7 @@ namespace com.andoutomo.kybernetes.command
3030 resList.Add(" " + help.cmdStr + " " + help.cmdSummary);
3131 }
3232
33- form.showOnSubConsole(resList);
33+ form.addMultiText(resList);
3434
3535 break;
3636 case HelpCommandType.One:
@@ -51,7 +51,7 @@ namespace com.andoutomo.kybernetes.command
5151 resList2.Add(string.Empty);
5252 resList2.Add(data.cmdDetail);
5353
54- form.showOnSubConsole(resList2);
54+ form.addMultiText(resList2);
5555 }
5656 else
5757 {
--- a/main/command/SYSTEM/LinkCommand.cs
+++ b/main/command/SYSTEM/LinkCommand.cs
@@ -25,7 +25,7 @@ namespace com.andoutomo.kybernetes.command.SYSTEM
2525 {
2626 retList.Add(data.Name + " -> " + data.Val);
2727 }
28- form.showOnSubConsole(retList);
28+ form.addMultiText(retList);
2929 retStr = string.Empty;
3030 return true;
3131 }
--- a/main/command/reference/PwdCommand.cs
+++ b/main/command/reference/PwdCommand.cs
@@ -45,8 +45,8 @@ namespace com.andoutomo.kybernetes.command.reference
4545 }
4646
4747 }
48-
49- form.showOnSubConsole(retList);
48+
49+ form.addMultiText(retList);
5050
5151 return true;
5252 }
--- a/main/command/reference/ShowCommand.cs
+++ b/main/command/reference/ShowCommand.cs
@@ -75,7 +75,7 @@ namespace com.andoutomo.kybernetes.command.reference
7575 }
7676
7777
78- form.showOnSubConsole(resultList);
78+ form.addMultiText(resultList);
7979
8080 return true;
8181 }
--- a/main/command/reference/SimulateCommand.cs
+++ b/main/command/reference/SimulateCommand.cs
@@ -70,7 +70,7 @@ namespace com.andoutomo.kybernetes.command.reference
7070 retList.Add(string.Empty);
7171 retList.Add("終了予定時間 " + baseTime.ToString());
7272
73- form.showOnSubConsole(retList);
73+ form.addMultiText(retList);
7474
7575 return true;
7676 }
--- a/main/command/reference/SumCommand.cs
+++ b/main/command/reference/SumCommand.cs
@@ -36,7 +36,7 @@ namespace com.andoutomo.kybernetes.command.reference
3636 resultList.Add("予想時間:" + forcast.ToString() + " ( " + forcast.TotalMinute + " 分)");
3737 resultList.Add("実績時間:" + realTime.ToString() + " ( " + realTime.TotalMinute + " 分)");
3838
39- form.showOnSubConsole(resultList);
39+ form.addMultiText(resultList);
4040
4141 return true;
4242 }
Afficher sur ancien navigateur de dépôt.