<Compile Include="command\Control\ChnumCommandArg.cs" />\r
<Compile Include="command\Control\ClearCommand.cs" />\r
<Compile Include="command\Control\ClearCommandArg.cs" />\r
+ <Compile Include="command\Control\ClearCommentCommand.cs" />\r
+ <Compile Include="command\Control\ClearCommentCommandArg.cs" />\r
+ <Compile Include="command\Control\CommentCommand.cs" />\r
+ <Compile Include="command\Control\CommentCommandArg.cs" />\r
<Compile Include="command\Control\DelayCommand.cs" />\r
<Compile Include="command\Control\DelayCommandArg.cs" />\r
<Compile Include="command\Control\DuplicateCommand.cs" />\r
<Compile Include="command\reference\FindCommand.cs" />\r
<Compile Include="command\reference\FindCommandArg.cs" />\r
<Compile Include="command\reference\PwdCommand.cs" />\r
+ <Compile Include="command\reference\ShowCommand.cs" />\r
+ <Compile Include="command\reference\ShowCommandArg.cs" />\r
+ <Compile Include="command\reference\SimulateCommand.cs" />\r
+ <Compile Include="command\reference\SimulateCommandArg.cs" />\r
<Compile Include="command\reference\SumCommand.cs" />\r
<Compile Include="command\reference\SumCommandArg.cs" />\r
<Compile Include="command\SYSTEM\AllCategInner.cs" />\r
<Compile Include="control\KybernetesLogger.cs" />\r
<Compile Include="data\accessor\CategoryDataAccessor.cs" />\r
<Compile Include="data\accessor\CommandDataAccessor.cs" />\r
+ <Compile Include="data\accessor\CommentDataAccessor.cs" />\r
<Compile Include="data\accessor\LinkDataAccessor.cs" />\r
<Compile Include="data\accessor\SettingDataAccessor.cs" />\r
<Compile Include="data\accessor\TaskDataAccessor.cs" />\r
<Compile Include="data\accessor\TimeAreaDataAccessor.cs" />\r
- <Compile Include="data\Component\DateComponents.cs" />\r
+ <Compile Include="data\Component\DateComponent.cs" />\r
<Compile Include="data\Component\TimeComponent.cs" />\r
+ <Compile Include="data\connection\TaskDBConnection.cs" />\r
<Compile Include="data\connection\DBConnection.cs" />\r
+ <Compile Include="data\connection\SettingDBConnection.cs" />\r
<Compile Include="data\connection\SqlDictionary.Designer.cs">\r
<DependentUpon>SqlDictionary.resx</DependentUpon>\r
<AutoGen>True</AutoGen>\r
<DesignTime>True</DesignTime>\r
</Compile>\r
+ <Compile Include="data\connection\CommandSqlDictionary.Designer.cs">\r
+ <DependentUpon>CommandSqlDictionary.resx</DependentUpon>\r
+ <AutoGen>True</AutoGen>\r
+ <DesignTime>True</DesignTime>\r
+ </Compile>\r
<Compile Include="data\DAO\CategoryData.cs" />\r
<Compile Include="data\DAO\CommandData.cs" />\r
+ <Compile Include="data\DAO\CommentData.cs" />\r
<Compile Include="data\DAO\HelpData.cs" />\r
<Compile Include="data\DAO\SimpleDataBean.cs" />\r
<Compile Include="data\DAO\TaskData.cs" />\r
<Compile Include="view\CategorySetting.Designer.cs">\r
<DependentUpon>CategorySetting.cs</DependentUpon>\r
</Compile>\r
+ <Compile Include="view\CmdHistory.cs" />\r
<Compile Include="view\Credit.cs">\r
<SubType>Form</SubType>\r
</Compile>\r
<LastGenOutput>SqlDictionary.Designer.cs</LastGenOutput>\r
<SubType>Designer</SubType>\r
</EmbeddedResource>\r
+ <EmbeddedResource Include="data\connection\CommandSqlDictionary.resx">\r
+ <Generator>ResXFileCodeGenerator</Generator>\r
+ <LastGenOutput>CommandSqlDictionary.Designer.cs</LastGenOutput>\r
+ <SubType>Designer</SubType>\r
+ </EmbeddedResource>\r
<EmbeddedResource Include="Properties\Resources.resx">\r
<Generator>ResXFileCodeGenerator</Generator>\r
<LastGenOutput>Resources.Designer.cs</LastGenOutput>\r
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を \r
// 既定値にすることができます:\r
// [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("1.0.0.6")]\r
-[assembly: AssemblyFileVersion("1.0.0.6")]\r
+[assembly: AssemblyVersion("1.1.0.1")]\r
+[assembly: AssemblyFileVersion("1.1.0.1")]\r
private string message;\r
protected override bool execute()\r
{\r
- AddCommandArgs addArgs = (AddCommandArgs)base.args;\r
+ AddCommandArgs addArgs = (AddCommandArgs)base.argument;\r
TaskData data = addArgs.PreparedTaskData;\r
\r
if (data.Contents == null)\r
}\r
try\r
{\r
- data.DoDate = new data.DateComponents(dateStr);\r
+ data.DoDate = new data.DateComponent(dateStr);\r
}\r
catch (Exception e)\r
{\r
}\r
if (data.ForecastMin == 0)\r
{\r
- string wkFrcstMin = form.showInputBox("見積時間を分単位で入力してください。入力されない場合は0(予定外作業)とみなします。");\r
+ string wkFrcstMin = form.showInputBox("見積時間を分単位で入力してください。","0");\r
if (wkFrcstMin == null || wkFrcstMin == string.Empty)\r
{\r
wkFrcstMin = "0";\r
\r
if (taskAccessor.insertTask(data))\r
{\r
- message = "タスク「" + data.Contents + "」を追加しました。";\r
+ message = "タスクNo." + data.SortID + "「" + data.Contents + "」を追加しました。";\r
return true;\r
}\r
else\r
break;\r
case "D":\r
//日付\r
- if (optionData[1].Length == 4 || optionData.Length == 8)\r
+ if (optionData[1].Length == 4 || optionData[1].Length == 8)\r
{\r
- _data.DoDate = new DateComponents(optionData[1]);\r
+ _data.DoDate = new DateComponent(optionData[1]);\r
}\r
break;\r
case "C":\r
string message=string.Empty;\r
protected override bool execute()\r
{\r
- DeleteCommandArg param = (DeleteCommandArg)args;\r
+ DeleteCommandArg param = (DeleteCommandArg)argument;\r
\r
TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
targetCount = accessor.countDeleteTargetTask(param.targetIDFrom, param.targetIDTo);\r
if (YesNoDialog.show(targetCount + "件のタスクを削除します。よろしいですか?"))\r
{\r
accessor.deleteTask(param.targetIDFrom, param.targetIDTo);\r
+ CommentDataAccessor.getObject.deleteCommentWithTask();\r
return true;\r
}\r
else\r
{\r
protected override bool execute()\r
{\r
- ListCommandArg arguments = (ListCommandArg)base.args;\r
- DateComponents searchDate = arguments.SearchDate;\r
+ ListCommandArg arguments = (ListCommandArg)base.argument;\r
+ DateComponent searchDate = arguments.SearchDate;\r
\r
- DateComponents todayDate = SettingDataAccessor.getObject.getToday();\r
+ DateComponent todayDate = SettingDataAccessor.getObject.getToday();\r
TaskDataAccessor dataAccess = TaskDataAccessor.getObject;\r
List<TaskData> dataList;\r
if (arguments.SearchAll)\r
{\r
class ListCommandArg:CommandArg\r
{\r
- private DateComponents searchDateInner;\r
+ private DateComponent searchDateInner;\r
\r
\r
- internal DateComponents SearchDate\r
+ internal DateComponent SearchDate\r
{\r
get { return searchDateInner; }\r
}\r
{\r
SearchAll = false;\r
SearchRemain = false;\r
- searchDateInner = new DateComponents(spaceSplitData[1]);\r
+ searchDateInner = new DateComponent(spaceSplitData[1]);\r
}\r
\r
}\r
{\r
protected override bool execute()\r
{\r
- EstimateCommandArg param = (EstimateCommandArg)args;\r
- DateComponents today = SettingDataAccessor.getObject.getToday();\r
+ EstimateCommandArg param = (EstimateCommandArg)argument;\r
+ DateComponent today = SettingDataAccessor.getObject.getToday();\r
\r
//タスクリストを取得\r
List<TaskData> taskList;\r
string message;\r
protected override bool execute()\r
{\r
- UpdateCommandArg param = (UpdateCommandArg)args;\r
+ UpdateCommandArg param = (UpdateCommandArg)argument;\r
TaskData data = param.PreparedTaskData;\r
+ if (data == null)\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
if (param.changeDialog)\r
{\r
#region 実施事項\r
}\r
try\r
{\r
- data.DoDate = new data.DateComponents(dateStr);\r
+ data.DoDate = new data.DateComponent(dateStr);\r
}\r
catch (Exception e)\r
{\r
}\r
\r
TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
+ \r
+ //成功した場合のメッセージをここで作っておく\r
+ message = "タスクNo." + data.SortID + "を更新しました。";\r
return accessor.updateTask(data);\r
\r
}\r
\r
protected override string turnMessage()\r
{\r
- return "タスクを更新しました。";\r
+ return message;\r
}\r
\r
protected override string turnErrorMessage()\r
break;\r
case "D":\r
//日付\r
- if (optionData[1].Length == 4 || optionData.Length == 8)\r
+ if (optionData[1].Length == 4 || optionData[1].Length == 8)\r
{\r
- _data.DoDate = new DateComponents(optionData[1]);\r
+ _data.DoDate = new DateComponent(optionData[1]);\r
changeDialog = false;\r
}\r
break;\r
case "C":\r
//カテゴリ\r
- CategoryDataAccessor dataAccessor = CategoryDataAccessor.getObject;\r
- CategoryData categData = dataAccessor.getCategoryFromName(optionData[1]);\r
+ \r
+ CategoryData categData = CategoryDataAccessor.getObject.getCategoryFromName(optionData[1]);\r
if (categData != null)\r
{\r
_data.Category = optionData[1];\r
break;\r
default:\r
//なにもない場合はコンテンツ(最初の記載を是とする)\r
- if (_data.Contents == null || _data.Contents == string.Empty)\r
+ if (!string.IsNullOrEmpty(_data.Contents))\r
{\r
_data.Contents = optionData[0];\r
changeDialog = false;\r
using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
\r
namespace com.andoutomo.kybernetes.command.Control\r
{\r
ChAreaCommandArg param;\r
protected override bool execute()\r
{\r
- param = (ChAreaCommandArg)args;\r
+ param = (ChAreaCommandArg)argument;\r
+\r
+ if (!param.dataExists())\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
\r
return TaskDataAccessor.getObject.changeArea(param.sortID, param.nextTimeArea);\r
}\r
int next;\r
protected override bool execute()\r
{\r
- ChnumCommandArg param = (ChnumCommandArg)args;\r
+ ChnumCommandArg param = (ChnumCommandArg)argument;\r
before = param.sortID;\r
next = param.nextSortID;\r
TaskData _target = TaskDataAccessor.getObject.getTask(before);\r
+ if (_target == null)\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
return TaskDataAccessor.getObject.changeNumber(_target.TaskID, next);\r
}\r
\r
using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
\r
namespace com.andoutomo.kybernetes.command.Control\r
{\r
private int sortId;\r
protected override bool execute()\r
{\r
- ClearCommandArg param = (ClearCommandArg)args;\r
+ ClearCommandArg param = (ClearCommandArg)argument;\r
sortId = param.sortID;\r
\r
+ if (!param.dataExists())\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
+\r
return TaskDataAccessor.getObject.clearStartEnd(sortId);\r
}\r
\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+ class ClearCommentCommand:AbCommand\r
+ {\r
+ protected override bool execute()\r
+ {\r
+ ClearCommentCommandArg param = (ClearCommentCommandArg)argument;\r
+ if (param.delDate != null)\r
+ {\r
+ if (CommentDataAccessor.getObject.deleteDailyComment(param.delDate))\r
+ {\r
+ message = param.delDate.getDateString() + "のコメントを削除しました。";\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+ }\r
+ else if (param.SortID != 0)\r
+ {\r
+ TaskData taskData = TaskDataAccessor.getObject.getTask(param.SortID);\r
+ if (taskData != null)\r
+ {\r
+ if (CommentDataAccessor.getObject.deleteTaskComment(taskData.TaskID))\r
+ {\r
+ message = "タスクNo." + param.SortID + " のコメントを削除しました";\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+ }\r
+ private string message;\r
+ protected override string turnMessage()\r
+ {\r
+ return message;\r
+ }\r
+\r
+ protected override string turnErrorMessage()\r
+ {\r
+ return base.DefaultErrorMessage;\r
+ }\r
+\r
+ protected override string turnSplitErrorMessage()\r
+ {\r
+ return base.DefaultSplitErrorMessage;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+ class ClearCommentCommandArg:CommandArg\r
+ {\r
+ internal int SortID\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+ internal DateComponent delDate\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+\r
+ public void split(string arguments)\r
+ {\r
+ string[] splitData = arguments.Split(' ');\r
+\r
+ if (splitData[1].Contains(":"))\r
+ {\r
+ string[] dateSplitter = splitData[1].Split(':');\r
+ delDate = new DateComponent(dateSplitter[1]);\r
+ splitResult = true;\r
+ }\r
+ else\r
+ {\r
+ int wkSortID;\r
+ if (int.TryParse(splitData[1], out wkSortID))\r
+ {\r
+ SortID = wkSortID;\r
+ splitResult = true;\r
+ }\r
+ else\r
+ {\r
+ splitResult = false;\r
+ }\r
+ }\r
+ }\r
+ bool splitResult;\r
+ public bool getSplitResult()\r
+ {\r
+ return splitResult;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+using com.andoutomo.kybernetes.view;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+ class CommentCommand:AbCommand\r
+ {\r
+ private string message;\r
+ protected override bool execute()\r
+ {\r
+ CommentCommandArg param = (CommentCommandArg)argument;\r
+ CommentDataAccessor dataAccessor = CommentDataAccessor.getObject;\r
+ bool retVal = false;\r
+ \r
+ switch (param.mode)\r
+ {\r
+ case CommentMode.show:\r
+ List<CommentData> dataList = dataAccessor.getComment();\r
+ List<string> dataForConsole = new List<string>();\r
+ foreach (CommentData data in dataList)\r
+ {\r
+ dataForConsole.Add("------ " + data.CreateDateStr + " ------");\r
+ dataForConsole.Add(data.Comment);\r
+ }\r
+ form.addMultiText(dataForConsole);\r
+ \r
+ retVal = true;\r
+ message = string.Empty;\r
+\r
+ break;\r
+\r
+ case CommentMode.metaComment:\r
+ //コメントが数字の場合は、間違いかもしれないから一応聞く\r
+ int wkSortID;\r
+ if (int.TryParse(param.Comment, out wkSortID))\r
+ {\r
+ if (!YesNoDialog.show(param.Comment + "をコメントとして入力しますか?"))\r
+ {\r
+ message = "処理を中断しました。";\r
+ retVal = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ retVal = dataAccessor.insertMetaComment(param.Comment);\r
+\r
+ message = "全体コメントを追加しました。";\r
+ break;\r
+\r
+ case CommentMode.taskComment:\r
+ TaskData taskData =TaskDataAccessor.getObject.getTask(param.sortID);\r
+ if (null != taskData)\r
+ {\r
+ CommentData data = new CommentData();\r
+ data.TaskID = taskData.TaskID;\r
+ data.Comment = param.Comment;\r
+\r
+ retVal = dataAccessor.insertComment(data);\r
+ message = "タスクNo." + taskData.SortID + " にコメントを追加しました。";\r
+ }\r
+ //タスクが実在しない場合\r
+ else\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ retVal=false;\r
+ }\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return retVal;\r
+ }\r
+\r
+ protected override string turnMessage()\r
+ {\r
+ return message;\r
+ }\r
+\r
+ protected override string turnErrorMessage()\r
+ {\r
+ return base.DefaultErrorMessage;\r
+ }\r
+\r
+ protected override string turnSplitErrorMessage()\r
+ {\r
+ return base.DefaultSplitErrorMessage;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+ class CommentCommandArg:CommandArg\r
+ {\r
+ internal CommentMode mode\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+\r
+ internal int sortID\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+ internal string Comment\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+\r
+ public void split(string arguments)\r
+ {\r
+ string[] splitData = arguments.Split(' ');\r
+ if (splitData.Length < 2)\r
+ {\r
+ mode = CommentMode.show;\r
+ }\r
+ else if (splitData.Length == 2)\r
+ {\r
+ mode = CommentMode.metaComment;\r
+ Comment = splitData[1];\r
+ }\r
+ else\r
+ {\r
+ int wkSortID;\r
+ if (int.TryParse(splitData[1], out wkSortID))\r
+ {\r
+ sortID = wkSortID;\r
+ mode = CommentMode.taskComment;\r
+ for (int i = 2; i < splitData.Length; i++)\r
+ {\r
+ Comment += splitData[i] + " ";\r
+ }\r
+ }\r
+ else\r
+ {\r
+ mode = CommentMode.metaComment;\r
+ for (int i = 1; i < splitData.Length; i++)\r
+ {\r
+ Comment += splitData[i] + " ";\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ public bool getSplitResult()\r
+ {\r
+ return true;\r
+ }\r
+ }\r
+ internal enum CommentMode\r
+ {\r
+ show,\r
+ metaComment,\r
+ taskComment\r
+ }\r
+}\r
class DelayCommand:AbCommand\r
{\r
int taskID;\r
- DateComponents retDate;\r
+ DateComponent retDate;\r
\r
protected override bool execute()\r
{\r
- DelayCommandArg param = (DelayCommandArg)args;\r
+ DelayCommandArg param = (DelayCommandArg)argument;\r
taskID = param.sortID;\r
\r
if (param.nextDate == null)\r
{\r
TaskData data = TaskDataAccessor.getObject.getTask(param.sortID);\r
+ if (data == null)\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
retDate = data.DoDate;\r
\r
if (param.DateToSkip != int.MinValue)\r
{\r
class DelayCommandArg:StandardCommandArg\r
{\r
- internal DateComponents nextDate\r
+ internal DateComponent nextDate\r
{\r
get;\r
private set;\r
{\r
if (splitData[2].Contains("/"))\r
{\r
- nextDate = new DateComponents(splitData[2].Replace("/", ""));\r
+ nextDate = new DateComponent(splitData[2].Replace("/", ""));\r
}\r
else if (splitData[2].Length < 4)\r
{\r
}\r
else\r
{\r
- nextDate = new DateComponents(splitData[2]);\r
+ nextDate = new DateComponent(splitData[2]);\r
}\r
\r
isValid = true;\r
string message;\r
protected override bool execute()\r
{\r
- DuplicateCommandArg param = (DuplicateCommandArg)args;\r
+ DuplicateCommandArg param = (DuplicateCommandArg)argument;\r
\r
TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
// データを取得\r
TaskData data = accessor.getTask(param.sortID);\r
+ if (data == null)\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
// 次番号を取得\r
data.TaskID = accessor.getMaxTaskID();\r
data.SortID = accessor.getMaxSortID();\r
EndCommandArg param;\r
protected override bool execute()\r
{\r
- param = (EndCommandArg)args;\r
+ param = (EndCommandArg)argument;\r
\r
TaskData _newData = TaskDataAccessor.getObject.getTask(param.sortID);\r
+ if (_newData == null)\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
if (_newData.StartTime == null || _newData.StartTime.IsValid == false)\r
{\r
message = "このタスクは開始されていません。startコマンドで開始してから終了してください。";\r
RepeatCommandArg param;\r
protected override bool execute()\r
{\r
- param = (RepeatCommandArg)args;\r
+ param = (RepeatCommandArg)argument;\r
+\r
+ if (!param.dataExists())\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
return TaskDataAccessor.getObject.setRepeatTask(param.sortID, param.isRepeat);\r
}\r
\r
{\r
TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
\r
- param = (StartCommandArg)args;\r
+ param = (StartCommandArg)argument;\r
if (param.AutoMode)\r
{\r
TaskData target = accessor.getTask(param.sortID);\r
}\r
else\r
{\r
- message = "指定されたタスクは存在しません。確認後再設定してください。";\r
+ base.errorType = ErrorType.DataNotFound;\r
return false;\r
}\r
}\r
{\r
protected override bool execute()\r
{\r
- param = (DateCommandArg)args;\r
+ param = (DateCommandArg)argument;\r
return SettingDataAccessor.getObject.setToday(param.TodayDateComp);\r
\r
}\r
string dateString = spaceSplitData[1];\r
if (dateString.ToLower() == "today")\r
{\r
- TodayDateComp = new DateComponents(DateTime.Today.ToString("yyyyMMdd"));\r
+ TodayDateComp = new DateComponent(DateTime.Today.ToString("yyyyMMdd"));\r
splitResult = true;\r
}\r
else\r
{\r
try\r
{\r
- TodayDateComp = new data.DateComponents(dateString);\r
+ TodayDateComp = new data.DateComponent(dateString);\r
splitResult = true;\r
}\r
catch (Exception e)\r
}\r
}\r
\r
- internal DateComponents TodayDateComp\r
+ internal DateComponent TodayDateComp\r
{\r
get;\r
private set;\r
using System;\r
using System.IO;\r
using com.andoutomo.kybernetes.control;\r
+using com.andoutomo.kybernetes.data.connection;\r
\r
namespace com.andoutomo.kybernetes.command.SYSTEM\r
{\r
{\r
protected override bool execute()\r
{\r
- string maindb = System.AppDomain.CurrentDomain.BaseDirectory + "asurada.db";\r
+ string maindb = System.AppDomain.CurrentDomain.BaseDirectory + TaskDBConnection.Connection.targetDbFile();\r
string filePath = form.invokeDmpDialog();\r
try\r
{\r
private string Message;\r
protected override bool execute()\r
{\r
- EchoCommandArg param = (EchoCommandArg)args;\r
+ EchoCommandArg param = (EchoCommandArg)argument;\r
if (param.DoIt)\r
{\r
form.Echo = param.Echo_setting;\r
\r
protected override bool execute()\r
{\r
- HelpCommandArg thisArg = (HelpCommandArg)base.args;\r
+ HelpCommandArg thisArg = (HelpCommandArg)base.argument;\r
CommandDataAccessor accessor = CommandDataAccessor.getObject;\r
switch (thisArg.SubCommandType)\r
{\r
\r
protected override bool execute()\r
{\r
- param = (LinkCommandArg)args;\r
+ param = (LinkCommandArg)argument;\r
LinkDataAccessor accessor = LinkDataAccessor.getObject;\r
bool hasLink =accessor.hasLink(param.ShortcutStr);\r
bool retVal=false;\r
private string message;\r
protected override bool execute()\r
{\r
- param = (LogModeCommandArg)args;\r
+ param = (LogModeCommandArg)argument;\r
SettingDataAccessor accessor = SettingDataAccessor.getObject;\r
\r
if (param.showMode)\r
protected override bool execute()\r
{\r
\r
- DateComponents todaydate = SettingDataAccessor.getObject.getToday();\r
+ DateComponent todaydate = SettingDataAccessor.getObject.getToday();\r
\r
todaystr = todaydate.getDateString("yyyy / MM / dd") + "(" + todaydate.getDowStr() + ")";\r
\r
{\r
protected override bool execute()\r
{\r
- EstimateCommandArg param = (EstimateCommandArg)args;\r
+ EstimateCommandArg param = (EstimateCommandArg)argument;\r
string targetDate=string.Empty;\r
\r
//タスクリストを取得\r
{\r
class EstimateCommandArg:CommandArg\r
{\r
- internal DateComponents targetDate\r
+ internal DateComponent targetDate\r
{\r
get;\r
private set;\r
}\r
else\r
{\r
- targetDate = new DateComponents(splitData[1]);\r
+ targetDate = new DateComponent(splitData[1]);\r
}\r
}\r
\r
{\r
protected override bool execute()\r
{\r
- FindCommandArg param = (FindCommandArg)args;\r
+ FindCommandArg param = (FindCommandArg)argument;\r
\r
- DateComponents todayDate = SettingDataAccessor.getObject.getToday();\r
+ DateComponent todayDate = SettingDataAccessor.getObject.getToday();\r
List<TaskData> dataList = TaskDataAccessor.getObject.findTask(param.searchWord);\r
\r
\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.command.template;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+\r
+namespace com.andoutomo.kybernetes.command.reference\r
+{\r
+ class ShowCommand:AbCommand\r
+ {\r
+ protected override bool execute()\r
+ {\r
+ StandardCommandArg param = (StandardCommandArg)argument;\r
+ int sortID = param.sortID;\r
+\r
+ TaskData data = TaskDataAccessor.getObject.getTask(sortID);\r
+ if (data == null)\r
+ {\r
+ base.errorType = ErrorType.DataNotFound;\r
+ return false;\r
+ }\r
+ List<string> resultList = new List<string>();\r
+\r
+ resultList.Add(data.SortID + " " + data.Contents + " (" + data.Category + ")");\r
+ string wkForecastReal = string.Empty;\r
+ wkForecastReal += "予測 " + data.ForecastMin + "分";\r
+ if (data.RealMin > 0)\r
+ {\r
+ wkForecastReal += " 実績 " + data.RealMin + "分";\r
+ wkForecastReal += " (差異 " + (data.RealMin - data.ForecastMin) + "分)";\r
+ }\r
+ resultList.Add(wkForecastReal);\r
+ string wkStartEnd = string.Empty;\r
+\r
+ if (data.StartTime.IsValid)\r
+ {\r
+ wkStartEnd += data.StartTime.ToString() + "開始";\r
+ }\r
+ if (data.EndTime.IsValid)\r
+ {\r
+ wkStartEnd += " " + data.EndTime.ToString() + "終了";\r
+ }\r
+ if (!string.IsNullOrEmpty(wkStartEnd))\r
+ {\r
+ resultList.Add(wkStartEnd);\r
+ }\r
+\r
+ //Comment\r
+ List<CommentData> comments = CommentDataAccessor.getObject.getComment(data.TaskID);\r
+ foreach (CommentData com in comments)\r
+ {\r
+ resultList.Add("------ " + com.CreateDateStr + " ------");\r
+ resultList.Add(com.Comment);\r
+ }\r
+\r
+\r
+ form.addMultiText(resultList);\r
+\r
+ return true;\r
+ }\r
+\r
+ protected override string turnMessage()\r
+ {\r
+ return string.Empty;\r
+ }\r
+\r
+ protected override string turnErrorMessage()\r
+ {\r
+ return base.DefaultErrorMessage;\r
+ }\r
+\r
+ protected override string turnSplitErrorMessage()\r
+ {\r
+ return base.DefaultSplitErrorMessage;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.command.template;\r
+\r
+namespace com.andoutomo.kybernetes.command.reference\r
+{\r
+ class ShowCommandArg:StandardCommandArg\r
+ {\r
+\r
+ protected override void split()\r
+ {\r
+ return;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+\r
+namespace com.andoutomo.kybernetes.command.reference\r
+{\r
+ class SimulateCommand:AbCommand\r
+ {\r
+ string message;\r
+ protected override bool execute()\r
+ {\r
+ SimulateCommandArg param = (SimulateCommandArg)argument;\r
+ DateComponent searchDate = param.targetDate;\r
+\r
+ DateComponent todayDate = SettingDataAccessor.getObject.getToday();\r
+ TaskDataAccessor dataAccess = TaskDataAccessor.getObject;\r
+ List<TaskData> dataList;\r
+ List<string> retList = new List<string>();\r
+\r
+ if (searchDate != null)\r
+ {\r
+ dataList = dataAccess.getDailyTaskList(searchDate);\r
+ }\r
+ else\r
+ {\r
+ dataList = dataAccess.getToDayTaskList();\r
+ }\r
+ if (dataList.Count == 0)\r
+ {\r
+ message = "対象タスクがありません。";\r
+ return false;\r
+ }\r
+ TimeComponent baseTime = TimeComponent.justNow();\r
+ \r
+ retList.Add("現在の時刻 " + baseTime.ToString());\r
+ retList.Add(string.Empty);\r
+ bool alreadySetFlg = false;\r
+ foreach (TaskData data in dataList)\r
+ {\r
+ if (data.isComplete)\r
+ {\r
+ continue;\r
+ }\r
+ else if (data.StartTime.IsValid)\r
+ {\r
+ //実行中のタスクを開始時間として取得していない場合\r
+ if (alreadySetFlg)\r
+ {\r
+ continue;\r
+ }\r
+ //既に取得している場合は、二重取得をしない。\r
+ else\r
+ {\r
+ baseTime = data.StartTime;\r
+ alreadySetFlg = true;\r
+ }\r
+ }\r
+\r
+ string wkStartTime = baseTime.ToString();\r
+ baseTime.add(data.ForecastMin);\r
+ string wkEndTime = baseTime.ToString();\r
+\r
+ retList.Add(" " + data.SortID + " " + wkStartTime + " ~ " + wkEndTime + " " + data.Contents);\r
+\r
+ }\r
+ retList.Add(string.Empty);\r
+ retList.Add("終了予定時間 " + baseTime.ToString());\r
+\r
+ form.addMultiText(retList);\r
+\r
+ return true;\r
+ }\r
+\r
+ protected override string turnMessage()\r
+ {\r
+ return string.Empty;\r
+ }\r
+\r
+ protected override string turnErrorMessage()\r
+ {\r
+ return string.IsNullOrEmpty(message) ? base.DefaultErrorMessage : message;\r
+ }\r
+\r
+ protected override string turnSplitErrorMessage()\r
+ {\r
+ return base.DefaultSplitErrorMessage;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data;\r
+\r
+namespace com.andoutomo.kybernetes.command.reference\r
+{\r
+ class SimulateCommandArg:CommandArg\r
+ {\r
+ internal DateComponent targetDate\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+ public void split(string arguments)\r
+ {\r
+\r
+ string[] splitData = arguments.Split(' ');\r
+ if (splitData.Length == 1)\r
+ {\r
+ targetDate = null;\r
+ }\r
+ else\r
+ {\r
+ targetDate = new DateComponent(splitData[1]);\r
+ }\r
+ }\r
+\r
+ public bool getSplitResult()\r
+ {\r
+ return true;\r
+ }\r
+ }\r
+}\r
{\r
protected override bool execute()\r
{\r
- SumCommandArg param = (SumCommandArg)args;\r
+ SumCommandArg param = (SumCommandArg)argument;\r
\r
List<int> targetList = param.targetData;\r
-\r
- TimeComponent forcast = new TimeComponent(0,0);\r
- TimeComponent realTime = new TimeComponent(0, 0);\r
+ int wkForcast = 0;\r
+ int wkReal = 0;\r
\r
foreach (int sortID in targetList)\r
{\r
TaskData data = TaskDataAccessor.getObject.getTask(sortID);\r
- forcast.add(data.ForecastMin);\r
- realTime.add(data.RealMin);\r
-\r
+ if (data != null)\r
+ {\r
+ wkForcast += data.ForecastMin;\r
+ wkReal += data.RealMin;\r
+ }\r
}\r
-\r
+ TimeComponent forcast = new TimeComponent(wkForcast);\r
+ TimeComponent realTime = new TimeComponent(wkReal);\r
\r
\r
List<string> resultList = new List<string>();\r
\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
namespace com.andoutomo.kybernetes.command.template\r
{\r
abstract class StandardCommandArg:CommandArg\r
{\r
return isValid;\r
}\r
+ /// <summary>\r
+ /// 対象データの存在を確認します。\r
+ /// </summary>\r
+ /// <returns></returns>\r
+ public bool dataExists()\r
+ {\r
+ return (TaskDataAccessor.getObject.getTask(sortID) != null);\r
+ }\r
}\r
}\r
protected abstract string turnSplitErrorMessage();\r
\r
protected BaseForm form;\r
- protected CommandArg args;\r
+ protected CommandArg argument;\r
\r
\r
/// <summary>\r
return false;\r
}\r
\r
- this.args = _args;\r
+ this.argument = _args;\r
this.form = _form;\r
\r
if (execute())\r
{\r
return message;\r
}\r
+\r
+ protected ErrorType errorType\r
+ {\r
+ private get;\r
+ set;\r
+ }\r
+\r
protected string DefaultErrorMessage\r
{\r
- get { return "予期せぬエラーが発生いたしました。"; }\r
+ get\r
+ {\r
+ string errorMessage;\r
+ switch(errorType){\r
+ case ErrorType.DataNotFound:\r
+ errorMessage = "対象データが見つかりません。";\r
+ break;\r
+ case ErrorType.Unexpected:\r
+ default:\r
+ errorMessage = "予期せぬエラーが発生いたしました。";\r
+ break;\r
+ }\r
+ return errorMessage;\r
+ \r
+ }\r
}\r
protected string DefaultSplitErrorMessage\r
{\r
}\r
\r
}\r
+ internal enum ErrorType\r
+ {\r
+ Unexpected,\r
+ DataNotFound,\r
+ }\r
}\r
\r
private KybernetesLogger()\r
{\r
- logpath = System.AppDomain.CurrentDomain.BaseDirectory + "asurada.log";\r
+ logpath = System.AppDomain.CurrentDomain.BaseDirectory + "kybernetes.log";\r
}\r
/// <summary>\r
/// ログ出力オブジェクト\r
--- /dev/null
+using System;\r
+using com.andoutomo.kybernetes.control;\r
+\r
+namespace com.andoutomo.kybernetes.data\r
+{\r
+ internal class DateComponent\r
+ {\r
+ private DateTime innerDate;\r
+\r
+ internal DateComponent(int year, int month, int day)\r
+ {\r
+ innerDate = new DateTime(year, month, day);\r
+ }\r
+ internal DateComponent(int month, int day)\r
+ {\r
+ innerDate = new DateTime(DateTime.Today.Year, month, day);\r
+ }\r
+ /// <summary>\r
+ /// スペース区切りで日付と時刻を分け、日付のみさらにスプリッタで分ける。\r
+ /// SQLite向けコンストラクタ\r
+ /// </summary>\r
+ /// <param name="dateStr"></param>\r
+ /// <param name="separater"></param>\r
+ internal DateComponent(string dateStr,char separater)\r
+ {\r
+ string[] wkData1 = dateStr.Split(' ');\r
+ string[] wkData2 = wkData1[0].Split(separater);\r
+ innerDate = new DateTime(int.Parse(wkData2[0]), int.Parse(wkData2[1]), int.Parse(wkData2[2]));\r
+ }\r
+ /// <summary>\r
+ /// yyyyMMdd方式か、MMdd方式で表記された文字列から日付コンポーネントを作成する\r
+ /// </summary>\r
+ /// <param name="dateStr"></param>\r
+ internal DateComponent(string dateStr)\r
+ {\r
+ try\r
+ {\r
+ if (dateStr.Length == 8)\r
+ {\r
+ string yearStr = dateStr.Substring(0, 4);\r
+ string monthStr = dateStr.Substring(4, 2);\r
+ string dayStr = dateStr.Substring(6, 2);\r
+ innerDate = new DateTime(int.Parse(yearStr), int.Parse(monthStr), int.Parse(dayStr));\r
+ }\r
+ else if (dateStr.Length == 4)\r
+ {\r
+ string monthStr = dateStr.Substring(0, 2);\r
+ string dayStr = dateStr.Substring(2, 2);\r
+ innerDate = new DateTime(DateTime.Today.Year, int.Parse(monthStr), int.Parse(dayStr));\r
+\r
+ }\r
+ else\r
+ {\r
+ throw new KybernetesApplicationException("日付への変換ができません:" + dateStr);\r
+ }\r
+ }\r
+ catch (Exception e)\r
+ {\r
+ throw new KybernetesApplicationException(e);\r
+ }\r
+ }\r
+\r
+ internal DateComponent(DateTime dateTime)\r
+ {\r
+ innerDate = dateTime;\r
+ }\r
+\r
+ internal void addDate(int dateToAdd)\r
+ {\r
+ innerDate = innerDate.AddDays(dateToAdd);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 日付文字列を出力(デフォルト)\r
+ /// </summary>\r
+ /// <returns></returns>\r
+ internal string getDateString()\r
+ {\r
+ return innerDate.ToString("MM/dd");\r
+ }\r
+ internal string getDateString(string format)\r
+ {\r
+ return innerDate.ToString(format);\r
+ }\r
+ /// <summary>\r
+ /// 曜日を出力します。\r
+ /// </summary>\r
+ /// <returns></returns>\r
+ internal string getDowStr()\r
+ {\r
+ switch (innerDate.DayOfWeek){\r
+ case DayOfWeek.Monday:\r
+ return "月";\r
+ case DayOfWeek.Tuesday:\r
+ return "火";\r
+ case DayOfWeek.Wednesday:\r
+ return "水";\r
+ case DayOfWeek.Thursday:\r
+ return "木";\r
+ case DayOfWeek.Friday:\r
+ return "金";\r
+ case DayOfWeek.Saturday:\r
+ return "土";\r
+ case DayOfWeek.Sunday:\r
+ return "日";\r
+\r
+ default:\r
+ return "";\r
+ }\r
+ }\r
+ /// <summary>\r
+ /// 日数差を計算します。\r
+ /// </summary>\r
+ /// <param name="target"></param>\r
+ /// <returns></returns>\r
+ internal int calculateDateDiff(DateComponent target)\r
+ {\r
+ TimeSpan thisDateLange = innerDate.Subtract(target.innerDate);\r
+ return thisDateLange.Days;\r
+ }\r
+ }\r
+}\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.data.DAO\r
+{\r
+ class CommentData\r
+ {\r
+ internal int CommentID\r
+ {\r
+ get;\r
+ set;\r
+ }\r
+ internal int TaskID\r
+ {\r
+ get;\r
+ set;\r
+ }\r
+ internal DateTime CreateDate\r
+ {\r
+ get;\r
+ set;\r
+ }\r
+ internal string CreateDateStr\r
+ {\r
+ get\r
+ {\r
+ return CreateDate.ToString("yyyy/MM/dd HH:mm");\r
+ }\r
+ }\r
+ internal string Comment\r
+ {\r
+ get;\r
+ set;\r
+ }\r
+ }\r
+}\r
{\r
private int taskid;\r
private int sortid;\r
- private DateComponents doDate;\r
+ private DateComponent doDate;\r
private string timeArea;\r
private string category;\r
private string contents;\r
private int isRepeat;\r
private int bgColor;\r
private int frColor;\r
- private DateComponents _today;\r
+ private DateComponent _today;\r
+ private int hasComment;\r
\r
private int categID;\r
\r
get { return sortid; }\r
set { this.sortid = value; }\r
}\r
- internal DateComponents DoDate\r
+ internal DateComponent DoDate\r
{\r
get { return doDate; }\r
set { this.doDate = value; }\r
get { return frColor; }\r
set { this.frColor = value; }\r
}\r
- internal DateComponents Today\r
+ internal DateComponent Today\r
{\r
private get { return _today; }\r
set { this._today = value; }\r
return builder.ToString(); \r
}\r
}\r
+\r
+ internal int HasComment\r
+ {\r
+ get { return hasComment; }\r
+ set { this.hasComment = value; }\r
+ }\r
}\r
}\r
CategoryData result = null;\r
List<object> list = new List<object>();\r
list.Add(categName);\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getCategoryFromCategName, list,\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getCategoryFromCategName, list,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows != false)\r
CategoryData result = null;\r
List<object> list = new List<object>();\r
list.Add(id);\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getCategoryFromCategId, list,\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getCategoryFromCategId, list,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows != false)\r
internal List<CategoryData> getAllCategory()\r
{\r
List<CategoryData> result = new List<CategoryData>();\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getALLCategory, \r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getALLCategory, \r
(SQLiteDataReader reader) =>\r
{\r
while (reader.Read())\r
CommandData result = null;\r
List<object> list = new List<object>();\r
list.Add(commandStr);\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getCommand, list,\r
+ SettingDBConnection.Connection.selectData(CommandSqlDictionary.getCommand, list,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows != false)\r
internal List<HelpData> getAllHelp()\r
{\r
List<HelpData> allHelp = new List<HelpData>();\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.HELPALL,new List<object>(),\r
+ SettingDBConnection.Connection.selectData(CommandSqlDictionary.HELPALL, new List<object>(),\r
(SQLiteDataReader reader)=>{\r
while (reader.Read())\r
{\r
List<object> parameters = new List<object>();\r
parameters.Add(cmdStr);\r
HelpData retVal =null;\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getHelp, parameters,\r
+ SettingDBConnection.Connection.selectData(CommandSqlDictionary.getHelp, parameters,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows)\r
parameters.Add(cmdStr);\r
string retStr = string.Empty;\r
\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getLink, parameters,\r
+ SettingDBConnection.Connection.selectData(CommandSqlDictionary.getLink, parameters,\r
(SQLiteDataReader reader) =>\r
{\r
while (reader.Read())\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+using com.andoutomo.kybernetes.data.connection;\r
+using System.Data.SQLite;\r
+\r
+namespace com.andoutomo.kybernetes.data.accessor\r
+{\r
+ class CommentDataAccessor\r
+ {\r
+ #region singleton\r
+ private static CommentDataAccessor accessor;\r
+ private CommentDataAccessor()\r
+ {\r
+ }\r
+ internal static CommentDataAccessor getObject\r
+ {\r
+ get\r
+ {\r
+ if (accessor == null)\r
+ {\r
+ accessor = new CommentDataAccessor();\r
+ }\r
+ return accessor;\r
+ }\r
+ }\r
+ #endregion\r
+\r
+ private List<CommentData> getCommentInner(string sql,List<object> paramList)\r
+ {\r
+ List<CommentData> result = new List<CommentData>();\r
+ \r
+ \r
+\r
+ TaskDBConnection.Connection.selectData(sql, paramList,\r
+ (SQLiteDataReader reader) =>\r
+ {\r
+ while (reader.Read())\r
+ {\r
+ CommentData data = new CommentData();\r
+ data.CommentID = Convert.ToInt32(reader["ID"].ToString());\r
+ if (string.IsNullOrEmpty(reader["TASKID"].ToString()))\r
+ {\r
+ data.TaskID = 0; \r
+ }\r
+ else\r
+ {\r
+ data.TaskID = Convert.ToInt32(reader["TASKID"].ToString());\r
+ }\r
+ \r
+ data.CreateDate = Convert.ToDateTime(reader["CREATETIME"].ToString());\r
+ data.Comment = reader["COMMENT"].ToString();\r
+\r
+ result.Add(data);\r
+ }\r
+ });\r
+ return result;\r
+ }\r
+\r
+ /// <summary>\r
+ /// 対象IDに紐づくコメントを抽出する\r
+ /// </summary>\r
+ /// <param name="id"></param>\r
+ /// <returns></returns>\r
+ internal List<CommentData> getComment(int id)\r
+ {\r
+ List<object> paramList = new List<object>() { id };\r
+ return getCommentInner(SqlDictionary.getComments,paramList);\r
+ }\r
+ /// <summary>\r
+ /// メタコメントを抽出する.\r
+ /// システム日付と一致するもののみ抽出する。\r
+ /// </summary>\r
+ /// <returns></returns>\r
+ internal List<CommentData> getComment()\r
+ {\r
+ return getCommentInner(SqlDictionary.getMetaComment, new List<object>());\r
+ }\r
+\r
+ /// <summary>\r
+ /// コメントを入力する\r
+ /// </summary>\r
+ /// <param name="data"></param>\r
+ /// <returns></returns>\r
+ internal bool insertComment(CommentData data)\r
+ {\r
+ List<object> paramList = new List<object>();\r
+ paramList.Add(data.TaskID);\r
+ paramList.Add(data.Comment);\r
+\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.insertComment, paramList);\r
+ }\r
+ /// <summary>\r
+ /// メタコメントを入力する\r
+ /// </summary>\r
+ /// <param name="comment"></param>\r
+ /// <returns></returns>\r
+ internal bool insertMetaComment(string comment)\r
+ {\r
+ List<object> paramList = new List<object>() { comment };\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.insertMetaComment, paramList);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 紐付きを失ったコメントを全削除します。\r
+ /// </summary>\r
+ /// <returns></returns>\r
+ internal bool deleteCommentWithTask()\r
+ {\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.clearZombieComment);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 日付単位のメタコメントを削除します。\r
+ /// </summary>\r
+ /// <param name="date"></param>\r
+ /// <returns></returns>\r
+ internal bool deleteDailyComment(DateComponent date)\r
+ {\r
+ List<object> paramList = new List<object>() { date.getDateString("yyyy-MM-dd") };\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.clearMetaComment,paramList);\r
+ }\r
+ /// <summary>\r
+ /// タスク単位でコメントを削除します。\r
+ /// </summary>\r
+ /// <param name="taskID"></param>\r
+ /// <returns></returns>\r
+ internal bool deleteTaskComment(int taskID)\r
+ {\r
+ List<object> paramList = new List<object>() { taskID };\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.clearTaskComment, paramList);\r
+ }\r
+ }\r
+}\r
paramList.Add(linkCmd);\r
paramList.Add(BaseCmd);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.insertLink, paramList);\r
+ return SettingDBConnection.Connection.updateData(CommandSqlDictionary.insertLink, paramList);\r
}\r
internal bool removeLink(string linkCmd)\r
{\r
List<object> paramList = new List<object>();\r
paramList.Add(linkCmd);\r
- \r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.removeLink, paramList);\r
+\r
+ return SettingDBConnection.Connection.updateData(CommandSqlDictionary.removeLink, paramList);\r
\r
}\r
internal bool hasLink(string linkCmd)\r
List<object> paramList = new List<object>();\r
paramList.Add(linkCmd);\r
bool wkRetVal = false;\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.hasLink, paramList, \r
+ SettingDBConnection.Connection.selectData(CommandSqlDictionary.hasLink, paramList, \r
(SQLiteDataReader reader) => \r
{\r
if (reader.HasRows)\r
internal List<SimpleDataBean> getAllLink()\r
{\r
List<SimpleDataBean> result = new List<SimpleDataBean>();\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getAllLink, \r
+ SettingDBConnection.Connection.selectData(CommandSqlDictionary.getAllLink, \r
(SQLiteDataReader reader) =>\r
{\r
while (reader.Read())\r
}\r
}\r
\r
- internal DateComponents getToday()\r
+ internal DateComponent getToday()\r
{\r
- DateComponents todayData = new DateComponents(DateTime.Now);\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getToday, (SQLiteDataReader reader) =>\r
+ DateComponent todayData = new DateComponent(DateTime.Now);\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getToday, (SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows)\r
{\r
reader.Read();\r
- todayData = new DateComponents(reader["TODAY"].ToString(), '/');\r
+ todayData = new DateComponent(reader["TODAY"].ToString(), '/');\r
}\r
});\r
\r
return todayData;\r
}\r
- internal bool setToday(DateComponents dateComp)\r
+ internal bool setToday(DateComponent dateComp)\r
{\r
List<object> arg = new List<object>();\r
arg.Add(dateComp.getDateString("yyyy-MM-dd"));\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.updateToday,arg);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.updateToday, arg);\r
}\r
\r
internal LogMode getLogMode()\r
{\r
LogMode retVal=LogMode.Error;\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getLogMode,\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getLogMode,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows)\r
/// </summary>\r
internal bool changeLogModeToTrace()\r
{\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.changeTraceMode);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.changeTraceMode);\r
}\r
/// <summary>\r
/// ログモードを通常モードに切り替えます。\r
/// </summary>\r
internal bool changeLogModeToError()\r
{\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.changeErrorMode);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.changeErrorMode);\r
}\r
/// <summary>\r
/// ログモードをデバッグに切り替えます。\r
/// </summary>\r
internal bool changeLogModeToDebug()\r
{\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.changeDebugMode);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.changeDebugMode);\r
}\r
/// <summary>\r
/// タイムエリア初期値を取得します。\r
internal string getDefaultTimeArea()\r
{\r
string retStr = string.Empty;\r
- AsuradaDBConnection.getObject.selectData("SELECT DEFAULTTIMEAREA FROM TBL_SETTING", \r
+ TaskDBConnection.Connection.selectData("SELECT DEFAULTTIMEAREA FROM TBL_SETTING", \r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows)\r
/// </summary>\r
/// <param name="date"></param>\r
/// <returns></returns>\r
- internal List<TaskData> getDailyTaskList(DateComponents date)\r
+ internal List<TaskData> getDailyTaskList(DateComponent date)\r
{\r
List<object> arg = new List<object>();\r
arg.Add(date.getDateString("yyyy-MM-dd"));\r
{\r
List<object> args = new List<object>();\r
args.Add(sortId);\r
- TaskData data = new TaskData();\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getOneTask, args,\r
+ TaskData data = null;\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getOneTask, args,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows)\r
{\r
+ data = new TaskData();\r
reader.Read();\r
data.TaskID = Convert.ToInt32(reader["TASKID"].ToString());\r
data.SortID = Convert.ToInt32(reader["SORTID"].ToString());\r
- data.DoDate = new DateComponents(reader["DODATE"].ToString(), '/');\r
+ data.DoDate = new DateComponent(reader["DODATE"].ToString(), '/');\r
data.TimeArea = reader["TIMEAREA"].ToString();\r
data.CategID = Convert.ToInt32(reader["CATEGID"].ToString());\r
data.Category = reader["CATEGORY"].ToString();\r
data.StartTime = new TimeComponent(reader["STARTTIME"].ToString());\r
data.EndTime = new TimeComponent(reader["ENDTIME"].ToString());\r
data.IsRepeat = Convert.ToInt32(reader["REPEATFLG"].ToString());\r
+ \r
}\r
});\r
return data;\r
private List<TaskData> getTaskList(string sql,List<object> args)\r
{\r
List<TaskData> resultList = new List<TaskData>();\r
- AsuradaDBConnection.getObject.selectData(sql, args,\r
+ TaskDBConnection.Connection.selectData(sql, args,\r
(SQLiteDataReader reader) =>\r
{\r
while (reader.Read())\r
TaskData data = new TaskData();\r
data.TaskID = Convert.ToInt32(reader["TASKID"].ToString());\r
data.SortID = Convert.ToInt32(reader["SORTID"].ToString());\r
- data.DoDate = new DateComponents(reader["DODATE"].ToString(),'/');\r
+ data.DoDate = new DateComponent(reader["DODATE"].ToString(),'/');\r
data.TimeArea = reader["TIMEAREA"].ToString();\r
data.Category = reader["CATEGORY"].ToString();\r
data.Contents = reader["CONTENTS"].ToString();\r
data.StartTime = new TimeComponent(reader["STARTTIME"].ToString());\r
data.EndTime = new TimeComponent(reader["ENDTIME"].ToString());\r
data.IsRepeat = Convert.ToInt32(reader["REPEATFLG"].ToString());\r
-\r
+ data.HasComment = Convert.ToInt32(reader["HASCOMMENT"].ToString());\r
if (data.Category != string.Empty)\r
{\r
data.BgColor = Convert.ToInt32(reader["BGCOLOR"].ToString());\r
internal int getMaxTaskID()\r
{\r
int maxID =0;\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getMaxIDofTask, \r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getMaxIDofTask, \r
(SQLiteDataReader reader) =>\r
{\r
\r
internal int getMaxSortID()\r
{\r
int maxSortID = 0;\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getMaxSortID, \r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getMaxSortID, \r
(SQLiteDataReader reader) => \r
{\r
if (reader.HasRows)\r
/// </summary>\r
/// <param name="date"></param>\r
/// <returns></returns>\r
- internal TimeComponent getNextStartTime(DateComponents date)\r
+ internal TimeComponent getNextStartTime(DateComponent date)\r
{\r
if (date == null)\r
{\r
arg.Add(date.getDateString("yyyy-MM-dd"));\r
TimeComponent endDate = null;\r
\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getNextStartTime, arg, \r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getNextStartTime, arg, \r
(SQLiteDataReader reader) => {\r
if (reader.HasRows)\r
{\r
parameters.Add(data.Contents);\r
parameters.Add(data.ForecastMin);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.insertTask, parameters);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.insertTask, parameters);\r
\r
}\r
/// <summary>\r
parameters.Add(data.ForecastMin);\r
parameters.Add(data.SortID);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.updateTask, parameters);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.updateTask, parameters);\r
}\r
\r
/// <summary>\r
parameters.Add(startTime.ToString());\r
parameters.Add(id);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.startTask, parameters);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.startTask, parameters);\r
}\r
\r
/// <summary>\r
parameters.Add(endTime.ToString());\r
parameters.Add(id);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.endTask, parameters);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.endTask, parameters);\r
}\r
\r
/// <summary>\r
bool retval=false;\r
List<object> parameters = new List<object>();\r
parameters.Add(id);\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.isRepeatTask, parameters,\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.isRepeatTask, parameters,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows)\r
parameters.Add(settingData);\r
parameters.Add(id);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.setRepeatTask, parameters);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.setRepeatTask, parameters);\r
\r
}\r
\r
parameters.Add(from);\r
parameters.Add(to);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.deleteTasks, parameters);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.deleteTasks, parameters);\r
}\r
\r
/// <summary>\r
\r
int retVal = 0;\r
\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.countBeforeDelete, parameters,\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.countBeforeDelete, parameters,\r
(SQLiteDataReader reader) =>\r
{\r
if (reader.HasRows)\r
//最後に、過去分タスクをマイナスに変換する(これをやらないと次に振り出されるIDがどんどん増えていく)\r
MultiSQLRunnningBean lastBean = new MultiSQLRunnningBean(SqlDictionary.suppressCompleteTask,new List<object>());\r
sqlList.Add(lastBean);\r
- return AsuradaDBConnection.getObject.updateData(sqlList);\r
+ return TaskDBConnection.Connection.updateData(sqlList);\r
}\r
\r
/// <summary>\r
/// <param name="id"></param>\r
/// <param name="nextDay"></param>\r
/// <returns></returns>\r
- internal bool delayTask(int id, DateComponents nextDay)\r
+ internal bool delayTask(int id, DateComponent nextDay)\r
{\r
List<object> paramList = new List<object>();\r
paramList.Add(nextDay.getDateString("yyyy-MM-dd"));\r
paramList.Add(id);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.delayTask, paramList);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.delayTask, paramList);\r
}\r
\r
/// <summary>\r
paramList.Add(after);\r
paramList.Add(targetTaskID);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.changeTaskNo, paramList);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.changeTaskNo, paramList);\r
}\r
/// <summary>\r
/// タイムエリアを変更します。\r
paramList.Add(nextArea);\r
paramList.Add(targetSortID);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.changeAreaOfTask, paramList);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.changeAreaOfTask, paramList);\r
}\r
/// <summary>\r
/// 時間をクリアし、タスクを初期状態に戻します。\r
List<object> paramList = new List<object>();\r
paramList.Add(targetSortID);\r
\r
- return AsuradaDBConnection.getObject.updateData(SqlDictionary.clearTime, paramList);\r
+ return TaskDBConnection.Connection.updateData(SqlDictionary.clearTime, paramList);\r
}\r
}\r
}\r
{\r
List<TimeAreaCalcData> retList = new List<TimeAreaCalcData>();\r
\r
- AsuradaDBConnection.getObject.selectData(SqlDictionary.getAllTimeArea, (SQLiteDataReader reader) =>\r
+ TaskDBConnection.Connection.selectData(SqlDictionary.getAllTimeArea, (SQLiteDataReader reader) =>\r
{\r
while (reader.Read())\r
{\r
--- /dev/null
+//------------------------------------------------------------------------------\r
+// <auto-generated>\r
+// このコードはツールによって生成されました。\r
+// ランタイム バージョン:4.0.30319.18444\r
+//\r
+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、\r
+// コードが再生成されるときに損失したりします。\r
+// </auto-generated>\r
+//------------------------------------------------------------------------------\r
+\r
+namespace com.andoutomo.kybernetes.data.connection {\r
+ using System;\r
+ \r
+ \r
+ /// <summary>\r
+ /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。\r
+ /// </summary>\r
+ // このクラスは StronglyTypedResourceBuilder クラスが ResGen\r
+ // または Visual Studio のようなツールを使用して自動生成されました。\r
+ // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に\r
+ // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。\r
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]\r
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\r
+ internal class CommandSqlDictionary {\r
+ \r
+ private static global::System.Resources.ResourceManager resourceMan;\r
+ \r
+ private static global::System.Globalization.CultureInfo resourceCulture;\r
+ \r
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]\r
+ internal CommandSqlDictionary() {\r
+ }\r
+ \r
+ /// <summary>\r
+ /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。\r
+ /// </summary>\r
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r
+ internal static global::System.Resources.ResourceManager ResourceManager {\r
+ get {\r
+ if (object.ReferenceEquals(resourceMan, null)) {\r
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("com.andoutomo.kybernetes.data.connection.CommandSqlDictionary", typeof(CommandSqlDictionary).Assembly);\r
+ resourceMan = temp;\r
+ }\r
+ return resourceMan;\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、\r
+ /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。\r
+ /// </summary>\r
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r
+ internal static global::System.Globalization.CultureInfo Culture {\r
+ get {\r
+ return resourceCulture;\r
+ }\r
+ set {\r
+ resourceCulture = value;\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK ORDER BY BASE_COMMAND に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string getAllLink {\r
+ get {\r
+ return ResourceManager.GetString("getAllLink", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM \r
+ ///(\r
+ ///SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM TBL_COMMAND\r
+ ///UNION\r
+ ///SELECT L.LINK_COMMAND AS CMDSTR,M.TARGETCLASS as TARGETCLASS,M.ARGCLASS as ARGCLASS\r
+ ///FROM tbl_link L,tbl_command M\r
+ ///WHERE L.BASE_COMMAND = M.CMDSTR\r
+ ///)where CMDSTR=? に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string getCommand {\r
+ get {\r
+ return ResourceManager.GetString("getCommand", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// select c.CMDSTR,h.SUMMARY,h.DETAIL from TBL_command c,tbl_help h where c.helpid = h.helpid AND cmdSTR=? に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string getHelp {\r
+ get {\r
+ return ResourceManager.GetString("getHelp", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// select l.link_command as link_command from tbl_command c,tbl_link l where c.cmdstr=l.base_command and c.cmdstr = ? に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string getLink {\r
+ get {\r
+ return ResourceManager.GetString("getLink", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK WHERE LINK_COMMAND=? に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string hasLink {\r
+ get {\r
+ return ResourceManager.GetString("hasLink", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// SELECT C.CMDSTR,H.SUMMARY FROM TBL_COMMAND C,TBL_HELP H WHERE C.HELPID=H.HELPID ORDER BY C.HelpID; に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string HELPALL {\r
+ get {\r
+ return ResourceManager.GetString("HELPALL", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// INSERT INTO TBL_LINK (LINK_COMMAND,BASE_COMMAND) VALUES (?,?) に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string insertLink {\r
+ get {\r
+ return ResourceManager.GetString("insertLink", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// DELETE FROM TBL_LINK WHERE LINK_COMMAND=? に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string removeLink {\r
+ get {\r
+ return ResourceManager.GetString("removeLink", resourceCulture);\r
+ }\r
+ }\r
+ }\r
+}\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+ <!-- \r
+ Microsoft ResX Schema \r
+ \r
+ Version 2.0\r
+ \r
+ The primary goals of this format is to allow a simple XML format \r
+ that is mostly human readable. The generation and parsing of the \r
+ various data types are done through the TypeConverter classes \r
+ associated with the data types.\r
+ \r
+ Example:\r
+ \r
+ ... ado.net/XML headers & schema ...\r
+ <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+ <resheader name="version">2.0</resheader>\r
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+ <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+ </data>\r
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+ <comment>This is a comment</comment>\r
+ </data>\r
+ \r
+ There are any number of "resheader" rows that contain simple \r
+ name/value pairs.\r
+ \r
+ Each data row contains a name, and value. The row also contains a \r
+ type or mimetype. Type corresponds to a .NET class that support \r
+ text/value conversion through the TypeConverter architecture. \r
+ Classes that don't support this are serialized and stored with the \r
+ mimetype set.\r
+ \r
+ The mimetype is used for serialized objects, and tells the \r
+ ResXResourceReader how to depersist the object. This is currently not \r
+ extensible. For a given mimetype the value must be set accordingly:\r
+ \r
+ Note - application/x-microsoft.net.object.binary.base64 is the format \r
+ that the ResXResourceWriter will generate, however the reader can \r
+ read any of the formats listed below.\r
+ \r
+ mimetype: application/x-microsoft.net.object.binary.base64\r
+ value : The object must be serialized with \r
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+ : and then encoded with base64 encoding.\r
+ \r
+ mimetype: application/x-microsoft.net.object.soap.base64\r
+ value : The object must be serialized with \r
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+ : and then encoded with base64 encoding.\r
+\r
+ mimetype: application/x-microsoft.net.object.bytearray.base64\r
+ value : The object must be serialized into a byte array \r
+ : using a System.ComponentModel.TypeConverter\r
+ : and then encoded with base64 encoding.\r
+ -->\r
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+ <xsd:element name="root" msdata:IsDataSet="true">\r
+ <xsd:complexType>\r
+ <xsd:choice maxOccurs="unbounded">\r
+ <xsd:element name="metadata">\r
+ <xsd:complexType>\r
+ <xsd:sequence>\r
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+ </xsd:sequence>\r
+ <xsd:attribute name="name" use="required" type="xsd:string" />\r
+ <xsd:attribute name="type" type="xsd:string" />\r
+ <xsd:attribute name="mimetype" type="xsd:string" />\r
+ <xsd:attribute ref="xml:space" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ <xsd:element name="assembly">\r
+ <xsd:complexType>\r
+ <xsd:attribute name="alias" type="xsd:string" />\r
+ <xsd:attribute name="name" type="xsd:string" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ <xsd:element name="data">\r
+ <xsd:complexType>\r
+ <xsd:sequence>\r
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+ </xsd:sequence>\r
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+ <xsd:attribute ref="xml:space" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ <xsd:element name="resheader">\r
+ <xsd:complexType>\r
+ <xsd:sequence>\r
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+ </xsd:sequence>\r
+ <xsd:attribute name="name" type="xsd:string" use="required" />\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ </xsd:choice>\r
+ </xsd:complexType>\r
+ </xsd:element>\r
+ </xsd:schema>\r
+ <resheader name="resmimetype">\r
+ <value>text/microsoft-resx</value>\r
+ </resheader>\r
+ <resheader name="version">\r
+ <value>2.0</value>\r
+ </resheader>\r
+ <resheader name="reader">\r
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+ </resheader>\r
+ <resheader name="writer">\r
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+ </resheader>\r
+ <data name="getCommand" xml:space="preserve">\r
+ <value>SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM \r
+(\r
+SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM TBL_COMMAND\r
+UNION\r
+SELECT L.LINK_COMMAND AS CMDSTR,M.TARGETCLASS as TARGETCLASS,M.ARGCLASS as ARGCLASS\r
+FROM tbl_link L,tbl_command M\r
+WHERE L.BASE_COMMAND = M.CMDSTR\r
+)where CMDSTR=?</value>\r
+ <comment>コマンドディスパッチャに送るクラス名と引数クラスを取得します。</comment>\r
+ </data>\r
+ <data name="HELPALL" xml:space="preserve">\r
+ <value>SELECT C.CMDSTR,H.SUMMARY FROM TBL_COMMAND C,TBL_HELP H WHERE C.HELPID=H.HELPID ORDER BY C.HelpID;</value>\r
+ <comment>HELP全リストを表示します。</comment>\r
+ </data>\r
+ <data name="hasLink" xml:space="preserve">\r
+ <value>SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK WHERE LINK_COMMAND=?</value>\r
+ <comment>リンクが有るかどうかを確認します。</comment>\r
+ </data>\r
+ <data name="insertLink" xml:space="preserve">\r
+ <value>INSERT INTO TBL_LINK (LINK_COMMAND,BASE_COMMAND) VALUES (?,?)</value>\r
+ <comment>リンクを作成します。</comment>\r
+ </data>\r
+ <data name="removeLink" xml:space="preserve">\r
+ <value>DELETE FROM TBL_LINK WHERE LINK_COMMAND=?</value>\r
+ <comment>リンクを削除します。</comment>\r
+ </data>\r
+ <data name="getHelp" xml:space="preserve">\r
+ <value>select c.CMDSTR,h.SUMMARY,h.DETAIL from TBL_command c,tbl_help h where c.helpid = h.helpid AND cmdSTR=?</value>\r
+ <comment>個別ヘルプの内容を取得します。</comment>\r
+ </data>\r
+ <data name="getLink" xml:space="preserve">\r
+ <value>select l.link_command as link_command from tbl_command c,tbl_link l where c.cmdstr=l.base_command and c.cmdstr = ?</value>\r
+ <comment>個別ヘルプ用に、アライアスを取得します。</comment>\r
+ </data>\r
+ <data name="getAllLink" xml:space="preserve">\r
+ <value>SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK ORDER BY BASE_COMMAND</value>\r
+ <comment>リンク一覧を出力します。</comment>\r
+ </data>\r
+</root>
\ No newline at end of file
{\r
delegate void TransitData(SQLiteDataReader reader);\r
\r
- class AsuradaDBConnection\r
+ abstract class DBConnection\r
{\r
- #region Singleton\r
- private static AsuradaDBConnection singleton;\r
-\r
- internal static AsuradaDBConnection getObject\r
- {\r
- get\r
- {\r
- if (singleton == null)\r
- {\r
- singleton = new AsuradaDBConnection();\r
- }\r
- return singleton;\r
- }\r
- }\r
- private AsuradaDBConnection()\r
- {\r
- }\r
- #endregion\r
-\r
- private string dbfile = "asurada.db";\r
-\r
+ internal abstract string targetDbFile();\r
\r
/// <summary>\r
/// データの参照を行う。\r
KybernetesLogger.Log.debug("SQL:" + sql);\r
try\r
{\r
- using (var conn = new SQLiteConnection("Data Source=" + dbfile))\r
+ using (var conn = new SQLiteConnection("Data Source=" + targetDbFile()))\r
{\r
conn.Open();\r
using (SQLiteCommand command = conn.CreateCommand())\r
KybernetesLogger.Log.debug("SQL:" + sql);\r
try\r
{\r
- using (var conn = new SQLiteConnection("Data Source=" + dbfile))\r
+ using (var conn = new SQLiteConnection("Data Source=" + targetDbFile()))\r
{\r
conn.Open();\r
using (SQLiteTransaction sqlt = conn.BeginTransaction())\r
{\r
try\r
{\r
- using (var conn = new SQLiteConnection("Data Source=" + dbfile))\r
+ using (var conn = new SQLiteConnection("Data Source=" + targetDbFile()))\r
{\r
conn.Open();\r
using (SQLiteTransaction sqlt = conn.BeginTransaction())\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.data.connection\r
+{\r
+ class SettingDBConnection : DBConnection\r
+ {\r
+ #region singleton\r
+ private static SettingDBConnection connection;\r
+ private SettingDBConnection()\r
+ {\r
+\r
+ }\r
+ internal static SettingDBConnection Connection\r
+ {\r
+ get\r
+ {\r
+ if (connection == null)\r
+ {\r
+ connection = new SettingDBConnection();\r
+ }\r
+ return connection;\r
+ }\r
+ private set { }\r
+ }\r
+ #endregion\r
+\r
+\r
+\r
+ internal override string targetDbFile()\r
+ {\r
+ return "setting.db";\r
+ }\r
+ }\r
+}\r
}\r
\r
/// <summary>\r
+ /// DELETE FROM TBL_COMMENT WHERE TASKID IS NULL AND DATE(CREATETIME) = DATE(?) に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string clearMetaComment {\r
+ get {\r
+ return ResourceManager.GetString("clearMetaComment", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// DELETE FROM TBL_COMMENT WHERE TASKID=? に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string clearTaskComment {\r
+ get {\r
+ return ResourceManager.GetString("clearTaskComment", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
/// update tbl_tasks set starttime=null,endtime=null where sortid=? に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string clearTime {\r
}\r
\r
/// <summary>\r
+ /// DELETE FROM TBL_COMMENT WHERE TASKID IS NOT NULL AND TASKID NOT IN(SELECT TASKID FROM TBL_TASKS) に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string clearZombieComment {\r
+ get {\r
+ return ResourceManager.GetString("clearZombieComment", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
/// SELECT COUNT(taskID) as COUNT FROM tbl_tasks where sortid between ? and ? に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string countBeforeDelete {\r
}\r
\r
/// <summary>\r
- /// SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK ORDER BY BASE_COMMAND に類似しているローカライズされた文字列を検索します。\r
- /// </summary>\r
- internal static string getAllLink {\r
- get {\r
- return ResourceManager.GetString("getAllLink", resourceCulture);\r
- }\r
- }\r
- \r
- /// <summary>\r
/// SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
///T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
///(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
- ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
- ///FROM TBL_TASKS T,TBL_SETTING S LEFT outer join tbl_category C on C.CATEGID=T.CATEGID\r
- ///ORDER BY DATESORT,E [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
+ ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,\r
+ ///time(startTime) as STARTTIMESORT,\r
+ ///(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,\r
+ ///(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getAllList {\r
get {\r
}\r
\r
/// <summary>\r
- /// SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM \r
- ///(\r
- ///SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM TBL_COMMAND\r
- ///UNION\r
- ///SELECT L.LINK_COMMAND AS CMDSTR,M.TARGETCLASS as TARGETCLASS,M.ARGCLASS as ARGCLASS\r
- ///FROM tbl_link L,tbl_command M\r
- ///WHERE L.BASE_COMMAND = M.CMDSTR\r
- ///)where CMDSTR=? に類似しているローカライズされた文字列を検索します。\r
+ /// SELECT ID,TASKID,CREATETIME,COMMENT FROM TBL_COMMENT WHERE TASKID=? ORDER BY ID に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
- internal static string getCommand {\r
+ internal static string getComments {\r
get {\r
- return ResourceManager.GetString("getCommand", resourceCulture);\r
+ return ResourceManager.GetString("getComments", resourceCulture);\r
}\r
}\r
\r
/// SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
///T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
///(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
- ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
- ///FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE DATE(T.DODATE) [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
+ ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,\r
+ ///(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS H [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getDailyList {\r
get {\r
}\r
\r
/// <summary>\r
- /// select c.CMDSTR,h.SUMMARY,h.DETAIL from TBL_command c,tbl_help h where c.helpid = h.helpid AND cmdSTR=? に類似しているローカライズされた文字列を検索します。\r
- /// </summary>\r
- internal static string getHelp {\r
- get {\r
- return ResourceManager.GetString("getHelp", resourceCulture);\r
- }\r
- }\r
- \r
- /// <summary>\r
- /// select l.link_command as link_command from tbl_command c,tbl_link l where c.cmdstr=l.base_command and c.cmdstr = ? に類似しているローカライズされた文字列を検索します。\r
- /// </summary>\r
- internal static string getLink {\r
- get {\r
- return ResourceManager.GetString("getLink", resourceCulture);\r
- }\r
- }\r
- \r
- /// <summary>\r
/// SELECT LOGMODE FROM TBL_SETTING に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getLogMode {\r
}\r
\r
/// <summary>\r
+ /// SELECT ID,TASKID,CREATETIME,COMMENT FROM TBL_COMMENT WHERE TASKID is null AND date(CREATETIME) = (SELECT TODAY FROM TBL_SETTING) ORDER BY ID に類似しているローカライズされた文字列を検索します。\r
+ /// </summary>\r
+ internal static string getMetaComment {\r
+ get {\r
+ return ResourceManager.GetString("getMetaComment", resourceCulture);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
/// SELECT MAX(TIME(ENDTIME)) AS MAXENDTIME FROM TBL_TASKS WHERE DODATE=date(?); に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getNextStartTime {\r
/// SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
///T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG,\r
///(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
- ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
- ///FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID \r
- ///WHERE DATE(T.DODATE [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
+ ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASC [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getPwdList {\r
get {\r
/// SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
///T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
///(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
- ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
- ///FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE T.ENDTIME IS N [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
+ ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HAS [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getRemainList {\r
get {\r
/// SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
///T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG,\r
///(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
- ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
- ///FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE DATE(T.DODATE) [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
+ ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASC [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string getTodayList {\r
get {\r
}\r
\r
/// <summary>\r
- /// SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK WHERE LINK_COMMAND=? に類似しているローカライズされた文字列を検索します。\r
- /// </summary>\r
- internal static string hasLink {\r
- get {\r
- return ResourceManager.GetString("hasLink", resourceCulture);\r
- }\r
- }\r
- \r
- /// <summary>\r
- /// SELECT C.CMDSTR,H.SUMMARY FROM TBL_COMMAND C,TBL_HELP H WHERE C.HELPID=H.HELPID ORDER BY C.HelpID; に類似しているローカライズされた文字列を検索します。\r
+ /// INSERT into tbl_category (CATEGID,CATEGORY,FRCOLOR,BGCOLOR) values(?,?,?,?) に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
- internal static string HELPALL {\r
+ internal static string insertCategory {\r
get {\r
- return ResourceManager.GetString("HELPALL", resourceCulture);\r
+ return ResourceManager.GetString("insertCategory", resourceCulture);\r
}\r
}\r
\r
/// <summary>\r
- /// INSERT into tbl_category (CATEGID,CATEGORY,FRCOLOR,BGCOLOR) values(?,?,?,?) に類似しているローカライズされた文字列を検索します。\r
+ /// INSERT INTO TBL_COMMENT (TASKID,CREATETIME,COMMENT) VALUES(?,datetime('now','localtime'),?) に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
- internal static string insertCategory {\r
+ internal static string insertComment {\r
get {\r
- return ResourceManager.GetString("insertCategory", resourceCulture);\r
+ return ResourceManager.GetString("insertComment", resourceCulture);\r
}\r
}\r
\r
/// <summary>\r
- /// INSERT INTO TBL_LINK (LINK_COMMAND,BASE_COMMAND) VALUES (?,?) に類似しているローカライズされた文字列を検索します。\r
+ /// INSERT INTO TBL_COMMENT (TASKID,CREATETIME,COMMENT) VALUES(null,datetime('now','localtime'),?) に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
- internal static string insertLink {\r
+ internal static string insertMetaComment {\r
get {\r
- return ResourceManager.GetString("insertLink", resourceCulture);\r
+ return ResourceManager.GetString("insertMetaComment", resourceCulture);\r
}\r
}\r
\r
}\r
\r
/// <summary>\r
- /// DELETE FROM TBL_LINK WHERE LINK_COMMAND=? に類似しているローカライズされた文字列を検索します。\r
- /// </summary>\r
- internal static string removeLink {\r
- get {\r
- return ResourceManager.GetString("removeLink", resourceCulture);\r
- }\r
- }\r
- \r
- /// <summary>\r
/// SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
///T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
///(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
- ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
- ///FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE T.CONTENTS LIK [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
+ ///(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HAS [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。\r
/// </summary>\r
internal static string searchTasks {\r
get {\r
<value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
-(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
+(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,\r
+time(startTime) as STARTTIMESORT,\r
+(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,\r
+(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASCOMMENT\r
FROM TBL_TASKS T,TBL_SETTING S LEFT outer join tbl_category C on C.CATEGID=T.CATEGID\r
-ORDER BY DATESORT,ENDTIMESORT,T.DODATE,T.TIMEAREA,STARTNULLSORT,STARTTIMESORT,T.SORTID</value>\r
+ORDER BY DATESORT,ENDTIMESORT,T.DODATE,T.TIMEAREA,STARTNULLSORT,STARTTIMESORT,T.SORTID;</value>\r
<comment>全タスクを表示します。</comment>\r
</data>\r
<data name="getCategoryFromCategName" xml:space="preserve">\r
<value>SELECT CategID,BGColor,FRColor FROM tbl_category WHERE Category = ?</value>\r
<comment>カテゴリ名からIDを逆引きします。</comment>\r
</data>\r
- <data name="getCommand" xml:space="preserve">\r
- <value>SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM \r
-(\r
-SELECT CMDSTR,TARGETCLASS,ARGCLASS FROM TBL_COMMAND\r
-UNION\r
-SELECT L.LINK_COMMAND AS CMDSTR,M.TARGETCLASS as TARGETCLASS,M.ARGCLASS as ARGCLASS\r
-FROM tbl_link L,tbl_command M\r
-WHERE L.BASE_COMMAND = M.CMDSTR\r
-)where CMDSTR=?</value>\r
- <comment>コマンドディスパッチャに送るクラス名と引数クラスを取得します。</comment>\r
- </data>\r
<data name="getDailyList" xml:space="preserve">\r
<value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
-(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
+(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,\r
+(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASCOMMENT \r
FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE DATE(T.DODATE) = DATE(?) \r
ORDER BY DATESORT,ENDTIMESORT,T.DODATE,T.TIMEAREA,STARTNULLSORT,STARTTIMESORT,T.SORTID</value>\r
<comment>指定された日付のタスクを取得します。</comment>\r
<value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
-(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
+(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASCOMMENT \r
FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE T.ENDTIME IS NULL\r
ORDER BY DATESORT,ENDTIMESORT,T.DODATE,T.TIMEAREA,STARTNULLSORT,STARTTIMESORT,T.SORTID</value>\r
<comment>残り全タスクを表示します。</comment>\r
<value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG,\r
(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
-(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
+(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASCOMMENT \r
FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE DATE(T.DODATE) = DATE(S.TODAY)\r
ORDER BY DATESORT,ENDTIMESORT,T.DODATE,T.TIMEAREA,STARTNULLSORT,STARTTIMESORT,T.SORTID</value>\r
<comment>今日のタスクを取得します。</comment>\r
</data>\r
- <data name="HELPALL" xml:space="preserve">\r
- <value>SELECT C.CMDSTR,H.SUMMARY FROM TBL_COMMAND C,TBL_HELP H WHERE C.HELPID=H.HELPID ORDER BY C.HelpID;</value>\r
- <comment>HELP全リストを表示します。</comment>\r
- </data>\r
<data name="insertTask" xml:space="preserve">\r
<value>insert into tbl_tasks(TASKID,SORTID,DODATE,TIMEAREA,CATEGID,CONTENTS,FORCASTMIN,STARTTIME,ENDTIME) values(?,?,date(?),?,?,?,?,null,null)</value>\r
<comment>タスクを追加します。</comment>\r
<value>update tbl_tasks set sortid = ? where taskid=?</value>\r
<comment>ソート番号を変更します。</comment>\r
</data>\r
- <data name="hasLink" xml:space="preserve">\r
- <value>SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK WHERE LINK_COMMAND=?</value>\r
- <comment>リンクが有るかどうかを確認します。</comment>\r
- </data>\r
- <data name="insertLink" xml:space="preserve">\r
- <value>INSERT INTO TBL_LINK (LINK_COMMAND,BASE_COMMAND) VALUES (?,?)</value>\r
- <comment>リンクを作成します。</comment>\r
- </data>\r
- <data name="removeLink" xml:space="preserve">\r
- <value>DELETE FROM TBL_LINK WHERE LINK_COMMAND=?</value>\r
- <comment>リンクを削除します。</comment>\r
- </data>\r
<data name="clearTimeArea" xml:space="preserve">\r
<value>delete from tbl_timearea</value>\r
<comment>時間帯をクリアします。</comment>\r
<value>INSERT INTO tbl_timearea (TIMEAREA,START,END) values(?,?,?)</value>\r
<comment>時間帯を追加します。</comment>\r
</data>\r
- <data name="getHelp" xml:space="preserve">\r
- <value>select c.CMDSTR,h.SUMMARY,h.DETAIL from TBL_command c,tbl_help h where c.helpid = h.helpid AND cmdSTR=?</value>\r
- <comment>個別ヘルプの内容を取得します。</comment>\r
- </data>\r
- <data name="getLink" xml:space="preserve">\r
- <value>select l.link_command as link_command from tbl_command c,tbl_link l where c.cmdstr=l.base_command and c.cmdstr = ?</value>\r
- <comment>個別ヘルプ用に、アライアスを取得します。</comment>\r
- </data>\r
<data name="getPwdList" xml:space="preserve">\r
<value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG,\r
(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
-(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
+(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASCOMMENT \r
FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID \r
WHERE DATE(T.DODATE) = DATE(S.TODAY) AND T.ENDTIME IS NULL AND T.STARTTIME IS NOT NULL \r
ORDER BY DATESORT,ENDTIMESORT,T.DODATE,T.TIMEAREA,STARTNULLSORT,STARTTIMESORT,T.SORTID</value>\r
<value>DELETE FROM tbl_tasks where sortid between ? and ?</value>\r
<comment>タスクを削除します。</comment>\r
</data>\r
- <data name="getAllLink" xml:space="preserve">\r
- <value>SELECT LINK_COMMAND,BASE_COMMAND FROM TBL_LINK ORDER BY BASE_COMMAND</value>\r
- <comment>リンク一覧を出力します。</comment>\r
- </data>\r
<data name="getAllTimeArea" xml:space="preserve">\r
<value>SELECT TIMEAREA,START,END FROM tbl_timearea</value>\r
<comment>タイムエリアを取得します。</comment>\r
<value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,C.CATEGORY,T.CONTENTS,\r
T.FORCASTMIN,T.STARTTIME,T.ENDTIME,C.BGCOLOR,C.FRCOLOR,T.REPEATFLG, \r
(CASE WHEN T.ENDTIME IS NULL THEN 1 ELSE 0 END) AS ENDTIMESORT,\r
-(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort\r
+(CASE WHEN T.DODATE =S.TODAY THEN 0 ELSE (CASE WHEN DODATE>S.TODAY THEN 2 ELSE 3 END) END) AS DATESORT,time(startTime) as STARTTIMESORT,(Case when STARTTIME IS NULL THEN 1 ELSE 0 END) AS STARTNullSort,(Case when exists (SELECT TASKID FROM TBL_COMMENT cm where cm.taskid = T.TASKID) THEN 1 ELSE 0 END) AS HASCOMMENT \r
FROM TBL_TASKS T,TBL_SETTING S LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID WHERE T.CONTENTS LIKE ? OR C.Category LIKE ?\r
ORDER BY DATESORT,ENDTIMESORT,T.DODATE,T.TIMEAREA,STARTNULLSORT,STARTTIMESORT,T.SORTID</value>\r
<comment>与えられたキーワードをコンテンツに持つタスクを検索します。</comment>\r
</data>\r
+ <data name="clearMetaComment" xml:space="preserve">\r
+ <value>DELETE FROM TBL_COMMENT WHERE TASKID IS NULL AND DATE(CREATETIME) = DATE(?)</value>\r
+ <comment>日付単位でメタコメントを削除します。</comment>\r
+ </data>\r
+ <data name="clearTaskComment" xml:space="preserve">\r
+ <value>DELETE FROM TBL_COMMENT WHERE TASKID=?</value>\r
+ <comment>タスク単位でコメントを削除します。</comment>\r
+ </data>\r
+ <data name="clearZombieComment" xml:space="preserve">\r
+ <value>DELETE FROM TBL_COMMENT WHERE TASKID IS NOT NULL AND TASKID NOT IN(SELECT TASKID FROM TBL_TASKS)</value>\r
+ <comment>タスク削除時に、タスクに紐付かないコメントをすべて削除します。</comment>\r
+ </data>\r
+ <data name="getComments" xml:space="preserve">\r
+ <value>SELECT ID,TASKID,CREATETIME,COMMENT FROM TBL_COMMENT WHERE TASKID=? ORDER BY ID</value>\r
+ <comment>当該タスクに関するコメントを照会します。</comment>\r
+ </data>\r
+ <data name="getMetaComment" xml:space="preserve">\r
+ <value>SELECT ID,TASKID,CREATETIME,COMMENT FROM TBL_COMMENT WHERE TASKID is null AND date(CREATETIME) = (SELECT TODAY FROM TBL_SETTING) ORDER BY ID</value>\r
+ <comment>当日のメタコメントを参照します。</comment>\r
+ </data>\r
+ <data name="insertComment" xml:space="preserve">\r
+ <value>INSERT INTO TBL_COMMENT (TASKID,CREATETIME,COMMENT) VALUES(?,datetime('now','localtime'),?)</value>\r
+ <comment>タスクに対してコメントを追加します。</comment>\r
+ </data>\r
+ <data name="insertMetaComment" xml:space="preserve">\r
+ <value>INSERT INTO TBL_COMMENT (TASKID,CREATETIME,COMMENT) VALUES(null,datetime('now','localtime'),?)</value>\r
+ <comment>その日全体についてコメントを追加します。</comment>\r
+ </data>\r
</root>
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.data.connection\r
+{\r
+ class TaskDBConnection:DBConnection\r
+ {\r
+ internal override string targetDbFile()\r
+ {\r
+ return "user.db";\r
+ }\r
+ #region singleton\r
+ private static TaskDBConnection connection;\r
+ private TaskDBConnection() { }\r
+ internal static TaskDBConnection Connection\r
+ {\r
+ get\r
+ {\r
+ if (connection == null)\r
+ {\r
+ connection = new TaskDBConnection();\r
+ }\r
+ return connection;\r
+ }\r
+ private set { }\r
+ }\r
+\r
+ #endregion\r
+ }\r
+}\r
private void InitializeComponent()\r
{\r
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BaseForm));\r
- this.panel1 = new System.Windows.Forms.Panel();\r
+ this.pnlTask = new System.Windows.Forms.Panel();\r
this.txtInput = new System.Windows.Forms.TextBox();\r
this.rConsole = new System.Windows.Forms.RichTextBox();\r
this.expData = new System.Windows.Forms.SaveFileDialog();\r
this.dmpData = new System.Windows.Forms.SaveFileDialog();\r
this.SuspendLayout();\r
// \r
- // panel1\r
+ // pnlTask\r
// \r
- this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));\r
- this.panel1.AutoScroll = true;\r
- this.panel1.AutoSize = true;\r
- this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
- this.panel1.Location = new System.Drawing.Point(6, 5);\r
- this.panel1.MaximumSize = new System.Drawing.Size(780, 400);\r
- this.panel1.MinimumSize = new System.Drawing.Size(780, 400);\r
- this.panel1.Name = "panel1";\r
- this.panel1.Size = new System.Drawing.Size(780, 400);\r
- this.panel1.TabIndex = 0;\r
+ this.pnlTask.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));\r
+ this.pnlTask.AutoScroll = true;\r
+ this.pnlTask.AutoSize = true;\r
+ this.pnlTask.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+ this.pnlTask.Location = new System.Drawing.Point(5, 5);\r
+ this.pnlTask.MaximumSize = new System.Drawing.Size(780, 400);\r
+ this.pnlTask.MinimumSize = new System.Drawing.Size(780, 400);\r
+ this.pnlTask.Name = "pnlTask";\r
+ this.pnlTask.Size = new System.Drawing.Size(780, 400);\r
+ this.pnlTask.TabIndex = 0;\r
// \r
// txtInput\r
// \r
this.txtInput.BackColor = System.Drawing.Color.Black;\r
this.txtInput.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
this.txtInput.ForeColor = System.Drawing.Color.White;\r
- this.txtInput.Location = new System.Drawing.Point(792, 387);\r
+ this.txtInput.Location = new System.Drawing.Point(792, 389);\r
this.txtInput.Name = "txtInput";\r
this.txtInput.Size = new System.Drawing.Size(388, 19);\r
- this.txtInput.TabIndex = 2;\r
+ this.txtInput.TabIndex = 1;\r
this.txtInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtInput_KeyDown);\r
// \r
// rConsole\r
this.rConsole.Name = "rConsole";\r
this.rConsole.ReadOnly = true;\r
this.rConsole.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;\r
- this.rConsole.Size = new System.Drawing.Size(388, 377);\r
+ this.rConsole.Size = new System.Drawing.Size(388, 379);\r
this.rConsole.TabIndex = 0;\r
this.rConsole.TabStop = false;\r
this.rConsole.Text = "";\r
// \r
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
- this.ClientSize = new System.Drawing.Size(1184, 410);\r
+ this.ClientSize = new System.Drawing.Size(1184, 412);\r
this.Controls.Add(this.rConsole);\r
this.Controls.Add(this.txtInput);\r
- this.Controls.Add(this.panel1);\r
+ this.Controls.Add(this.pnlTask);\r
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));\r
this.Name = "BaseForm";\r
this.Text = "Kybernetes v1.0.0";\r
\r
#endregion\r
\r
- private System.Windows.Forms.Panel panel1;\r
+ private System.Windows.Forms.Panel pnlTask;\r
private System.Windows.Forms.TextBox txtInput;\r
private System.Windows.Forms.RichTextBox rConsole;\r
private System.Windows.Forms.SaveFileDialog expData;\r
using System.Windows.Forms;\r
using com.andoutomo.kybernetes.control;\r
using com.andoutomo.kybernetes.data.DAO;\r
+using System.Drawing;\r
\r
\r
namespace com.andoutomo.kybernetes.view\r
addMultiText(initialText);\r
\r
addPrompt();\r
+ history = new CmdHistory();\r
\r
this.Text = AppInfoContainer.Title + " " + AppInfoContainer.Description;\r
Echo = true;\r
-\r
+ \r
\r
}\r
+ private CmdHistory history;\r
+\r
\r
internal void invokeCategSettingDialog(List<CategoryData> arg)\r
{\r
internal void clearText()\r
{\r
rConsole.Clear();\r
- rConsole.AppendText("> ");\r
+ \r
}\r
\r
private bool exitSwitch = false;\r
{\r
Panel targetPanel = new PanelController(this).createRow(lastRow,data);\r
\r
- panel1.Controls.Add(targetPanel);\r
+ pnlTask.Controls.Add(targetPanel);\r
lastRow += targetPanel.Height-1;\r
}\r
\r
/// </summary>\r
internal void clearPanel()\r
{\r
- panel1.Controls.Clear();\r
+ pnlTask.Controls.Clear();\r
//先頭行は足す\r
- panel1.Controls.Add(new CaptionPanelController().createRow());\r
+ pnlTask.Controls.Add(new CaptionPanelController().createRow());\r
lastRow = 17;\r
}\r
/// <summary>\r
/// <param name="e"></param>\r
private void txtInput_KeyDown(object sender, KeyEventArgs e)\r
{\r
+ int currentYPosition;\r
switch (e.KeyCode)\r
{\r
case Keys.Enter:\r
e.SuppressKeyPress = true;\r
doCommand();\r
+ \r
break;\r
\r
case Keys.Space:\r
break;\r
case Keys.Escape:\r
e.SuppressKeyPress = true;\r
+ history.resetPosition();\r
txtInput.Clear();\r
break;\r
+ case Keys.Up:\r
+ e.SuppressKeyPress = true;\r
+ txtInput.Text = history.prevCommand();\r
+ break;\r
+ case Keys.Down:\r
+ e.SuppressKeyPress = true;\r
+ txtInput.Text = history.nextCommand();\r
+ break;\r
+\r
+ case Keys.PageDown:\r
+ currentYPosition = Math.Abs(this.pnlTask.AutoScrollPosition.Y);\r
+ this.pnlTask.AutoScrollPosition = new Point(0, currentYPosition + 380);\r
+ break;\r
+\r
+ case Keys.PageUp:\r
+ currentYPosition = Math.Abs(this.pnlTask.AutoScrollPosition.Y);\r
+ this.pnlTask.AutoScrollPosition = new Point(0, currentYPosition - 380);\r
+ break;\r
}\r
}\r
/// <summary>\r
}\r
\r
addPrompt();\r
-\r
+ if (!string.IsNullOrEmpty(txtInput.Text))\r
+ {\r
+ history.stackCmd(txtInput.Text);\r
+ }\r
txtInput.Clear();\r
txtInput.ImeMode = ImeMode.Off;\r
\r
{\r
txtInput.Text += rConsole.SelectedText.Trim();\r
txtInput.Focus();\r
+ //選択状態を解除する\r
this.txtInput.Select(this.txtInput.Text.Length, 0);\r
\r
}\r
rowPanel.Controls.Add(new CustomLabel("@", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 100, 21, 16, ContentAlignment.MiddleCenter));\r
rowPanel.Controls.Add(new CustomLabel("ID", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 120, 41, 16, ContentAlignment.MiddleCenter));\r
rowPanel.Controls.Add(new CustomLabel("Category", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 160, 81, 16, ContentAlignment.MiddleCenter));\r
- rowPanel.Controls.Add(new CustomLabel("作業内容", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 240, 231, 16, ContentAlignment.MiddleCenter));\r
- rowPanel.Controls.Add(new CustomLabel("見積H", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 470, 51, 16, ContentAlignment.MiddleCenter));\r
- rowPanel.Controls.Add(new CustomLabel("見積m", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 520, 51, 16, ContentAlignment.MiddleCenter));\r
- rowPanel.Controls.Add(new CustomLabel("実績", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 570, 51, 16, ContentAlignment.MiddleCenter));\r
- rowPanel.Controls.Add(new CustomLabel("開始", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 620, 61, 16, ContentAlignment.MiddleCenter));\r
- rowPanel.Controls.Add(new CustomLabel("終了", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 680, 61, 16, ContentAlignment.MiddleCenter));\r
- rowPanel.Controls.Add(new CustomLabel("R", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 740, 21, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("作業内容", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 240, 211, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("見積H", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 450, 51, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("見積m", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 500, 51, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("実績", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 550, 51, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("開始", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 600, 61, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("終了", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 660, 61, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("R", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 720, 21, 16, ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel("C", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 740, 21, 16, ContentAlignment.MiddleCenter));\r
\r
rowPanel.Location = new Point(0, 0);\r
rowPanel.Size = new Size(761, 16);\r
this.btnSetFR.Location = new System.Drawing.Point(84, 200);\r
this.btnSetFR.Name = "btnSetFR";\r
this.btnSetFR.Size = new System.Drawing.Size(59, 22);\r
- this.btnSetFR.TabIndex = 4;\r
+ this.btnSetFR.TabIndex = 3;\r
this.btnSetFR.Text = "文字";\r
this.btnSetFR.UseVisualStyleBackColor = true;\r
this.btnSetFR.Click += new System.EventHandler(this.btnSetFR_Click);\r
this.btnApply.Location = new System.Drawing.Point(111, 239);\r
this.btnApply.Name = "btnApply";\r
this.btnApply.Size = new System.Drawing.Size(75, 22);\r
- this.btnApply.TabIndex = 5;\r
+ this.btnApply.TabIndex = 6;\r
this.btnApply.Text = "適用";\r
this.btnApply.UseVisualStyleBackColor = true;\r
this.btnApply.Click += new System.EventHandler(this.btnApply_Click);\r
this.btnClose.Location = new System.Drawing.Point(196, 239);\r
this.btnClose.Name = "btnClose";\r
this.btnClose.Size = new System.Drawing.Size(75, 22);\r
- this.btnClose.TabIndex = 5;\r
+ this.btnClose.TabIndex = 7;\r
this.btnClose.Text = "閉じる";\r
this.btnClose.UseVisualStyleBackColor = true;\r
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);\r
sqlList.Add(new MultiSQLRunnningBean(SqlDictionary.insertCategory, argList));\r
}\r
\r
- AsuradaDBConnection.getObject.updateData(sqlList);\r
+ TaskDBConnection.Connection.updateData(sqlList);\r
\r
\r
this.Close();\r
--- /dev/null
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.view\r
+{\r
+ /// <summary>\r
+ /// コマンドヒストリを保持します。\r
+ /// </summary>\r
+ internal class CmdHistory\r
+ {\r
+ private string[] commandHist;\r
+ private int currentPosition;\r
+ const int MAXHIST = 10; \r
+\r
+ internal CmdHistory()\r
+ {\r
+ commandHist = new string[MAXHIST];\r
+ currentPosition = 0;\r
+ }\r
+ /// <summary>\r
+ /// 直前に実行されたコマンドをを提示します。\r
+ /// 同時にカレント位置を動かし、さらにその前のコマンドを提示する準備を行います。\r
+ /// </summary>\r
+ /// <returns></returns>\r
+ internal string prevCommand()\r
+ {\r
+ //終点まで来ている場合は最後のコマンドを表示。カレント位置も動かさない。\r
+ if (currentPosition == MAXHIST)\r
+ {\r
+ return commandHist[MAXHIST-1];\r
+ }\r
+ //次に提示するコマンドがある場合は、カレント位置を動かす。\r
+ if (!string.IsNullOrEmpty(commandHist[currentPosition]))\r
+ {\r
+ currentPosition++;\r
+ }\r
+ //ヒストリ配列からコマンドを取得してreturn\r
+ if (currentPosition > 0)\r
+ {\r
+ return commandHist[currentPosition - 1];\r
+ }\r
+ //この段階でcurrentPosition=0(ヒストリがない)場合は、空文字を返す。\r
+ else\r
+ {\r
+ return string.Empty;\r
+ }\r
+ }\r
+ /// <summary>\r
+ /// カレント位置の次に実行されたコマンドを提示します。\r
+ /// </summary>\r
+ /// <returns></returns>\r
+ internal string nextCommand()\r
+ {\r
+ currentPosition--;\r
+ if (currentPosition <= 0)\r
+ {\r
+ currentPosition = 0;\r
+ return string.Empty;\r
+ }\r
+ return commandHist[currentPosition-1];\r
+ }\r
+ /// <summary>\r
+ /// コマンド受け入れを行います。\r
+ /// コマンドはスタックされ、10件以上の場合は10番目が破棄されます。\r
+ /// また、同一のコマンドを連続入力した場合はスタックを行いません。\r
+ /// </summary>\r
+ /// <param name="command"></param>\r
+ internal void stackCmd(string command)\r
+ {\r
+ if (command != commandHist[0])\r
+ {\r
+ //スタックを行う\r
+ for (int i = MAXHIST-1; i > 0; i--)\r
+ {\r
+ commandHist[i] = commandHist[i - 1];\r
+ }\r
+\r
+ //新たなコマンドを追加する\r
+ commandHist[0] = command;\r
+ }\r
+ //ポジションをリセット\r
+ resetPosition();\r
+ }\r
+ /// <summary>\r
+ /// ヒストリで参照するポジションをリセットします。\r
+ /// </summary>\r
+ internal void resetPosition()\r
+ {\r
+ currentPosition = 0;\r
+ }\r
+ }\r
+}\r
}\r
sortID = data.SortID;\r
\r
- rowPanel.Controls.Add(new CustomLabel(data.Indicator, frColor, bgColor, FontStyle.Regular, 9F, 0, 21, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDateString(), frColor, bgColor, style, 9F, 20, 56, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDowStr(), frColor, bgColor, style, 9F, 75, 26, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.TimeArea, frColor, bgColor, style, 9F, 100, 21, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.SortID.ToString(), frColor, bgColor, style, 9F, 120, 41, rowsize));\r
+ rowPanel.Controls.Add(new CustomLabel(data.Indicator, frColor, bgColor, FontStyle.Regular, 9F, 0, 21, rowsize,ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDateString(), frColor, bgColor, style, 9F, 20, 56, rowsize,ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDowStr(), frColor, bgColor, style, 9F, 75, 26, rowsize,ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel(data.TimeArea, frColor, bgColor, style, 9F, 100, 21, rowsize,ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel(data.SortID.ToString(), frColor, bgColor, style, 9F, 120, 41, rowsize,ContentAlignment.MiddleRight));\r
rowPanel.Controls.Add(new CustomLabel(data.Category, frColor, bgColor, style, 9F, 160, 81, rowsize));\r
-\r
- rowPanel.Controls.Add(new CustomLabel(data.Contents, frColor, bgColor, style, 9F, 240, 231, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.getForcastHourStr, frColor, bgColor, timeStyle, fontsize, 470, 51, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.ForecastMin.ToString(), frColor, bgColor, timeStyle, fontsize, 520, 51, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.RealMin.ToString(), frColor, bgColor, timeStyle, fontsize, 570, 51, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.StartTime.ToString(), frColor, bgColor, style, 9F, 620, 61, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel(data.EndTime.ToString(), frColor, bgColor, style, 9F, 680, 61, rowsize));\r
- rowPanel.Controls.Add(new CustomLabel((data.IsRepeat == 1 ? "R" : ""), frColor, bgColor, style, 9F, 740, 21, rowsize));\r
+ rowPanel.Controls.Add(new CustomLabel(data.Contents, frColor, bgColor, style, 9F, 240, 211, rowsize));\r
+ rowPanel.Controls.Add(new CustomLabel(data.getForcastHourStr, frColor, bgColor, timeStyle, fontsize, 450, 51, rowsize,ContentAlignment.MiddleRight));\r
+ rowPanel.Controls.Add(new CustomLabel(data.ForecastMin.ToString(), frColor, bgColor, timeStyle, fontsize, 500, 51, rowsize,ContentAlignment.MiddleRight));\r
+ rowPanel.Controls.Add(new CustomLabel(data.RealMin.ToString(), frColor, bgColor, timeStyle, fontsize, 550, 51, rowsize,ContentAlignment.MiddleRight));\r
+ rowPanel.Controls.Add(new CustomLabel(data.StartTime.ToString(), frColor, bgColor, style, 9F, 600, 61, rowsize,ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel(data.EndTime.ToString(), frColor, bgColor, style, 9F, 660, 61, rowsize,ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel((data.IsRepeat == 1 ? "R" : ""), frColor, bgColor, style, 9F, 720, 21, rowsize,ContentAlignment.MiddleCenter));\r
+ rowPanel.Controls.Add(new CustomLabel((data.HasComment==1 ? "*" : ""), frColor, bgColor, style, 9F, 740, 21, rowsize,ContentAlignment.MiddleCenter));\r
\r
rowPanel.Location = new Point(0, point);\r
rowPanel.Size = new Size(761, rowsize);\r
sqlList.Add(new MultiSQLRunnningBean(SqlDictionary.insertTimeArea, argList));\r
}\r
\r
- AsuradaDBConnection.getObject.updateData(sqlList);\r
+ TaskDBConnection.Connection.updateData(sqlList);\r
\r
this.Close();\r
}\r