OSDN Git Service

version 1.1
authorAndouTomo <tomando.clar02@gmail.com>
Wed, 30 Jul 2014 09:29:06 +0000 (18:29 +0900)
committerAndouTomo <tomando.clar02@gmail.com>
Wed, 30 Jul 2014 09:29:06 +0000 (18:29 +0900)
ListALL ListRemain ListGoing それぞれのコマンドを追加
バッチ機能実装
addコマンド実行時に、実時間からタイムエリアを算出するロジックを実装

メモリリーク対策>
List時に件数が500件を超える場合に警告
パネルのクリア時にオブジェクトを消去する処理を追加

プロジェクトの追加
タグの追加
チェックコマンド(開始=終了としてタスク終了する)を追加
レポートコマンド(開始+終了の自動処理)を追加
項目の並び順調整

34 files changed:
KyberNetes/Kybernetes.csproj
KyberNetes/Properties/AssemblyInfo.cs
KyberNetes/bin/Release/setting.db
KyberNetes/bin/Release/user.db
KyberNetes/command/CRUD/AddCommand.cs
KyberNetes/command/CRUD/ListAllCommandArg.cs [new file with mode: 0644]
KyberNetes/command/CRUD/ListCommand.cs
KyberNetes/command/CRUD/ListCommandArg.cs
KyberNetes/command/CRUD/ListGoingCommandArg.cs [new file with mode: 0644]
KyberNetes/command/CRUD/ListRemainCommandArg.cs [new file with mode: 0644]
KyberNetes/command/Control/AddProjectCommand.cs [new file with mode: 0644]
KyberNetes/command/Control/AddProjectCommandArg.cs [new file with mode: 0644]
KyberNetes/command/Control/AddTagCommand.cs [new file with mode: 0644]
KyberNetes/command/Control/AddTagCommandArg.cs [new file with mode: 0644]
KyberNetes/command/Control/CheckCommand.cs [new file with mode: 0644]
KyberNetes/command/Control/CheckCommandArg.cs [new file with mode: 0644]
KyberNetes/command/Control/ClearTagCommand.cs [new file with mode: 0644]
KyberNetes/command/Control/ClearTagCommandArg.cs [new file with mode: 0644]
KyberNetes/command/Control/ReportCommand.cs [new file with mode: 0644]
KyberNetes/command/Control/ReportCommandArg.cs [new file with mode: 0644]
KyberNetes/command/batch/batchCommand.cs [new file with mode: 0644]
KyberNetes/command/batch/beditCommand.cs [new file with mode: 0644]
KyberNetes/command/reference/ShowCommand.cs
KyberNetes/data/DAO/TaskData.cs
KyberNetes/data/accessor/SettingDataAccessor.cs
KyberNetes/data/accessor/TaskDataAccessor.cs
KyberNetes/data/accessor/TimeAreaDataAccessor.cs
KyberNetes/data/connection/SqlDictionary.Designer.cs
KyberNetes/data/connection/SqlDictionary.resx
KyberNetes/view/BaseForm.Designer.cs
KyberNetes/view/BaseForm.cs
KyberNetes/view/CaptionPanelController.cs
KyberNetes/view/PanelController.cs
kybernetes_prj.suo

index b361e17..02e7afe 100644 (file)
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\r
     <TargetFrameworkProfile>Client</TargetFrameworkProfile>\r
     <FileAlignment>512</FileAlignment>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>1</ApplicationRevision>\r
+    <ApplicationVersion>1.1.1.%2a</ApplicationVersion>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <PublishWizardCompleted>true</PublishWizardCompleted>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">\r
     <PlatformTarget>x86</PlatformTarget>\r
@@ -20,7 +36,7 @@
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
     <OutputPath>bin\Debug\</OutputPath>\r
-    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
+    <DefineConstants>DEBUG</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
     <DebugType>pdbonly</DebugType>\r
     <Optimize>true</Optimize>\r
     <OutputPath>bin\Release\</OutputPath>\r
-    <DefineConstants>TRACE</DefineConstants>\r
+    <DefineConstants>\r
+    </DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <PropertyGroup>\r
     <ApplicationIcon>kybernetes_icon.ico</ApplicationIcon>\r
   </PropertyGroup>\r
+  <PropertyGroup>\r
+    <ManifestCertificateThumbprint>45EBB91A83EEF90DB270B298077A444383E3865C</ManifestCertificateThumbprint>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <ManifestKeyFile>Kybernetes_TemporaryKey.pfx</ManifestKeyFile>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <GenerateManifests>true</GenerateManifests>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <TargetZone>LocalIntranet</TargetZone>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <ApplicationManifest>Properties\app.manifest</ApplicationManifest>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <SignManifests>true</SignManifests>\r
+  </PropertyGroup>\r
   <ItemGroup>\r
     <Reference Include="System" />\r
     <Reference Include="System.Core" />\r
     <Reference Include="System.Xml" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+    <Compile Include="command\batch\batchCommand.cs" />\r
+    <Compile Include="command\batch\beditCommand.cs" />\r
+    <Compile Include="command\Control\AddProjectCommand.cs" />\r
+    <Compile Include="command\Control\AddProjectCommandArg.cs" />\r
+    <Compile Include="command\Control\AddTagCommand.cs" />\r
+    <Compile Include="command\Control\AddTagCommandArg.cs" />\r
     <Compile Include="command\Control\ChAreaCommand.cs" />\r
     <Compile Include="command\Control\ChAreaCommandArg.cs" />\r
+    <Compile Include="command\Control\CheckCommand.cs" />\r
+    <Compile Include="command\Control\CheckCommandArg.cs" />\r
     <Compile Include="command\Control\ChnumCommand.cs" />\r
     <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\ClearTagCommand.cs" />\r
+    <Compile Include="command\Control\ClearTagCommandArg.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\EndCommandArg.cs" />\r
     <Compile Include="command\Control\RepeatCommand.cs" />\r
     <Compile Include="command\Control\RepeatCommandArg.cs" />\r
+    <Compile Include="command\Control\ReportCommand.cs" />\r
+    <Compile Include="command\Control\ReportCommandArg.cs" />\r
     <Compile Include="command\Control\StartCommand.cs" />\r
     <Compile Include="command\Control\StartCommandArg.cs" />\r
     <Compile Include="command\CRUD\AddCommand.cs" />\r
     <Compile Include="command\CRUD\AddCommandArg.cs" />\r
     <Compile Include="command\CRUD\DeleteCommand.cs" />\r
     <Compile Include="command\CRUD\DeleteCommandArg.cs" />\r
+    <Compile Include="command\CRUD\ListAllCommandArg.cs" />\r
     <Compile Include="command\CRUD\ListCommand.cs" />\r
     <Compile Include="command\CRUD\ListCommandArg.cs" />\r
+    <Compile Include="command\CRUD\ListGoingCommandArg.cs" />\r
+    <Compile Include="command\CRUD\ListRemainCommandArg.cs" />\r
     <Compile Include="command\CRUD\LongListCommand.cs" />\r
     <Compile Include="command\CRUD\RenumCommand.cs" />\r
     <Compile Include="command\CRUD\UpdateCommand.cs" />\r
     <EmbeddedResource Include="view\TimeAreaSetting.resx">\r
       <DependentUpon>TimeAreaSetting.cs</DependentUpon>\r
     </EmbeddedResource>\r
+    <None Include="Kybernetes_TemporaryKey.pfx" />\r
+    <None Include="Properties\app.manifest" />\r
     <None Include="Properties\Settings.settings">\r
       <Generator>SettingsSingleFileGenerator</Generator>\r
       <LastGenOutput>Settings.Designer.cs</LastGenOutput>\r
   <ItemGroup>\r
     <Content Include="kybernetes_icon.ico" />\r
   </ItemGroup>\r
+  <ItemGroup>\r
+    <BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">\r
+      <Visible>False</Visible>\r
+      <ProductName>Microsoft .NET Framework 4 Client Profile %28x86 および x64%29</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+      <ProductName>Windows インストーラー 3.1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+  </ItemGroup>\r
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
        Other similar extension points exist, see Microsoft.Common.targets.\r
index 669c1af..7ed851d 100644 (file)
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を \r
 // 既定値にすることができます:\r
 // [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("1.1.0.4")]\r
-[assembly: AssemblyFileVersion("1.1.0.4")]\r
+[assembly: AssemblyVersion("1.1.1.0")]\r
+[assembly: AssemblyFileVersion("1.1.1.0")]\r
index b9a0e79..72d9975 100644 (file)
Binary files a/KyberNetes/bin/Release/setting.db and b/KyberNetes/bin/Release/setting.db differ
index 0b478f9..2099c18 100644 (file)
Binary files a/KyberNetes/bin/Release/user.db and b/KyberNetes/bin/Release/user.db differ
index 7e11c44..801f7c9 100644 (file)
@@ -3,6 +3,7 @@ using com.andoutomo.kybernetes.data.accessor;
 using com.andoutomo.kybernetes.data.DAO;\r
 using System.Collections.Generic;\r
 using System.Windows.Forms;\r
+using com.andoutomo.kybernetes.data;\r
 \r
 namespace com.andoutomo.kybernetes.command\r
 {\r
@@ -51,7 +52,12 @@ namespace com.andoutomo.kybernetes.command
             }\r
             if (data.TimeArea == null)\r
             {\r
-                string defaultTimeArea = SettingDataAccessor.getObject.getDefaultTimeArea();\r
+                TimeComponent now = TimeComponent.justNow();\r
+                string defaultTimeArea = TimeAreaDataAccessor.getObject.getDefaultTimeArea(now);\r
+                if (defaultTimeArea == null || defaultTimeArea == string.Empty)\r
+                {\r
+                    defaultTimeArea = SettingDataAccessor.getObject.getDefaultTimeArea();\r
+                }\r
                 string wkTimeArea = form.showInputBox("タイムエリアを選択してください(A-Z)",defaultTimeArea);\r
                 \r
                 if (wkTimeArea == null || wkTimeArea == string.Empty)\r
diff --git a/KyberNetes/command/CRUD/ListAllCommandArg.cs b/KyberNetes/command/CRUD/ListAllCommandArg.cs
new file mode 100644 (file)
index 0000000..eda5370
--- /dev/null
@@ -0,0 +1,18 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.command.CRUD\r
+{\r
+    class ListAllCommandArg:ListCommandArg\r
+    {\r
+        internal override bool SearchAll\r
+        {\r
+            get\r
+            {\r
+                return true;\r
+            }\r
+        }\r
+    }\r
+}\r
index 7134425..77f8a09 100644 (file)
@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using com.andoutomo.kybernetes.data.accessor;\r
 using com.andoutomo.kybernetes.data;\r
 using com.andoutomo.kybernetes.data.DAO;\r
+using com.andoutomo.kybernetes.view;\r
 \r
 namespace com.andoutomo.kybernetes.command\r
 {\r
@@ -24,14 +25,29 @@ namespace com.andoutomo.kybernetes.command
                 {\r
                     dataList = dataAccess.getRemainTaskList();\r
                 }\r
+                else if (arguments.SearchGoing)\r
+                {\r
+                    dataList = dataAccess.getGoingTaskList();\r
+                }\r
                 else if (searchDate != null)\r
                 {\r
                     dataList = dataAccess.getDailyTaskList(searchDate);\r
                 }\r
+\r
                 else\r
                 {\r
                     dataList = dataAccess.getToDayTaskList();\r
                 }\r
+                if (dataList.Count > 500)\r
+                {\r
+                    if (YesNoDialog.show("件数が500件を超えています。表示に時間がかかりますがよろしいでしょうか?") == false)\r
+                    {\r
+                        message = "表示を中止しました。なお大量タスク表示の際はexpの使用をおすすめします。";\r
+                        return true;\r
+                    }\r
+                }\r
+\r
+\r
             form.clearPanel();\r
             foreach (TaskData data in dataList)\r
             {\r
@@ -39,12 +55,13 @@ namespace com.andoutomo.kybernetes.command
                 form.addPanel(data);\r
             }\r
 \r
+            message = string.Empty;\r
             return true;\r
         }\r
-\r
+        string message;\r
         protected override string turnMessage()\r
         {\r
-            return string.Empty;\r
+            return message;\r
         }\r
 \r
         protected override string turnErrorMessage()\r
index 6c6b2bb..ee02623 100644 (file)
@@ -12,17 +12,21 @@ namespace com.andoutomo.kybernetes.command
             get { return searchDateInner; }\r
         }\r
 \r
-        internal bool SearchAll\r
+        internal virtual bool SearchAll\r
         {\r
             get;\r
             private set;\r
         }\r
-        internal bool SearchRemain\r
+        internal virtual bool SearchRemain\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        internal virtual bool SearchGoing\r
         {\r
             get;\r
             private set;\r
         }\r
-\r
         public void split(string arguments)\r
         {\r
             string[] spaceSplitData = arguments.Split(' ');\r
@@ -37,17 +41,25 @@ namespace com.andoutomo.kybernetes.command
                 {\r
                     SearchAll = true;\r
                     SearchRemain = false;\r
+                    SearchGoing = false;\r
                 }\r
                 else if (spaceSplitData[1].ToLower() == "remain")\r
                 {\r
                     SearchAll = false;\r
                     SearchRemain = true;\r
-\r
+                    SearchGoing = false;\r
+                }\r
+                else if (spaceSplitData[1].ToLower() == "going")\r
+                {\r
+                    SearchAll = false;\r
+                    SearchRemain = false;\r
+                    SearchGoing = true;\r
                 }\r
                 else\r
                 {\r
                     SearchAll = false;\r
                     SearchRemain = false;\r
+                    SearchGoing = false;\r
                     searchDateInner = new DateComponent(spaceSplitData[1]);\r
                 }\r
 \r
diff --git a/KyberNetes/command/CRUD/ListGoingCommandArg.cs b/KyberNetes/command/CRUD/ListGoingCommandArg.cs
new file mode 100644 (file)
index 0000000..eefbe34
--- /dev/null
@@ -0,0 +1,18 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.command.CRUD\r
+{\r
+    class ListGoingCommandArg:ListCommandArg\r
+    {\r
+        internal override bool SearchGoing\r
+        {\r
+            get\r
+            {\r
+                return true;\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/CRUD/ListRemainCommandArg.cs b/KyberNetes/command/CRUD/ListRemainCommandArg.cs
new file mode 100644 (file)
index 0000000..4fe3b9b
--- /dev/null
@@ -0,0 +1,18 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.command.CRUD\r
+{\r
+    class ListRemainCommandArg:ListCommandArg\r
+    {\r
+        internal override bool SearchRemain\r
+        {\r
+            get\r
+            {\r
+                return true;\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/Control/AddProjectCommand.cs b/KyberNetes/command/Control/AddProjectCommand.cs
new file mode 100644 (file)
index 0000000..d88a921
--- /dev/null
@@ -0,0 +1,55 @@
+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 AddProjectCommand:AbCommand\r
+    {\r
+        string message;\r
+        protected override bool execute()\r
+        {\r
+            AddProjectCommandArg param = (AddProjectCommandArg)argument;\r
+            string wkStr;\r
+            if (param.useDialog)\r
+            {\r
+                List<SimpleDataBean> beanList =TaskDataAccessor.getObject.getProjectList();\r
+                wkStr = form.showDropBoxInputBox(beanList, "プロジェクトを入力してください。");\r
+\r
+                if (wkStr == null)\r
+                {\r
+                    message = "処理を中断しました。";\r
+                    return true;\r
+                }\r
+            }\r
+            else\r
+            {\r
+                wkStr = param.prjName;\r
+            }\r
+            message = "プロジェクトを設定しました。";\r
+            return TaskDataAccessor.getObject.updateProjectofTask(param.sortID,wkStr);\r
+        }\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            return message;\r
+        }\r
+\r
+        protected override string turnErrorMessage()\r
+        {\r
+            if (string.IsNullOrEmpty(message))\r
+            {\r
+                return base.DefaultErrorMessage;\r
+            }\r
+            return message;\r
+        }\r
+\r
+        protected override string turnSplitErrorMessage()\r
+        {\r
+            return base.DefaultSplitErrorMessage;\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/Control/AddProjectCommandArg.cs b/KyberNetes/command/Control/AddProjectCommandArg.cs
new file mode 100644 (file)
index 0000000..d20bd65
--- /dev/null
@@ -0,0 +1,43 @@
+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.Control\r
+{\r
+    class AddProjectCommandArg:StandardCommandArg\r
+    {\r
+        internal bool useDialog\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        internal string prjName\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        protected override void split()\r
+        {\r
+            \r
+            if (splitData.Length < 2)\r
+            {\r
+                isValid = false;\r
+                return;\r
+            }\r
+            if (splitData.Length == 2)\r
+            {\r
+                isValid = true;\r
+                useDialog = true;\r
+\r
+            }\r
+            else\r
+            {\r
+                isValid = true;\r
+                useDialog = false;\r
+                prjName = splitData[2];\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/Control/AddTagCommand.cs b/KyberNetes/command/Control/AddTagCommand.cs
new file mode 100644 (file)
index 0000000..e0bfa14
--- /dev/null
@@ -0,0 +1,56 @@
+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 AddTagCommand:AbCommand\r
+    {\r
+        string message;\r
+        protected override bool execute()\r
+        {\r
+            AddTagCommandArg param = (AddTagCommandArg)argument;\r
+            TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
+            string wkStr;\r
+            if (param.useDialog)\r
+            {\r
+                List<SimpleDataBean> beanList = accessor.getTagList();\r
+                wkStr = form.showDropBoxInputBox(beanList, "タグを入力してください。");\r
+\r
+                if (wkStr == null)\r
+                {\r
+                    message = "処理を中断しました。";\r
+                    return false;\r
+                }\r
+            }\r
+            else\r
+            {\r
+                wkStr = param.tagName;\r
+            }\r
+            message = "タグを追加しました。";\r
+            return accessor.updateTagofTask(param.sortID, wkStr);\r
+        }\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            if (string.IsNullOrEmpty(message))\r
+            {\r
+                return base.DefaultNormalMessage;\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
diff --git a/KyberNetes/command/Control/AddTagCommandArg.cs b/KyberNetes/command/Control/AddTagCommandArg.cs
new file mode 100644 (file)
index 0000000..0076080
--- /dev/null
@@ -0,0 +1,43 @@
+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.Control\r
+{\r
+    class AddTagCommandArg:StandardCommandArg\r
+    {\r
+        internal bool useDialog\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        internal string tagName\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        protected override void split()\r
+        {\r
+\r
+            if (splitData.Length < 2)\r
+            {\r
+                isValid = false;\r
+                return;\r
+            }\r
+            if (splitData.Length == 2)\r
+            {\r
+                isValid = true;\r
+                useDialog = true;\r
+\r
+            }\r
+            else\r
+            {\r
+                isValid = true;\r
+                useDialog = false;\r
+                tagName = splitData[2];\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/Control/CheckCommand.cs b/KyberNetes/command/Control/CheckCommand.cs
new file mode 100644 (file)
index 0000000..dffa053
--- /dev/null
@@ -0,0 +1,136 @@
+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;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+    class CheckCommand:AbCommand\r
+    {\r
+        CheckCommandArg param;\r
+        protected override bool execute()\r
+        {\r
+            TaskDataAccessor accessor = TaskDataAccessor.getObject;\r
+\r
+            param = (CheckCommandArg)argument;\r
+            TaskData target = accessor.getTask(param.sortID);\r
+            if (param.AutoMode)\r
+            {\r
+\r
+                if (target != null)\r
+                {\r
+                    TimeComponent lastEndtime = accessor.getNextStartTime(target.DoDate);\r
+                    if (lastEndtime != null && lastEndtime.IsValid)\r
+                    {\r
+                        if (accessor.startTask(target.SortID, lastEndtime))\r
+                        {\r
+                            if (accessor.endTask(target.SortID, lastEndtime))\r
+                            {\r
+                                return repeatCheck(target);\r
+                            }\r
+                            else\r
+                            {\r
+                                return true;\r
+                            }\r
+                        }\r
+                        else\r
+                        {\r
+                            return false;\r
+                        }\r
+                    }\r
+                    else\r
+                    {\r
+                        message = "終了しているタスクが無いため、自動設定できません。最初は時刻を手動設定してください。";\r
+                        return false;\r
+                    }\r
+                }\r
+                else\r
+                {\r
+                    base.errorType = ErrorType.DataNotFound;\r
+                    return false;\r
+                }\r
+            }\r
+            else\r
+            {\r
+                if (accessor.startTask(param.sortID, param.reportTime))\r
+                {\r
+                    if (accessor.endTask(param.sortID, param.reportTime))\r
+                    {\r
+                        return repeatCheck(target);\r
+                    }\r
+                    else\r
+                    {\r
+                        return false;\r
+                    }\r
+                }\r
+                else\r
+                {\r
+                    return false;\r
+                }\r
+            }\r
+        }\r
+        string message;\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            return "タスク " + param.sortID + " をチェック完了しました。";\r
+        }\r
+\r
+        protected override string turnErrorMessage()\r
+        {\r
+            if (string.IsNullOrEmpty(message))\r
+            {\r
+                return base.DefaultErrorMessage;\r
+            }\r
+            return message;\r
+        }\r
+\r
+        protected override string turnSplitErrorMessage()\r
+        {\r
+            return base.DefaultSplitErrorMessage;\r
+        }\r
+        /// <summary>\r
+        /// \r
+        /// </summary>\r
+        /// <param name="_newData"></param>\r
+        /// <returns></returns>\r
+        private bool repeatCheck(TaskData _newData)\r
+        {\r
+            if (TaskDataAccessor.getObject.isRepeatTask(param.sortID))\r
+            {\r
+                string nextDay = form.showInputBox("次回は何日後ですか?0の場合は繰り返しません。", "1");\r
+                if (nextDay != "0")\r
+                {\r
+                    _newData.DoDate.addDate(int.Parse(nextDay));\r
+                    _newData.TaskID = TaskDataAccessor.getObject.getMaxTaskID();\r
+                    _newData.SortID = TaskDataAccessor.getObject.getMaxSortID();\r
+\r
+\r
+                    //_newData.CategID = CategoryDataAccessor.getObject.getCategoryFromName(_newData.Category).CategId;\r
+\r
+                    TaskDataAccessor.getObject.insertTask(_newData);\r
+\r
+                    //リピート対象としたタスクは複製後もリピート対象とする。\r
+                    TaskDataAccessor.getObject.setRepeatTask(_newData.SortID, true);\r
+\r
+                    message = "タスク " + param.sortID + " を終了します。次回は" + _newData.DoDate.getDateString() + "です。";\r
+                    return true;\r
+                }\r
+                else\r
+                {\r
+                    //リピートしないと判断したならそこで終了。\r
+                    return true;\r
+                }\r
+            }\r
+            else\r
+            {\r
+                //リピート対象でないなら何もしない\r
+                return true;\r
+            }\r
+        }\r
+        \r
+    }\r
+}\r
diff --git a/KyberNetes/command/Control/CheckCommandArg.cs b/KyberNetes/command/Control/CheckCommandArg.cs
new file mode 100644 (file)
index 0000000..bd8e61d
--- /dev/null
@@ -0,0 +1,48 @@
+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;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+    class CheckCommandArg : StandardCommandArg\r
+    {\r
+        internal TimeComponent reportTime\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        internal bool AutoMode\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        protected override void split()\r
+        {\r
+\r
+            if (splitData.Length == 2)\r
+            {\r
+                //単純にコマンドと番号だけの場合、直前のEND時間を入力する\r
+                AutoMode = true;\r
+                return;\r
+            }\r
+\r
+            if (splitData[2].ToLower() == "now")\r
+            {\r
+                reportTime = TimeComponent.justNow();\r
+                AutoMode = false;\r
+            }\r
+            else if (splitData[2].Contains(":"))\r
+            {\r
+                reportTime = new TimeComponent(splitData[2]);\r
+                AutoMode = false;\r
+            }\r
+            else\r
+            {\r
+                isValid = false;\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/Control/ClearTagCommand.cs b/KyberNetes/command/Control/ClearTagCommand.cs
new file mode 100644 (file)
index 0000000..231ad95
--- /dev/null
@@ -0,0 +1,35 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+    class ClearTagCommand:AbCommand\r
+    {\r
+\r
+        protected override bool execute()\r
+        {\r
+            ClearTagCommandArg param = (ClearTagCommandArg)argument;\r
+            int targetSortID = param.sortID;\r
+\r
+            return TaskDataAccessor.getObject.clearTagOfTask(targetSortID);\r
+        }\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            return "タグをクリアしました。";\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
diff --git a/KyberNetes/command/Control/ClearTagCommandArg.cs b/KyberNetes/command/Control/ClearTagCommandArg.cs
new file mode 100644 (file)
index 0000000..509a7fa
--- /dev/null
@@ -0,0 +1,16 @@
+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.Control\r
+{\r
+    class ClearTagCommandArg:StandardCommandArg\r
+    {\r
+        protected override void split()\r
+        {\r
+            return;\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/Control/ReportCommand.cs b/KyberNetes/command/Control/ReportCommand.cs
new file mode 100644 (file)
index 0000000..102d98c
--- /dev/null
@@ -0,0 +1,81 @@
+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.data;\r
+using com.andoutomo.kybernetes.view;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+    class ReportCommand:AbCommand\r
+    {\r
+        string message;\r
+        ReportCommandArg param;\r
+        protected override bool execute()\r
+        {\r
+            param = (ReportCommandArg)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
+                TaskDataAccessor.getObject.startTask(_newData.SortID, TaskDataAccessor.getObject.getNextStartTime(_newData.DoDate));\r
+            }\r
+            if(_newData.EndTime != null && _newData.EndTime.IsValid == true){\r
+                if (!YesNoDialog.show("本タスクは既に終了しています。終了時間を更新しますか?"))\r
+                {\r
+                    message = "処理を中断しました。";\r
+                    return true;\r
+                }\r
+            }\r
+            if (TaskDataAccessor.getObject.endTask(param.sortID, param.reportTime))\r
+            {\r
+                if (TaskDataAccessor.getObject.isRepeatTask(param.sortID))\r
+                {\r
+                    string nextDay = form.showInputBox("次回は何日後ですか?0の場合は繰り返しません。","1");\r
+                    if (nextDay != "0")\r
+                    {\r
+                        _newData.DoDate.addDate(int.Parse(nextDay));\r
+                        _newData.TaskID = TaskDataAccessor.getObject.getMaxTaskID();\r
+                        _newData.SortID = TaskDataAccessor.getObject.getMaxSortID();\r
+\r
+\r
+                        //_newData.CategID = CategoryDataAccessor.getObject.getCategoryFromName(_newData.Category).CategId;\r
+\r
+                        TaskDataAccessor.getObject.insertTask(_newData);\r
+\r
+                        //リピート対象としたタスクは複製後もリピート対象とする。\r
+                        TaskDataAccessor.getObject.setRepeatTask(_newData.SortID, true);\r
+\r
+                        message = "タスク " + param.sortID + " を終了します。次回は" + _newData.DoDate.getDateString() + "です。";\r
+                        return true;\r
+                    }\r
+                }\r
+                message = "タスク " + param.sortID + " を終了します。";\r
+                return true;\r
+            }\r
+            return false;\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
diff --git a/KyberNetes/command/Control/ReportCommandArg.cs b/KyberNetes/command/Control/ReportCommandArg.cs
new file mode 100644 (file)
index 0000000..b860208
--- /dev/null
@@ -0,0 +1,44 @@
+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;\r
+\r
+namespace com.andoutomo.kybernetes.command.Control\r
+{\r
+    class ReportCommandArg:StandardCommandArg\r
+    {\r
+        internal TimeComponent reportTime\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        internal bool AutoMode\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        protected override void split()\r
+        {\r
+\r
+            if (splitData.Length == 2)\r
+            {\r
+                //単純にコマンドと番号だけの場合、直前のEND時間を入力する\r
+                AutoMode = true;\r
+                reportTime = TimeComponent.justNow();\r
+                return;\r
+            }\r
+\r
+            if (splitData[2].Contains(":"))\r
+            {\r
+                reportTime = new TimeComponent(splitData[2]);\r
+                AutoMode = false;\r
+            }\r
+            else\r
+            {\r
+                isValid = false;\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/KyberNetes/command/batch/batchCommand.cs b/KyberNetes/command/batch/batchCommand.cs
new file mode 100644 (file)
index 0000000..fbeeb08
--- /dev/null
@@ -0,0 +1,49 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using com.andoutomo.kybernetes.control;\r
+using System.IO;\r
+\r
+namespace com.andoutomo.kybernetes.command.batch\r
+{\r
+    class batchCommand:AbCommand\r
+    {\r
+        protected override bool execute()\r
+        {\r
+            string strCmd="";\r
+            try\r
+            {\r
+                using (StreamReader sr = new StreamReader(\r
+                    "batch.kysh", Encoding.GetEncoding("Shift_JIS")))\r
+                {\r
+\r
+                    while ((strCmd = sr.ReadLine()) != null)\r
+                    {\r
+                        form.addText(CmdDispatcher.getDispatcher(form).dispatch(strCmd));\r
+                    }\r
+                }\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                throw new KybernetesApplicationException(e);\r
+            }\r
+            return true;\r
+        }\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            return "バッチ処理が完了しました。";\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
diff --git a/KyberNetes/command/batch/beditCommand.cs b/KyberNetes/command/batch/beditCommand.cs
new file mode 100644 (file)
index 0000000..32d712e
--- /dev/null
@@ -0,0 +1,32 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+\r
+namespace com.andoutomo.kybernetes.command.batch\r
+{\r
+    class beditCommand:AbCommand\r
+    {\r
+        protected override bool execute()\r
+        {\r
+            System.Diagnostics.Process.Start("notepad.exe",@"""batch.kysh""");\r
+\r
+            return true;\r
+        }\r
+\r
+        protected override string turnMessage()\r
+        {\r
+            return base.DefaultNormalMessage;\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
index 14ad8e1..7ac9ed6 100644 (file)
@@ -23,7 +23,10 @@ namespace com.andoutomo.kybernetes.command.reference
             }\r
             List<string> resultList = new List<string>();\r
 \r
+            //題名(作業名とカテゴリ)\r
             resultList.Add(data.SortID + " " + data.Contents + " (" + data.Category + ")");\r
+\r
+            //予測と実績\r
             string wkForecastReal = string.Empty;\r
             wkForecastReal += "予測 " + data.ForecastMin + "分";\r
             if (data.RealMin > 0)\r
@@ -34,6 +37,7 @@ namespace com.andoutomo.kybernetes.command.reference
             resultList.Add(wkForecastReal);\r
             string wkStartEnd = string.Empty;\r
 \r
+            //開始と終了\r
             if (data.StartTime.IsValid)\r
             {\r
                 wkStartEnd += data.StartTime.ToString() + "開始";\r
@@ -47,6 +51,21 @@ namespace com.andoutomo.kybernetes.command.reference
                 resultList.Add(wkStartEnd);\r
             }\r
 \r
+            //プロジェクトとタグ\r
+            string wkPrjAndTags = string.Empty;\r
+            if (!string.IsNullOrEmpty(data.Project))\r
+            {\r
+                wkPrjAndTags += "プロジェクト:" + data.Project;\r
+            }\r
+            if (!string.IsNullOrEmpty(data.Tags))\r
+            {\r
+                wkPrjAndTags += " タグ:" + data.Tags;\r
+            }\r
+            if (!string.IsNullOrEmpty(wkPrjAndTags))\r
+            {\r
+                resultList.Add(wkPrjAndTags);\r
+            }\r
+\r
             //Comment\r
             List<CommentData> comments = CommentDataAccessor.getObject.getComment(data.TaskID);\r
             foreach (CommentData com in comments)\r
index 8cc7b47..5172c09 100644 (file)
@@ -20,6 +20,11 @@ namespace com.andoutomo.kybernetes.data.DAO
         private int hasComment;\r
 \r
         private int categID;\r
+\r
+\r
+        private string project;\r
+        private string tags;\r
+\r
         \r
         internal int TaskID\r
         {\r
@@ -172,7 +177,7 @@ namespace com.andoutomo.kybernetes.data.DAO
         {\r
             get\r
             {\r
-                return "日付,曜,@,ID,カテゴリ,内容,予測時間(H),予測時間(m),実績,開始,終了";\r
+                return "日付,曜,@,ID,カテゴリ,内容,予測時間(H),予測時間(m),実績,開始,終了,プロジェクト,タグ";\r
             }\r
         }\r
         internal string CSVData\r
@@ -190,7 +195,9 @@ namespace com.andoutomo.kybernetes.data.DAO
                 builder.Append(this.forecastMin).Append(",");\r
                 builder.Append(this.RealMin).Append(",");\r
                 builder.Append(this.startTime.ToString()).Append(",");\r
-                builder.Append(this.endTime.ToString());\r
+                builder.Append(this.endTime.ToString()).Append(",");\r
+                builder.Append(this.project).Append(",");\r
+                builder.Append(this.tags.Replace(',','|'));//タグはカンマを変換する\r
                 return builder.ToString(); \r
             }\r
         }\r
@@ -200,5 +207,16 @@ namespace com.andoutomo.kybernetes.data.DAO
             get { return hasComment; }\r
             set { this.hasComment = value; }\r
         }\r
+\r
+        internal string Project\r
+        {\r
+            get { return project; }\r
+            set { this.project = value; }\r
+        }\r
+        internal string Tags\r
+        {\r
+            get { return tags; }\r
+            set { this.tags = value; }\r
+        }\r
     }\r
 }\r
index 71a3fab..58b49fa 100644 (file)
@@ -97,17 +97,18 @@ namespace com.andoutomo.kybernetes.data.accessor
         internal string getDefaultTimeArea()\r
         {\r
             string retStr = string.Empty;\r
-            TaskDBConnection.Connection.selectData("SELECT DEFAULTTIMEAREA FROM TBL_SETTING", \r
+            TaskDBConnection.Connection.selectData("SELECT DEFAULTTIMEAREA FROM TBL_SETTING",\r
                 (SQLiteDataReader reader) =>\r
-            {\r
-                if (reader.HasRows)\r
                 {\r
-                    reader.Read();\r
-                    retStr = reader["DEFAULTTIMEAREA"].ToString();\r
-                }\r
-            });\r
+                    if (reader.HasRows)\r
+                    {\r
+                        reader.Read();\r
+                        retStr = reader["DEFAULTTIMEAREA"].ToString();\r
+                    }\r
+                });\r
             return retStr;\r
         }\r
+\r
     }\r
 \r
 }\r
index a508c1a..13340dd 100644 (file)
@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Data.SQLite;\r
 using com.andoutomo.kybernetes.data.connection;\r
 using com.andoutomo.kybernetes.data.DAO;\r
+using System.Linq;\r
 \r
 \r
 namespace com.andoutomo.kybernetes.data.accessor\r
@@ -87,6 +88,8 @@ namespace com.andoutomo.kybernetes.data.accessor
                         data.StartTime = new TimeComponent(reader["STARTTIME"].ToString());\r
                         data.EndTime = new TimeComponent(reader["ENDTIME"].ToString());\r
                         data.IsRepeat = Convert.ToInt32(reader["REPEATFLG"].ToString());\r
+                        data.Project = reader["PROJECT"].ToString();\r
+                        data.Tags = reader["TAGS"].ToString();\r
                         \r
                     }\r
                 });\r
@@ -119,6 +122,8 @@ namespace com.andoutomo.kybernetes.data.accessor
                     data.EndTime = new TimeComponent(reader["ENDTIME"].ToString());\r
                     data.IsRepeat = Convert.ToInt32(reader["REPEATFLG"].ToString());\r
                     data.HasComment = Convert.ToInt32(reader["HASCOMMENT"].ToString());\r
+                    data.Project = reader["PROJECT"].ToString();\r
+                    data.Tags = reader["TAGS"].ToString();\r
                     if (data.Category != string.Empty)\r
                     {\r
                         data.BgColor = Convert.ToInt32(reader["BGCOLOR"].ToString());\r
@@ -391,6 +396,16 @@ namespace com.andoutomo.kybernetes.data.accessor
         {\r
             return getTaskList(SqlDictionary.getRemainList, new List<object>());\r
         }\r
+\r
+        /// <summary>\r
+        /// 今後のタスクをすべて表示します。\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        internal List<TaskData> getGoingTaskList()\r
+        {\r
+            return getTaskList(SqlDictionary.getGoingList, new List<object>());\r
+        }\r
+\r
         /// <summary>\r
         /// タスクの検索を行います。\r
         /// </summary>\r
@@ -400,7 +415,7 @@ namespace com.andoutomo.kybernetes.data.accessor
         {\r
             string wkSearchWord = "%" + searchWord + "%";\r
 \r
-            List<object> args = new List<object> { wkSearchWord ,wkSearchWord};\r
+            List<object> args = new List<object> { wkSearchWord ,wkSearchWord,wkSearchWord,wkSearchWord};\r
             return getTaskList(SqlDictionary.searchTasks, args);\r
         }\r
 \r
@@ -498,7 +513,7 @@ namespace com.andoutomo.kybernetes.data.accessor
         {\r
             List<object> paramList = new List<object>(){taskID};\r
             int retVal=0;\r
-            TaskDBConnection.Connection.selectData("SELECT SORTID FROM TBL_TASKS WHERE TASKID = ? ", paramList,\r
+            TaskDBConnection.Connection.selectData(SqlDictionary.getSortIDFromTaskID, paramList,\r
                 (SQLiteDataReader reader) =>\r
                 {\r
                     if (reader.HasRows)\r
@@ -509,5 +524,92 @@ namespace com.andoutomo.kybernetes.data.accessor
                 });\r
             return retVal;\r
         }\r
+        /// <summary>\r
+        /// 対象タスクのプロジェクトを更新します。\r
+        /// </summary>\r
+        /// <param name="targetSortID"></param>\r
+        /// <param name="projectName"></param>\r
+        /// <returns></returns>\r
+        internal bool updateProjectofTask(int targetSortID, string projectName)\r
+        {\r
+            List<object> paramList = new List<object>() { projectName, targetSortID };\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.updateProject, paramList);\r
+        }\r
+        /// <summary>\r
+        /// 現在登録されているプロジェクトを重複なしで取得します。\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        internal List<SimpleDataBean> getProjectList()\r
+        {\r
+            List<SimpleDataBean> retList = new List<SimpleDataBean>();\r
+            TaskDBConnection.Connection.selectData(SqlDictionary.findProject, \r
+                (SQLiteDataReader reader) =>\r
+            {\r
+                while (reader.Read())\r
+                {\r
+                    string prjName = reader["PROJECT"].ToString();\r
+                    if (!string.IsNullOrEmpty(prjName))\r
+                    {\r
+                        SimpleDataBean bean = new SimpleDataBean(prjName, prjName);\r
+                        retList.Add(bean);\r
+                    }\r
+                }\r
+            });\r
+            return retList;\r
+        }\r
+        /// <summary>\r
+        /// タスクにタグを付与します。\r
+        /// </summary>\r
+        /// <param name="targetSortID"></param>\r
+        /// <param name="tag"></param>\r
+        /// <returns></returns>\r
+        internal bool updateTagofTask(int targetSortID, string tag)\r
+        {\r
+            string tagLikeStr = '%' + tag + '%';\r
+            List<object> paramList = new List<object>() { tag, tagLikeStr, tag, targetSortID };\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.addTag, paramList);\r
+        }\r
+        /// <summary>\r
+        /// タグ一覧を取得します。取得時点でC#側でカンマ区切りを配慮して分解します。\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        internal List<SimpleDataBean> getTagList()\r
+        {\r
+            List<string> wkList = new List<string>();\r
+            TaskDBConnection.Connection.selectData(SqlDictionary.findTags,\r
+                (SQLiteDataReader reader) =>\r
+                {\r
+                    while (reader.Read())\r
+                    {\r
+                        string tagName = reader["TAGS"].ToString();\r
+                        foreach (string eachTag in tagName.Split(','))\r
+                        {\r
+                            wkList.Add(eachTag);\r
+                        }\r
+                    }\r
+                });\r
+\r
+            //重複を排除\r
+            string[] wkArray = wkList.Distinct().ToArray();\r
+\r
+            List<SimpleDataBean> retList = new List<SimpleDataBean>();\r
+            foreach (string tag in wkArray)\r
+            {\r
+                retList.Add(new SimpleDataBean(tag, tag));\r
+            }\r
+            return retList;\r
+            \r
+        }\r
+\r
+        /// <summary>\r
+        /// タグを全クリアします。\r
+        /// </summary>\r
+        /// <param name="targetSortID"></param>\r
+        /// <returns></returns>\r
+        internal bool clearTagOfTask(int targetSortID)\r
+        {\r
+            List<object> paramList = new List<object>() { targetSortID };\r
+            return TaskDBConnection.Connection.updateData(SqlDictionary.clearTags, paramList);\r
+        }\r
     }\r
 }\r
index ff875a3..fd7889a 100644 (file)
@@ -80,6 +80,28 @@ namespace com.andoutomo.kybernetes.data.accessor
             return retList;\r
         }\r
 \r
+        /// <summary>\r
+        /// 与えられた現時刻から該当するタイムエリアを算出します。\r
+        /// </summary>\r
+        /// <param name="now"></param>\r
+        /// <returns></returns>\r
+        internal string getDefaultTimeArea(TimeComponent now)\r
+        {\r
+            List<object> paramList = new List<object>();\r
+            paramList.Add(now.ToString());\r
+            paramList.Add(now.ToString());\r
 \r
+            string retStr = string.Empty;\r
+            TaskDBConnection.Connection.selectData(SqlDictionary.getDefaultTimeArea, paramList,\r
+                (SQLiteDataReader reader) =>\r
+                {\r
+                    if (reader.HasRows)\r
+                    {\r
+                        reader.Read();\r
+                        retStr = reader["TIMEAREA"].ToString();\r
+                    }\r
+                });\r
+            return retStr;\r
+        }\r
     }\r
 }\r
index ed12749..444a727 100644 (file)
@@ -61,6 +61,15 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
+        ///   update tbl_tasks set tags=(case when tags is null then ? else (case when tags like ? then tags else tags||&apos;,&apos;||? end ) end) where sortid=? に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string addTag {\r
+            get {\r
+                return ResourceManager.GetString("addTag", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
         ///   update tbl_tasks set timearea=? where sortid=? に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string changeAreaOfTask {\r
@@ -124,6 +133,15 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
+        ///   update tbl_tasks set tags=null where sortid=? に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string clearTags {\r
+            get {\r
+                return ResourceManager.GetString("clearTags", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
         ///   DELETE FROM TBL_COMMENT WHERE TASKID=? に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string clearTaskComment {\r
@@ -196,6 +214,24 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
+        ///   SELECT DISTINCT PROJECT FROM TBL_TASKS に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string findProject {\r
+            get {\r
+                return ResourceManager.GetString("findProject", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
+        ///   SELECT DISTINCT TAGS FROM TBL_TASKS に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string findTags {\r
+            get {\r
+                return ResourceManager.GetString("findTags", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
         ///   SELECT CategID,Category,BGColor,FRColor FROM tbl_category ORDER BY CategID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getALLCategory {\r
@@ -205,7 +241,7 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID に類似しているローカライズされた文字列を検索します。\r
+        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getAllList {\r
             get {\r
@@ -250,7 +286,7 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT WHERE DATE (DODATE) = DATE (? )  ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID に類似しているローカライズされた文字列を検索します。\r
+        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT WHERE DATE (DODATE) = DATE (? ) ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getDailyList {\r
             get {\r
@@ -259,6 +295,24 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
+        ///   SELECT TIMEAREA FROM TBL_TIMEAREA WHERE TIME(START)&lt;=TIME(?) AND TIME(?)&lt;TIME(END) に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string getDefaultTimeArea {\r
+            get {\r
+                return ResourceManager.GetString("getDefaultTimeArea", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
+        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT, PROJECT , TAGS FROM VW_TASKS_SORT  , TBL_SETTING S WHERE DATE (DODATE) &gt;= DATE (S.TODAY) ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string getGoingList {\r
+            get {\r
+                return ResourceManager.GetString("getGoingList", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
         ///   SELECT LOGMODE FROM TBL_SETTING に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getLogMode {\r
@@ -286,7 +340,7 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT ID,TASKID,CREATETIME,COMMENT FROM TBL_COMMENT WHERE date(CREATETIME) = (SELECT TODAY FROM TBL_SETTING) ORDER BY ID に類似しているローカライズされた文字列を検索します。\r
+        ///   SELECT C.ID,C.TASKID,C.CREATETIME,C.COMMENT FROM TBL_COMMENT C WHERE date(CREATETIME) = (SELECT TODAY FROM TBL_SETTING) or exists(SELECT TASKID FROM TBL_TASKS T WHERE T.TASKID = C.TASKID AND date(T.DODATE) =(SELECT TODAY FROM TBL_SETTING) ) ORDER BY ID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getMetaComment {\r
             get {\r
@@ -304,7 +358,7 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,T.CATEGID,C.CATEGORY,T.CONTENTS,T.FORCASTMIN,T.STARTTIME,T.ENDTIME,T.REPEATFLG FROM TBL_TASKS T LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID where T.SORTID = ? に類似しているローカライズされた文字列を検索します。\r
+        ///   SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,T.CATEGID,C.CATEGORY,T.CONTENTS,T.FORCASTMIN,T.STARTTIME,T.ENDTIME,T.REPEATFLG, T.PROJECT , T.TAGS FROM TBL_TASKS T LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID where T.SORTID = ? に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getOneTask {\r
             get {\r
@@ -313,10 +367,10 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT, TBL_SETTING S  WHERE\r
+        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT, TBL_SETTING S  WHERE\r
         ///  DATE (DODATE) = DATE (S.TODAY) \r
         ///  AND ENDTIME IS NULL \r
-        ///  AND STARTTIME IS NOT NULL ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID に類似しているローカライズされた文字列を検索します。\r
+        ///  AND STARTTIME IS NOT NULL ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getPwdList {\r
             get {\r
@@ -325,7 +379,7 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT WHERE ENDTIME IS NULL ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID に類似しているローカライズされた文字列を検索します。\r
+        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT, PROJECT , TAGS FROM VW_TASKS_SORT WHERE ENDTIME IS NULL ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getRemainList {\r
             get {\r
@@ -334,6 +388,15 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
+        ///   SELECT SORTID FROM TBL_TASKS WHERE TASKID = ? に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string getSortIDFromTaskID {\r
+            get {\r
+                return ResourceManager.GetString("getSortIDFromTaskID", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
         ///   SELECT TODAY FROM TBL_SETTING に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getToday {\r
@@ -343,7 +406,7 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT  , TBL_SETTING S WHERE DATE (DODATE) = DATE (S.TODAY) ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID に類似しているローカライズされた文字列を検索します。\r
+        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT, PROJECT , TAGS FROM VW_TASKS_SORT  , TBL_SETTING S WHERE DATE (DODATE) = DATE (S.TODAY) ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string getTodayList {\r
             get {\r
@@ -406,7 +469,7 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
-        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT  where CONTENTS LIKE ? OR Category LIKE ? ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID に類似しているローカライズされた文字列を検索します。\r
+        ///   SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT  where CONTENTS LIKE ? OR Category LIKE ? OR PROJECT LIKE ? OR TAGS LIKE ? ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string searchTasks {\r
             get {\r
@@ -442,6 +505,15 @@ namespace com.andoutomo.kybernetes.data.connection {
         }\r
         \r
         /// <summary>\r
+        ///   UPDATE TBL_TASKS SET PROJECT = ? WHERE SORTID= ? に類似しているローカライズされた文字列を検索します。\r
+        /// </summary>\r
+        internal static string updateProject {\r
+            get {\r
+                return ResourceManager.GetString("updateProject", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
         ///   update tbl_tasks set DODATE=date(?),TIMEAREA=?,CATEGID=?,CONTENTS=?,FORCASTMIN=? WHERE SORTID=? に類似しているローカライズされた文字列を検索します。\r
         /// </summary>\r
         internal static string updateTask {\r
index 482c2eb..5784839 100644 (file)
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
   </resheader>\r
   <data name="getAllList" xml:space="preserve">\r
-    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID</value>\r
+    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID</value>\r
     <comment>全タスクを表示します。</comment>\r
   </data>\r
   <data name="getCategoryFromCategName" xml:space="preserve">\r
     <comment>カテゴリ名からIDを逆引きします。</comment>\r
   </data>\r
   <data name="getDailyList" xml:space="preserve">\r
-    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT WHERE DATE (DODATE) = DATE (? )     ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID</value>\r
+    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT WHERE DATE (DODATE) = DATE (? ) ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID</value>\r
     <comment>指定された日付のタスクを取得します。</comment>\r
   </data>\r
   <data name="getMaxIDofTask" xml:space="preserve">\r
     <comment>タスクIDの最大値+1を求めます。</comment>\r
   </data>\r
   <data name="getRemainList" xml:space="preserve">\r
-    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT WHERE ENDTIME IS NULL ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID</value>\r
+    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT, PROJECT , TAGS FROM VW_TASKS_SORT WHERE ENDTIME IS NULL ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID</value>\r
     <comment>残り全タスクを表示します。</comment>\r
   </data>\r
   <data name="getTodayList" xml:space="preserve">\r
-    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT  , TBL_SETTING S WHERE DATE (DODATE) = DATE (S.TODAY) ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID</value>\r
+    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT, PROJECT , TAGS FROM VW_TASKS_SORT  , TBL_SETTING S WHERE DATE (DODATE) = DATE (S.TODAY) ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID</value>\r
     <comment>今日のタスクを取得します。</comment>\r
   </data>\r
   <data name="insertTask" xml:space="preserve">\r
     <comment>全カテゴリを抽出します。</comment>\r
   </data>\r
   <data name="getOneTask" xml:space="preserve">\r
-    <value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,T.CATEGID,C.CATEGORY,T.CONTENTS,T.FORCASTMIN,T.STARTTIME,T.ENDTIME,T.REPEATFLG FROM TBL_TASKS T LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID where T.SORTID = ?</value>\r
+    <value>SELECT T.TASKID,T.SORTID,T.DODATE,T.TIMEAREA,T.CATEGID,C.CATEGORY,T.CONTENTS,T.FORCASTMIN,T.STARTTIME,T.ENDTIME,T.REPEATFLG, T.PROJECT , T.TAGS FROM TBL_TASKS T LEFT OUTER JOIN tbl_category C ON C.CATEGID=T.CATEGID where T.SORTID = ?</value>\r
     <comment>IDを元にタスクを抽出します。</comment>\r
   </data>\r
   <data name="updateTask" xml:space="preserve">\r
     <comment>時間帯を追加します。</comment>\r
   </data>\r
   <data name="getPwdList" xml:space="preserve">\r
-    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT, TBL_SETTING S  WHERE\r
+    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT, TBL_SETTING S  WHERE\r
   DATE (DODATE) = DATE (S.TODAY) \r
   AND ENDTIME IS NULL \r
-  AND STARTTIME IS NOT NULL ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID</value>\r
+  AND STARTTIME IS NOT NULL ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID</value>\r
     <comment>実施中(StartしていてEndしていない)のタスクを抽出します。</comment>\r
   </data>\r
   <data name="changeAreaOfTask" xml:space="preserve">\r
     <comment>ソート番号全体を調整します。既に終了した過去分タスクはマイナス扱いとします。(こうすることで、新規発番されるタスクは過去分のソートIDの影響を受けなくなります。マイナス扱いなら最大値にはならないですからね。)</comment>\r
   </data>\r
   <data name="searchTasks" xml:space="preserve">\r
-    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT FROM VW_TASKS_SORT  where CONTENTS LIKE ? OR Category LIKE ? ORDER BY DATESORT,ENDTIMESORT,DODATE,TIMEAREA,STARTNULLSORT,STARTTIMESORT,SORTID</value>\r
+    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT , PROJECT , TAGS FROM VW_TASKS_SORT  where CONTENTS LIKE ? OR Category LIKE ? OR PROJECT LIKE ? OR TAGS LIKE ? ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID</value>\r
     <comment>与えられたキーワードをコンテンツに持つタスクを検索します。</comment>\r
   </data>\r
   <data name="clearMetaComment" xml:space="preserve">\r
     <comment>当該タスクに関するコメントを照会します。</comment>\r
   </data>\r
   <data name="getMetaComment" xml:space="preserve">\r
-    <value>SELECT ID,TASKID,CREATETIME,COMMENT FROM TBL_COMMENT WHERE date(CREATETIME) = (SELECT TODAY FROM TBL_SETTING) ORDER BY ID</value>\r
+    <value>SELECT C.ID,C.TASKID,C.CREATETIME,C.COMMENT FROM TBL_COMMENT C WHERE date(CREATETIME) = (SELECT TODAY FROM TBL_SETTING) or exists(SELECT TASKID FROM TBL_TASKS T WHERE T.TASKID = C.TASKID AND date(T.DODATE) =(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(null,datetime('now','localtime'),?)</value>\r
     <comment>その日全体についてコメントを追加します。</comment>\r
   </data>\r
+  <data name="getGoingList" xml:space="preserve">\r
+    <value>SELECT  TASKID  , SORTID  , DODATE  , TIMEAREA  , CATEGORY  , CONTENTS  , FORCASTMIN  , STARTTIME  , ENDTIME  , BGCOLOR  , FRCOLOR  , REPEATFLG  , HASCOMMENT, PROJECT , TAGS FROM VW_TASKS_SORT  , TBL_SETTING S WHERE DATE (DODATE) &gt;= DATE (S.TODAY) ORDER BY DATESORT,DODATE,STARTNULLSORT,STARTTIMESORT,ENDTIMESORT,TIMEAREA,SORTID</value>\r
+    <comment>今後(本日以降)のタスクを表示します。</comment>\r
+  </data>\r
+  <data name="getDefaultTimeArea" xml:space="preserve">\r
+    <value>SELECT TIMEAREA FROM TBL_TIMEAREA WHERE TIME(START)&lt;=TIME(?) AND TIME(?)&lt;TIME(END)</value>\r
+    <comment>現時刻からタイムエリアを算出します。</comment>\r
+  </data>\r
+  <data name="addTag" xml:space="preserve">\r
+    <value>update tbl_tasks set tags=(case when tags is null then ? else (case when tags like ? then tags else tags||','||? end ) end) where sortid=?</value>\r
+    <comment>タグを追加します。</comment>\r
+  </data>\r
+  <data name="clearTags" xml:space="preserve">\r
+    <value>update tbl_tasks set tags=null where sortid=?</value>\r
+    <comment>タグをクリアします。</comment>\r
+  </data>\r
+  <data name="findProject" xml:space="preserve">\r
+    <value>SELECT DISTINCT PROJECT FROM TBL_TASKS</value>\r
+    <comment>全プロジェクトを取得します。</comment>\r
+  </data>\r
+  <data name="findTags" xml:space="preserve">\r
+    <value>SELECT DISTINCT TAGS FROM TBL_TASKS</value>\r
+    <comment>全タグを取得します。</comment>\r
+  </data>\r
+  <data name="getSortIDFromTaskID" xml:space="preserve">\r
+    <value>SELECT SORTID FROM TBL_TASKS WHERE TASKID = ?</value>\r
+    <comment>タスクIDからソート番号を逆引きします。主にコメント用です。</comment>\r
+  </data>\r
+  <data name="updateProject" xml:space="preserve">\r
+    <value>UPDATE TBL_TASKS SET PROJECT = ? WHERE SORTID= ?</value>\r
+    <comment>プロジェクト名を設定します。</comment>\r
+  </data>\r
 </root>
\ No newline at end of file
index 42cfd3a..0a74d19 100644 (file)
             // \r
             // pnlTask\r
             // \r
-            this.pnlTask.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)\r
-                        | System.Windows.Forms.AnchorStyles.Right)));\r
+            this.pnlTask.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) \r
+            | System.Windows.Forms.AnchorStyles.Right)));\r
             this.pnlTask.AutoScroll = true;\r
             this.pnlTask.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
             this.pnlTask.Location = new System.Drawing.Point(5, 5);\r
             this.pnlTask.Name = "pnlTask";\r
-            this.pnlTask.Size = new System.Drawing.Size(780, 400);\r
+            this.pnlTask.Size = new System.Drawing.Size(900, 400);\r
             this.pnlTask.TabIndex = 0;\r
             // \r
             // txtInput\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, 389);\r
+            this.txtInput.Location = new System.Drawing.Point(911, 386);\r
             this.txtInput.Name = "txtInput";\r
-            this.txtInput.Size = new System.Drawing.Size(388, 19);\r
+            this.txtInput.Size = new System.Drawing.Size(350, 19);\r
             this.txtInput.TabIndex = 1;\r
             this.txtInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtInput_KeyDown);\r
             // \r
             // rConsole\r
             // \r
-            this.rConsole.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)\r
-                        | System.Windows.Forms.AnchorStyles.Right)));\r
+            this.rConsole.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) \r
+            | System.Windows.Forms.AnchorStyles.Right)));\r
             this.rConsole.BackColor = System.Drawing.Color.Black;\r
             this.rConsole.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
             this.rConsole.ForeColor = System.Drawing.Color.White;\r
-            this.rConsole.Location = new System.Drawing.Point(792, 5);\r
+            this.rConsole.Location = new System.Drawing.Point(911, 5);\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, 379);\r
+            this.rConsole.Size = new System.Drawing.Size(350, 379);\r
             this.rConsole.TabIndex = 0;\r
             this.rConsole.TabStop = false;\r
             this.rConsole.Text = "";\r
@@ -90,7 +90,7 @@
             // \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, 412);\r
+            this.ClientSize = new System.Drawing.Size(1264, 412);\r
             this.Controls.Add(this.rConsole);\r
             this.Controls.Add(this.txtInput);\r
             this.Controls.Add(this.pnlTask);\r
index a873486..cdbc53d 100644 (file)
@@ -172,16 +172,17 @@ namespace com.andoutomo.kybernetes.view
         /// </summary>\r
         internal void clearPanel()\r
         {\r
+            this.pnlTask.AutoScrollPosition = new Point(0, 0);\r
 \r
             int dummy = pnlTask.Controls.Count;\r
             for (int h = dummy; h > 0; h--)\r
             {\r
                 Control ctrl = pnlTask.Controls[h - 1];\r
+                \r
                 for (int i = ctrl.Controls.Count; i > 0; i--)\r
                 {\r
                     ctrl.Controls[i - 1].Dispose();\r
                 }\r
-                \r
                 ctrl.Dispose();\r
             }\r
 \r
@@ -408,13 +409,14 @@ namespace com.andoutomo.kybernetes.view
         }\r
 \r
         /// <summary>\r
-        /// マウスでコンソールをドラッグした時に、選択対象を入力ボックスに追加します。\r
+        /// マウスでコンソールをドラッグした時に、選択対象をクリップボードにコピーします。\r
         /// </summary>\r
         /// <param name="sender"></param>\r
         /// <param name="e"></param>\r
         private void rConsole_MouseUp(object sender, MouseEventArgs e)\r
         {\r
-            txtInput.Text += rConsole.SelectedText.Trim();\r
+            Clipboard.SetDataObject(rConsole.SelectedText.Trim());\r
+            //txtInput.Text += rConsole.SelectedText.Trim();\r
             txtInput.Focus();\r
             //選択状態を解除する\r
             this.txtInput.Select(this.txtInput.Text.Length, 0);\r
@@ -436,8 +438,7 @@ namespace com.andoutomo.kybernetes.view
         /// </summary>\r
         private void panelResize()\r
         {\r
-            pnlTask.Size = new Size(this.Size.Width - 420, this.Size.Height - 50);\r
+            pnlTask.Size = new Size(this.Size.Width - 380, this.Size.Height - 50);\r
         }\r
-\r
     }\r
 }\r
index 96edaab..1bf4c1d 100644 (file)
@@ -7,27 +7,32 @@ namespace com.andoutomo.kybernetes.view
     {\r
         internal Panel createRow(int totalRowSize)\r
         {\r
-            int wkContentSize = totalRowSize - 569;\r
+            int wkContentSize = totalRowSize - 689;\r
             int wkDelaySize = wkContentSize - 211;\r
 \r
             Panel rowPanel = new Panel();\r
-            rowPanel.Controls.Add(new CustomLabel("□", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 0, 21, 16, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel("Date", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 20, 56, 16, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel("曜", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 75, 26, 16, ContentAlignment.MiddleCenter));\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, wkContentSize, 16, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel("見積H", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 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, wkDelaySize + 500, 51, 16, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel("実績", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 550, 51, 16, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel("開始", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 600, 61, 16, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel("終了", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 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, wkDelaySize + 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, wkDelaySize + 740, 21, 16, ContentAlignment.MiddleCenter));\r
+            //rowPanel.Controls.Add(new CustomLabel("□", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 0, 21, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("ID", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 0, 41, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("Date", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 40, 56, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("曜", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 95, 26, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("@", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 120, 21, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("Category", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 140, 81, 16, ContentAlignment.MiddleCenter));\r
+            \r
+            rowPanel.Controls.Add(new CustomLabel("作業内容", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, 220, wkContentSize, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("見積H", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 430, 51, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("見積m", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 480, 51, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("実績", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 530, 51, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("開始", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 580, 61, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("終了", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 640, 61, 16, ContentAlignment.MiddleCenter));\r
+            \r
+            rowPanel.Controls.Add(new CustomLabel("プロジェクト", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 700, 81, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("R", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 780, 21, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("C", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 800, 21, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("T", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 820, 21, 16, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel("ID", Color.FromArgb(0, 0, 0), Color.FromArgb(255, 255, 255), FontStyle.Regular, 9F, wkDelaySize + 840, 41, 16, ContentAlignment.MiddleCenter));\r
 \r
             rowPanel.Location = new Point(0, 0);\r
-            rowPanel.Size = new Size(wkContentSize + 550, 16);\r
+            rowPanel.Size = new Size(wkContentSize + 670, 16);\r
 \r
             rowPanel.TabStop = false;\r
 \r
index 36ef77a..f3d03cc 100644 (file)
@@ -84,24 +84,28 @@ namespace com.andoutomo.kybernetes.view
             \r
             int wkPanelSize = baseForm.getPanelSize();\r
 \r
-            int wkContentSize = wkPanelSize - 569;\r
+            int wkContentSize = wkPanelSize - 689;\r
             int wkDelaySize = wkContentSize - 211;\r
             sortID = data.SortID;\r
 \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
-            rowPanel.Controls.Add(new CustomLabel(data.Contents, frColor, bgColor, style, 9F, 240, wkContentSize, rowsize));\r
-            rowPanel.Controls.Add(new CustomLabel(data.getForcastHourStr, frColor, bgColor, timeStyle, fontsize, wkDelaySize + 450, 51, rowsize,ContentAlignment.MiddleRight));\r
-            rowPanel.Controls.Add(new CustomLabel(data.ForecastMin.ToString(), frColor, bgColor, timeStyle, fontsize, wkDelaySize + 500, 51, rowsize, ContentAlignment.MiddleRight));\r
-            rowPanel.Controls.Add(new CustomLabel(data.RealMin.ToString(), frColor, bgColor, timeStyle, fontsize, wkDelaySize + 550, 51, rowsize, ContentAlignment.MiddleRight));\r
-            rowPanel.Controls.Add(new CustomLabel(data.StartTime.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 600, 61, rowsize, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel(data.EndTime.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 660, 61, rowsize, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel((data.IsRepeat == 1 ? "R" : ""), frColor, bgColor, style, 9F, wkDelaySize + 720, 21, rowsize, ContentAlignment.MiddleCenter));\r
-            rowPanel.Controls.Add(new CustomLabel((data.HasComment == 1 ? "*" : ""), frColor, bgColor, style, 9F, wkDelaySize + 740, 21, rowsize, ContentAlignment.MiddleCenter));\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.SortID.ToString(), frColor, bgColor, style, 9F, 0, 41, rowsize, ContentAlignment.MiddleRight));\r
+            rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDateString(), frColor, bgColor, style, 9F, 40, 56, rowsize,ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel(data.DoDate.getDowStr(), frColor, bgColor, style, 9F, 95, 26, rowsize,ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel(data.TimeArea, frColor, bgColor, style, 9F, 120, 21, rowsize,ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel(data.Category, frColor, bgColor, style, 9F, 140, 81, rowsize));\r
+            rowPanel.Controls.Add(new CustomLabel(data.Contents, frColor, bgColor, style, 9F, 220, wkContentSize, rowsize));\r
+            rowPanel.Controls.Add(new CustomLabel(data.getForcastHourStr, frColor, bgColor, timeStyle, fontsize, wkDelaySize + 430, 51, rowsize,ContentAlignment.MiddleRight));\r
+            rowPanel.Controls.Add(new CustomLabel(data.ForecastMin.ToString(), frColor, bgColor, timeStyle, fontsize, wkDelaySize + 480, 51, rowsize, ContentAlignment.MiddleRight));\r
+            rowPanel.Controls.Add(new CustomLabel(data.RealMin.ToString(), frColor, bgColor, timeStyle, fontsize, wkDelaySize + 530, 51, rowsize, ContentAlignment.MiddleRight));\r
+            rowPanel.Controls.Add(new CustomLabel(data.StartTime.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 580, 61, rowsize, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel(data.EndTime.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 640, 61, rowsize, ContentAlignment.MiddleCenter));\r
+            \r
+            rowPanel.Controls.Add(new CustomLabel(data.Project, frColor, bgColor, style, 9F, wkDelaySize + 700, 81, rowsize));\r
+            rowPanel.Controls.Add(new CustomLabel((data.IsRepeat == 1 ? "R" : ""), frColor, bgColor, style, 9F, wkDelaySize + 780, 21, rowsize, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel((data.HasComment == 1 ? "*" : ""), frColor, bgColor, style, 9F, wkDelaySize + 800, 21, rowsize, ContentAlignment.MiddleCenter));\r
+            rowPanel.Controls.Add(new CustomLabel((string.IsNullOrEmpty(data.Tags) ? "" : "*"), frColor, bgColor, style, 9F, wkDelaySize + 820, 21, rowsize, ContentAlignment.MiddleCenter,data.Tags));\r
+            rowPanel.Controls.Add(new CustomLabel(data.SortID.ToString(), frColor, bgColor, style, 9F, wkDelaySize + 840, 41, rowsize, ContentAlignment.MiddleRight));\r
 \r
             rowPanel.Location = new Point(0, point);\r
             rowPanel.Size = new Size(wkPanelSize - 19, rowsize);\r
@@ -148,5 +152,24 @@ namespace com.andoutomo.kybernetes.view
             this.TextAlign = align;\r
         }\r
 \r
+        internal CustomLabel(string text, Color FRColor, Color BGColor, FontStyle style, float size, int location, int colsize, int rowSize, ContentAlignment align, string tooltipStr)\r
+            : this(text, FRColor, BGColor, style, size, location, colsize, rowSize,align)\r
+        {\r
+            ToolTip pop = new ToolTip();\r
+            //ToolTipの設定を行う\r
+            //ToolTipが表示されるまでの時間\r
+            pop.InitialDelay = 500;\r
+            //ToolTipが表示されている時に、別のToolTipを表示するまでの時間\r
+            pop.ReshowDelay = 100;\r
+            //ToolTipを表示する時間\r
+            pop.AutoPopDelay = 4000;\r
+            //フォームがアクティブでない時でもToolTipを表示する\r
+            pop.ShowAlways = false;\r
+\r
+            //このオブジェクトにToolTipが表示されるようにする\r
+            pop.SetToolTip(this, tooltipStr);\r
+            \r
+\r
+        }\r
     }\r
 }\r
index 80dabd4..d34a427 100644 (file)
Binary files a/kybernetes_prj.suo and b/kybernetes_prj.suo differ