OSDN Git Service

na-get-lib,ひとまず依存関係解決関数群を作った。
[applistation/AppliStation.git] / AppliStation / AppliStation.Util / ExecutionProgressViewer.cs
index 94dd6d5..9f704ba 100644 (file)
@@ -1,4 +1,4 @@
-using System;\r
+using System;\r
 using System.Drawing;\r
 using System.Windows.Forms;\r
 using System.Threading;\r
@@ -14,12 +14,10 @@ namespace AppliStation.Util
        {\r
                private NaGetTaskSet taskSet;\r
                \r
-               private Downloader downloader;\r
-               \r
                private Thread tasksetRunningThread = null;\r
                \r
                /// <summary>\r
-               /// \8fI\97¹\8e\9e\82É\89½\82ð\8ds\82¤\82©\82Ì\83t\83\89\83O\r
+               /// 終了時に何を行うかのフラグ\r
                /// </summary>\r
                public enum ActionOnDoneFlags {\r
                        None = 0,\r
@@ -28,14 +26,10 @@ namespace AppliStation.Util
                }\r
                \r
                /// <summary>\r
-               /// \8fI\97¹\8e\9e\82É\89½\82ð\8ds\82¤\82©\r
+               /// 終了時に何を行うか\r
                /// </summary>\r
                public ActionOnDoneFlags ActionOnDone = ActionOnDoneFlags.FlashWindow;\r
-               \r
-               public Downloader Downloader {\r
-                       get { return downloader; }\r
-               }\r
-               \r
+                               \r
                public ExecutionProgressViewer()\r
                {\r
                        //\r
@@ -43,18 +37,17 @@ namespace AppliStation.Util
                        //\r
                        InitializeComponent();\r
                        \r
-                       downloader = new Downloader();\r
-                       downloader.DownloadEventRaised += delegate(object sender, DownloadEventArgs e) {\r
-                               if (InvokeRequired) {\r
-                                       Invoke(new EventHandler<DownloadEventArgs>(onDownloadEvent), sender, e);\r
-                               } else {\r
-                                       onDownloadEvent(sender, e);\r
-                               }\r
-                       };\r
+                       this.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);\r
                }\r
-               \r
+                               \r
                private void onDownloadEvent(object sender, DownloadEventArgs a)\r
                {\r
+                       if (InvokeRequired) {\r
+                               Invoke(new EventHandler<DownloadEventArgs>(onDownloadEvent), sender, a);\r
+                               return;\r
+                       }\r
+                       \r
+                       \r
                        if (a.TaskProgressPercent >= 0) {\r
                                progressBarSub.Value = (int) a.TaskProgressPercent;\r
                                progressBarSub.Style = ProgressBarStyle.Continuous;\r
@@ -82,13 +75,13 @@ namespace AppliStation.Util
                                        progressSubLabel.Visible = false;\r
                                        \r
                                        logBox.SelectionColor = System.Drawing.Color.Red;\r
-                                       logBox.AppendText("   [\83G\83\89\81[] " + a.TaskMessage + System.Environment.NewLine);\r
+                                       logBox.AppendText("   [エラー] " + a.TaskMessage + System.Environment.NewLine);\r
                                        logBox.SelectionColor = logBox.ForeColor;\r
                                        break;\r
                        }\r
                }\r
                \r
-               #region NaGetTaskSet\8aÖ\98A\r
+               #region NaGetTaskSet関連\r
                \r
                private void onTaskSetRaised(object sender, NaGetTaskSetEventArgs e)\r
                {\r
@@ -106,7 +99,7 @@ namespace AppliStation.Util
                        \r
                        switch (e.Type) {\r
                                case NaGetTaskSetEventType.COMPLETED:\r
-                                       logBox.AppendText("\8a®\97¹." + System.Environment.NewLine);\r
+                                       logBox.AppendText("完了." + System.Environment.NewLine);\r
                                        if (taskSet.Done) {\r
                                                okButton.Enabled = true;\r
                                                cancelButton.Enabled = false;\r
@@ -120,9 +113,9 @@ namespace AppliStation.Util
                                        if (progressBarSub.Visible) progressBarSub.Hide();\r
                                        if (progressSubLabel.Visible) progressSubLabel.Hide();\r
                                        \r
-                                       NativeMethods.ProgressBar_SetState(progressBar, 1); // VistaProgress\90F\81F\83m\81[\83}\83\8b\r
+                                       NativeMethods.ProgressBar_SetState(progressBar, 1); // VistaProgress色:ノーマル\r
                                        \r
-                                       logBox.AppendText(string.Format(" ... \8a®\97¹. [{0}%]", (int) e.TaskProgressPercent));\r
+                                       logBox.AppendText(string.Format(" ... 完了. [{0}%]", (int) e.TaskProgressPercent));\r
                                        logBox.AppendText(System.Environment.NewLine);\r
                                        break;\r
                                case NaGetTaskSetEventType.INFO:\r
@@ -130,10 +123,10 @@ namespace AppliStation.Util
                                        break;\r
                                case NaGetTaskSetEventType.ERROR:\r
                                        logBox.SelectionColor = System.Drawing.Color.Red;\r
-                                       logBox.AppendText("  [\83G\83\89\81[] " + e.TaskMessage + System.Environment.NewLine);\r
+                                       logBox.AppendText("  [エラー] " + e.TaskMessage + System.Environment.NewLine);\r
                                        logBox.SelectionColor = logBox.ForeColor;\r
                                        \r
-                                       NativeMethods.ProgressBar_SetState(progressBar, 2); // VistaProgress\90F\81F\83G\83\89\81[\r
+                                       NativeMethods.ProgressBar_SetState(progressBar, 2); // VistaProgress色:エラー\r
                                        \r
                                        okButton.Enabled = true;\r
                                        cancelButton.Enabled = false;\r
@@ -143,14 +136,14 @@ namespace AppliStation.Util
                                        logBox.AppendText(e.TaskMessage + System.Environment.NewLine);\r
                                        logBox.SelectionColor = logBox.ForeColor;\r
                                        \r
-                                       NativeMethods.ProgressBar_SetState(progressBar, 1); // VistaProgress\90F\81F\92\86\92f\r
+                                       NativeMethods.ProgressBar_SetState(progressBar, 1); // VistaProgress色:中断\r
                                        \r
                                        okButton.Enabled = true;\r
                                        cancelButton.Enabled = false;\r
                                        break;\r
                                case NaGetTaskSetEventType.WARNING:\r
                                        logBox.SelectionColor = System.Drawing.Color.Red;\r
-                                       logBox.AppendText("  [\83G\83\89\81[] " + e.TaskMessage + System.Environment.NewLine);\r
+                                       logBox.AppendText("  [エラー] " + e.TaskMessage + System.Environment.NewLine);\r
                                        logBox.SelectionColor = logBox.ForeColor;\r
                                        \r
                                        break;\r
@@ -209,6 +202,11 @@ namespace AppliStation.Util
                                }\r
                        };\r
                        \r
+                       System.Reflection.PropertyInfo fDownloader = taskSet.GetType().GetProperty("Downloader");\r
+                       if (fDownloader != null && (fDownloader.PropertyType == typeof(Downloader))) {\r
+                               ((Downloader) fDownloader.GetValue(taskSet, null)).DownloadEventRaised += onDownloadEvent;\r
+                       }\r
+                       \r
                        taskSet.TaskQueryRaised += onTaskQueryRaised;\r
                }\r
 \r
@@ -242,7 +240,7 @@ namespace AppliStation.Util
                        if (taskSet != null && taskSet.Running && taskSet.Cancelable) {\r
                                cancelButton.Enabled = false;\r
                                \r
-                               NativeMethods.ProgressBar_SetState(progressBar, 3); // VistaProgress\90F\81F\92\86\92f\r
+                               NativeMethods.ProgressBar_SetState(progressBar, 3); // VistaProgress色:中断\r
                                \r
                                taskSet.Cancel();\r
                        }\r