OSDN Git Service

AppliStation-GUI,パッケージ情報パネルの追加
authorttp <ttp@users.sourceforge.jp>
Tue, 29 Apr 2008 01:34:02 +0000 (01:34 +0000)
committerttp <ttp@users.sourceforge.jp>
Tue, 29 Apr 2008 01:34:02 +0000 (01:34 +0000)
git-svn-id: http://localhost/svn/AppliStation/trunk@888 34ed2c89-c49f-4a4b-abdb-c318350108cf

AppliStation/AppliStation.csproj
AppliStation/InstallerInfoForm.Designer.cs [new file with mode: 0644]
AppliStation/InstallerInfoForm.cs [new file with mode: 0644]
AppliStation/PackageInfoForm.Designer.cs [new file with mode: 0644]
AppliStation/PackageInfoForm.cs [new file with mode: 0644]
AppliStation/PackageListViewForm.Designer.cs
AppliStation/PackageListViewForm.cs

index 9ade383..29cc854 100644 (file)
     <Compile Include="AppliStation.Util\PackageUtils.cs" />\r
     <Compile Include="AssemblyInfo.cs" />\r
     <Compile Include="ArgParse.cs" />\r
+    <Compile Include="InstallerInfoForm.cs" />\r
+    <Compile Include="InstallerInfoForm.Designer.cs">\r
+      <DependentUpon>InstallerInfoForm.cs</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="PackageInfoForm.cs" />\r
+    <Compile Include="PackageInfoForm.Designer.cs">\r
+      <DependentUpon>PackageInfoForm.cs</DependentUpon>\r
+    </Compile>\r
     <Compile Include="PackageListViewForm.cs" />\r
     <Compile Include="PackageListViewForm.Designer.cs">\r
       <DependentUpon>PackageListViewForm.cs</DependentUpon>\r
diff --git a/AppliStation/InstallerInfoForm.Designer.cs b/AppliStation/InstallerInfoForm.Designer.cs
new file mode 100644 (file)
index 0000000..23af520
--- /dev/null
@@ -0,0 +1,156 @@
+namespace AppliStation\r
+{\r
+       partial class InstallerInfoForm\r
+       {\r
+               /// <summary>\r
+               /// Designer variable used to keep track of non-visual components.\r
+               /// </summary>\r
+               private System.ComponentModel.IContainer components = null;\r
+               \r
+               /// <summary>\r
+               /// Disposes resources used by the control.\r
+               /// </summary>\r
+               /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
+               protected override void Dispose(bool disposing)\r
+               {\r
+                       if (disposing) {\r
+                               if (components != null) {\r
+                                       components.Dispose();\r
+                               }\r
+                       }\r
+                       base.Dispose(disposing);\r
+               }\r
+               \r
+               /// <summary>\r
+               /// This method is required for Windows Forms designer support.\r
+               /// Do not change the method contents inside the source code editor. The Forms designer might\r
+               /// not be able to load this method if it was changed manually.\r
+               /// </summary>\r
+               private void InitializeComponent()\r
+               {\r
+                       this.installerUrllabel = new System.Windows.Forms.Label();\r
+                       this.installerUrlTextBox = new System.Windows.Forms.TextBox();\r
+                       this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
+                       this.osValueLabel = new System.Windows.Forms.Label();\r
+                       this.cannotRunLabel = new System.Windows.Forms.Label();\r
+                       this.archLabel = new System.Windows.Forms.Label();\r
+                       this.osLabel = new System.Windows.Forms.Label();\r
+                       this.archValueLabel = new System.Windows.Forms.Label();\r
+                       this.tableLayoutPanel1.SuspendLayout();\r
+                       this.SuspendLayout();\r
+                       // \r
+                       // installerUrllabel\r
+                       // \r
+                       this.installerUrllabel.AutoSize = true;\r
+                       this.tableLayoutPanel1.SetColumnSpan(this.installerUrllabel, 2);\r
+                       this.installerUrllabel.Location = new System.Drawing.Point(3, 0);\r
+                       this.installerUrllabel.Name = "installerUrllabel";\r
+                       this.installerUrllabel.Size = new System.Drawing.Size(86, 12);\r
+                       this.installerUrllabel.TabIndex = 0;\r
+                       this.installerUrllabel.Text = "インストーラURL:";\r
+                       // \r
+                       // installerUrlTextBox\r
+                       // \r
+                       this.installerUrlTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+                       this.tableLayoutPanel1.SetColumnSpan(this.installerUrlTextBox, 2);\r
+                       this.installerUrlTextBox.Dock = System.Windows.Forms.DockStyle.Top;\r
+                       this.installerUrlTextBox.Location = new System.Drawing.Point(10, 15);\r
+                       this.installerUrlTextBox.Margin = new System.Windows.Forms.Padding(10, 3, 3, 8);\r
+                       this.installerUrlTextBox.Name = "installerUrlTextBox";\r
+                       this.installerUrlTextBox.ReadOnly = true;\r
+                       this.installerUrlTextBox.Size = new System.Drawing.Size(287, 12);\r
+                       this.installerUrlTextBox.TabIndex = 1;\r
+                       // \r
+                       // tableLayoutPanel1\r
+                       // \r
+                       this.tableLayoutPanel1.ColumnCount = 2;\r
+                       this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+                       this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+                       this.tableLayoutPanel1.Controls.Add(this.installerUrlTextBox, 0, 1);\r
+                       this.tableLayoutPanel1.Controls.Add(this.installerUrllabel, 0, 0);\r
+                       this.tableLayoutPanel1.Controls.Add(this.osValueLabel, 1, 3);\r
+                       this.tableLayoutPanel1.Controls.Add(this.cannotRunLabel, 0, 2);\r
+                       this.tableLayoutPanel1.Controls.Add(this.archLabel, 0, 4);\r
+                       this.tableLayoutPanel1.Controls.Add(this.osLabel, 0, 3);\r
+                       this.tableLayoutPanel1.Controls.Add(this.archValueLabel, 1, 4);\r
+                       this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;\r
+                       this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);\r
+                       this.tableLayoutPanel1.Name = "tableLayoutPanel1";\r
+                       this.tableLayoutPanel1.RowCount = 6;\r
+                       this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));\r
+                       this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));\r
+                       this.tableLayoutPanel1.Size = new System.Drawing.Size(300, 150);\r
+                       this.tableLayoutPanel1.TabIndex = 0;\r
+                       // \r
+                       // osValueLabel\r
+                       // \r
+                       this.osValueLabel.Dock = System.Windows.Forms.DockStyle.Fill;\r
+                       this.osValueLabel.Location = new System.Drawing.Point(107, 47);\r
+                       this.osValueLabel.Name = "osValueLabel";\r
+                       this.osValueLabel.Size = new System.Drawing.Size(190, 12);\r
+                       this.osValueLabel.TabIndex = 2;\r
+                       // \r
+                       // cannotRunLabel\r
+                       // \r
+                       this.cannotRunLabel.AutoSize = true;\r
+                       this.tableLayoutPanel1.SetColumnSpan(this.cannotRunLabel, 2);\r
+                       this.cannotRunLabel.ForeColor = System.Drawing.Color.Red;\r
+                       this.cannotRunLabel.Location = new System.Drawing.Point(3, 35);\r
+                       this.cannotRunLabel.Name = "cannotRunLabel";\r
+                       this.cannotRunLabel.Size = new System.Drawing.Size(236, 12);\r
+                       this.cannotRunLabel.TabIndex = 6;\r
+                       this.cannotRunLabel.Text = "あなたのPCにとって動作対象外のインストーラです";\r
+                       // \r
+                       // archLabel\r
+                       // \r
+                       this.archLabel.AutoSize = true;\r
+                       this.archLabel.Location = new System.Drawing.Point(3, 59);\r
+                       this.archLabel.Name = "archLabel";\r
+                       this.archLabel.Size = new System.Drawing.Size(98, 12);\r
+                       this.archLabel.TabIndex = 4;\r
+                       this.archLabel.Text = "対応アーキテクチャ:";\r
+                       // \r
+                       // osLabel\r
+                       // \r
+                       this.osLabel.AutoSize = true;\r
+                       this.osLabel.Location = new System.Drawing.Point(3, 47);\r
+                       this.osLabel.Name = "osLabel";\r
+                       this.osLabel.Size = new System.Drawing.Size(50, 12);\r
+                       this.osLabel.TabIndex = 2;\r
+                       this.osLabel.Text = "対応OS:";\r
+                       // \r
+                       // archValueLabel\r
+                       // \r
+                       this.archValueLabel.AutoSize = true;\r
+                       this.archValueLabel.Location = new System.Drawing.Point(107, 59);\r
+                       this.archValueLabel.Name = "archValueLabel";\r
+                       this.archValueLabel.Size = new System.Drawing.Size(0, 12);\r
+                       this.archValueLabel.TabIndex = 5;\r
+                       // \r
+                       // InstallerInfoForm\r
+                       // \r
+                       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
+                       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+                       this.AutoScroll = true;\r
+                       this.AutoSize = true;\r
+                       this.Controls.Add(this.tableLayoutPanel1);\r
+                       this.Name = "InstallerInfoForm";\r
+                       this.Size = new System.Drawing.Size(300, 150);\r
+                       this.tableLayoutPanel1.ResumeLayout(false);\r
+                       this.tableLayoutPanel1.PerformLayout();\r
+                       this.ResumeLayout(false);\r
+               }\r
+               private System.Windows.Forms.Label cannotRunLabel;\r
+               private System.Windows.Forms.Label osValueLabel;\r
+               private System.Windows.Forms.Label archValueLabel;\r
+               private System.Windows.Forms.Label archLabel;\r
+               private System.Windows.Forms.Label osLabel;\r
+               private System.Windows.Forms.TextBox installerUrlTextBox;\r
+               private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;\r
+               private System.Windows.Forms.Label installerUrllabel;\r
+       }\r
+}\r
diff --git a/AppliStation/InstallerInfoForm.cs b/AppliStation/InstallerInfoForm.cs
new file mode 100644 (file)
index 0000000..118840d
--- /dev/null
@@ -0,0 +1,62 @@
+using System;\r
+using System.ComponentModel;\r
+using System.Drawing;\r
+using System.Windows.Forms;\r
+\r
+using NaGet.Packages;\r
+using NaGet.Packages.Install;\r
+using System.Reflection;\r
+\r
+namespace AppliStation\r
+{\r
+       /// <summary>\r
+       /// Description of InstallerInfoForm.\r
+       /// </summary>\r
+       public partial class InstallerInfoForm : UserControl\r
+       {\r
+               private Installer inst;\r
+               \r
+               public InstallerInfoForm()\r
+               {\r
+                       //\r
+                       // The InitializeComponent() call is required for Windows Forms designer support.\r
+                       //\r
+                       InitializeComponent();\r
+               }\r
+               \r
+               public Installer SelectedObject {\r
+                       get { return inst; }\r
+                       set {\r
+                               inst = value;\r
+                               updateInst();\r
+                       }\r
+               }\r
+               \r
+               private void updateInst()\r
+               {\r
+                       installerUrlTextBox.Text = (inst == null || inst.Url == null)?\r
+                               string.Empty : inst.Url.Href;\r
+                       \r
+                       osValueLabel.Text = (inst.Platform == null || string.IsNullOrEmpty(inst.Platform.Os))?\r
+                               "\94C\88Ó\82ÌWindows" : inst.Platform.Os;\r
+                       \r
+                       switch ((inst.Platform != null)? inst.Platform.Arch : System.Reflection.ProcessorArchitecture.X86) {\r
+                               case System.Reflection.ProcessorArchitecture.Amd64:\r
+                                       archValueLabel.Text = "x64 (64\83r\83b\83g\8aÂ\8b«)";\r
+                                       break;\r
+                               case System.Reflection.ProcessorArchitecture.IA64:\r
+                                       archValueLabel.Text = "Itanium";\r
+                                       break;\r
+                               case System.Reflection.ProcessorArchitecture.None:\r
+                               case System.Reflection.ProcessorArchitecture.MSIL:\r
+                                       archValueLabel.Text = "\83A\81[\83L\83e\83N\83`\83\83\88Ë\91\82È\82µ";\r
+                                       break;\r
+                               case System.Reflection.ProcessorArchitecture.X86:\r
+                                       archValueLabel.Text = "x86 (32\83r\83b\83g\8aÂ\8b«)";\r
+                                       break;\r
+                       }\r
+                       \r
+                       cannotRunLabel.Visible = ! ((inst.Platform == null) || inst.Platform.IsRunnable());\r
+               }\r
+       }\r
+}\r
diff --git a/AppliStation/PackageInfoForm.Designer.cs b/AppliStation/PackageInfoForm.Designer.cs
new file mode 100644 (file)
index 0000000..fec43c4
--- /dev/null
@@ -0,0 +1,289 @@
+namespace AppliStation\r
+{\r
+       partial class PackageInfoForm\r
+       {\r
+               /// <summary>\r
+               /// Designer variable used to keep track of non-visual components.\r
+               /// </summary>\r
+               private System.ComponentModel.IContainer components = null;\r
+               \r
+               /// <summary>\r
+               /// Disposes resources used by the form.\r
+               /// </summary>\r
+               /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
+               protected override void Dispose(bool disposing)\r
+               {\r
+                       if (disposing) {\r
+                               if (components != null) {\r
+                                       components.Dispose();\r
+                               }\r
+                       }\r
+                       base.Dispose(disposing);\r
+               }\r
+               \r
+               /// <summary>\r
+               /// This method is required for Windows Forms designer support.\r
+               /// Do not change the method contents inside the source code editor. The Forms designer might\r
+               /// not be able to load this method if it was changed manually.\r
+               /// </summary>\r
+               private void InitializeComponent()\r
+               {\r
+                       this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();\r
+                       this.iconLabel = new System.Windows.Forms.Label();\r
+                       this.nameLabel = new System.Windows.Forms.Label();\r
+                       this.licenseLinkLabel = new System.Windows.Forms.LinkLabel();\r
+                       this.licenseLabel = new System.Windows.Forms.Label();\r
+                       this.tagsLabel = new System.Windows.Forms.Label();\r
+                       this.urlLabel = new System.Windows.Forms.Label();\r
+                       this.urlLinkLabel = new System.Windows.Forms.LinkLabel();\r
+                       this.tagsTextBox = new System.Windows.Forms.TextBox();\r
+                       this.typeLabel = new System.Windows.Forms.Label();\r
+                       this.typeValueLabel = new System.Windows.Forms.Label();\r
+                       this.summaryTextBox = new System.Windows.Forms.TextBox();\r
+                       this.tabControl1 = new System.Windows.Forms.TabControl();\r
+                       this.closeButton = new System.Windows.Forms.Button();\r
+                       this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();\r
+                       this.stateLabel = new System.Windows.Forms.Label();\r
+                       this.statusLinkLabel = new System.Windows.Forms.LinkLabel();\r
+                       this.flowLayoutPanel1.SuspendLayout();\r
+                       this.tableLayoutPanel.SuspendLayout();\r
+                       this.SuspendLayout();\r
+                       // \r
+                       // flowLayoutPanel1\r
+                       // \r
+                       this.tableLayoutPanel.SetColumnSpan(this.flowLayoutPanel1, 2);\r
+                       this.flowLayoutPanel1.Controls.Add(this.iconLabel);\r
+                       this.flowLayoutPanel1.Controls.Add(this.nameLabel);\r
+                       this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;\r
+                       this.flowLayoutPanel1.Location = new System.Drawing.Point(11, 11);\r
+                       this.flowLayoutPanel1.Name = "flowLayoutPanel1";\r
+                       this.flowLayoutPanel1.Size = new System.Drawing.Size(370, 32);\r
+                       this.flowLayoutPanel1.TabIndex = 0;\r
+                       // \r
+                       // iconLabel\r
+                       // \r
+                       this.iconLabel.Location = new System.Drawing.Point(3, 0);\r
+                       this.iconLabel.Name = "iconLabel";\r
+                       this.iconLabel.Size = new System.Drawing.Size(1, 1);\r
+                       this.iconLabel.TabIndex = 0;\r
+                       // \r
+                       // nameLabel\r
+                       // \r
+                       this.nameLabel.AutoSize = true;\r
+                       this.nameLabel.Location = new System.Drawing.Point(10, 0);\r
+                       this.nameLabel.Name = "nameLabel";\r
+                       this.nameLabel.Size = new System.Drawing.Size(0, 12);\r
+                       this.nameLabel.TabIndex = 1;\r
+                       // \r
+                       // licenseLinkLabel\r
+                       // \r
+                       this.licenseLinkLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.licenseLinkLabel.AutoSize = true;\r
+                       this.licenseLinkLabel.Enabled = false;\r
+                       this.licenseLinkLabel.Location = new System.Drawing.Point(130, 120);\r
+                       this.licenseLinkLabel.Name = "licenseLinkLabel";\r
+                       this.licenseLinkLabel.Size = new System.Drawing.Size(0, 12);\r
+                       this.licenseLinkLabel.TabIndex = 9;\r
+                       this.licenseLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelLinkClicked);\r
+                       // \r
+                       // licenseLabel\r
+                       // \r
+                       this.licenseLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.licenseLabel.AutoSize = true;\r
+                       this.licenseLabel.Location = new System.Drawing.Point(11, 120);\r
+                       this.licenseLabel.Name = "licenseLabel";\r
+                       this.licenseLabel.Size = new System.Drawing.Size(56, 12);\r
+                       this.licenseLabel.TabIndex = 8;\r
+                       this.licenseLabel.Text = "ライセンス:";\r
+                       // \r
+                       // tagsLabel\r
+                       // \r
+                       this.tagsLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.tagsLabel.AutoSize = true;\r
+                       this.tagsLabel.Location = new System.Drawing.Point(11, 105);\r
+                       this.tagsLabel.Name = "tagsLabel";\r
+                       this.tagsLabel.Size = new System.Drawing.Size(28, 12);\r
+                       this.tagsLabel.TabIndex = 6;\r
+                       this.tagsLabel.Text = "タグ:";\r
+                       // \r
+                       // urlLabel\r
+                       // \r
+                       this.urlLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.urlLabel.AutoSize = true;\r
+                       this.urlLabel.Location = new System.Drawing.Point(11, 90);\r
+                       this.urlLabel.Name = "urlLabel";\r
+                       this.urlLabel.Size = new System.Drawing.Size(84, 12);\r
+                       this.urlLabel.TabIndex = 4;\r
+                       this.urlLabel.Text = "公式サイトURL:";\r
+                       // \r
+                       // urlLinkLabel\r
+                       // \r
+                       this.urlLinkLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.urlLinkLabel.AutoSize = true;\r
+                       this.urlLinkLabel.Location = new System.Drawing.Point(130, 90);\r
+                       this.urlLinkLabel.Name = "urlLinkLabel";\r
+                       this.urlLinkLabel.Size = new System.Drawing.Size(39, 12);\r
+                       this.urlLinkLabel.TabIndex = 5;\r
+                       this.urlLinkLabel.TabStop = true;\r
+                       this.urlLinkLabel.Text = "http://";\r
+                       this.urlLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelLinkClicked);\r
+                       // \r
+                       // tagsTextBox\r
+                       // \r
+                       this.tagsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) \r
+                                                                       | System.Windows.Forms.AnchorStyles.Left) \r
+                                                                       | System.Windows.Forms.AnchorStyles.Right)));\r
+                       this.tagsTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+                       this.tagsTextBox.Location = new System.Drawing.Point(130, 105);\r
+                       this.tagsTextBox.Name = "tagsTextBox";\r
+                       this.tagsTextBox.ReadOnly = true;\r
+                       this.tagsTextBox.Size = new System.Drawing.Size(251, 12);\r
+                       this.tagsTextBox.TabIndex = 7;\r
+                       // \r
+                       // typeLabel\r
+                       // \r
+                       this.typeLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.typeLabel.AutoSize = true;\r
+                       this.typeLabel.Location = new System.Drawing.Point(11, 132);\r
+                       this.typeLabel.Name = "typeLabel";\r
+                       this.typeLabel.Size = new System.Drawing.Size(88, 12);\r
+                       this.typeLabel.TabIndex = 10;\r
+                       this.typeLabel.Text = "インストーラ形式:";\r
+                       // \r
+                       // typeValueLabel\r
+                       // \r
+                       this.typeValueLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.typeValueLabel.AutoSize = true;\r
+                       this.typeValueLabel.Location = new System.Drawing.Point(130, 132);\r
+                       this.typeValueLabel.Name = "typeValueLabel";\r
+                       this.typeValueLabel.Size = new System.Drawing.Size(0, 12);\r
+                       this.typeValueLabel.TabIndex = 11;\r
+                       // \r
+                       // summaryTextBox\r
+                       // \r
+                       this.summaryTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+                       this.tableLayoutPanel.SetColumnSpan(this.summaryTextBox, 2);\r
+                       this.summaryTextBox.Dock = System.Windows.Forms.DockStyle.Fill;\r
+                       this.summaryTextBox.Location = new System.Drawing.Point(11, 49);\r
+                       this.summaryTextBox.Multiline = true;\r
+                       this.summaryTextBox.Name = "summaryTextBox";\r
+                       this.summaryTextBox.ReadOnly = true;\r
+                       this.summaryTextBox.Size = new System.Drawing.Size(370, 26);\r
+                       this.summaryTextBox.TabIndex = 1;\r
+                       // \r
+                       // tabControl1\r
+                       // \r
+                       this.tableLayoutPanel.SetColumnSpan(this.tabControl1, 2);\r
+                       this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;\r
+                       this.tabControl1.Location = new System.Drawing.Point(11, 147);\r
+                       this.tabControl1.Name = "tabControl1";\r
+                       this.tabControl1.SelectedIndex = 0;\r
+                       this.tabControl1.Size = new System.Drawing.Size(370, 166);\r
+                       this.tabControl1.TabIndex = 12;\r
+                       // \r
+                       // closeButton\r
+                       // \r
+                       this.closeButton.Anchor = System.Windows.Forms.AnchorStyles.Right;\r
+                       this.closeButton.AutoSize = true;\r
+                       this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK;\r
+                       this.closeButton.Location = new System.Drawing.Point(304, 321);\r
+                       this.closeButton.Margin = new System.Windows.Forms.Padding(5);\r
+                       this.closeButton.Name = "closeButton";\r
+                       this.closeButton.Size = new System.Drawing.Size(75, 22);\r
+                       this.closeButton.TabIndex = 13;\r
+                       this.closeButton.Text = "閉じる";\r
+                       // \r
+                       // tableLayoutPanel\r
+                       // \r
+                       this.tableLayoutPanel.ColumnCount = 2;\r
+                       this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+                       this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+                       this.tableLayoutPanel.Controls.Add(this.stateLabel, 0, 2);\r
+                       this.tableLayoutPanel.Controls.Add(this.typeValueLabel, 1, 6);\r
+                       this.tableLayoutPanel.Controls.Add(this.tabControl1, 0, 7);\r
+                       this.tableLayoutPanel.Controls.Add(this.licenseLinkLabel, 1, 5);\r
+                       this.tableLayoutPanel.Controls.Add(this.flowLayoutPanel1, 0, 0);\r
+                       this.tableLayoutPanel.Controls.Add(this.summaryTextBox, 0, 1);\r
+                       this.tableLayoutPanel.Controls.Add(this.tagsTextBox, 1, 4);\r
+                       this.tableLayoutPanel.Controls.Add(this.closeButton, 1, 8);\r
+                       this.tableLayoutPanel.Controls.Add(this.typeLabel, 0, 6);\r
+                       this.tableLayoutPanel.Controls.Add(this.licenseLabel, 0, 5);\r
+                       this.tableLayoutPanel.Controls.Add(this.tagsLabel, 0, 4);\r
+                       this.tableLayoutPanel.Controls.Add(this.urlLabel, 0, 3);\r
+                       this.tableLayoutPanel.Controls.Add(this.urlLinkLabel, 1, 3);\r
+                       this.tableLayoutPanel.Controls.Add(this.statusLinkLabel, 1, 2);\r
+                       this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;\r
+                       this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0);\r
+                       this.tableLayoutPanel.Name = "tableLayoutPanel";\r
+                       this.tableLayoutPanel.Padding = new System.Windows.Forms.Padding(8);\r
+                       this.tableLayoutPanel.RowCount = 9;\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 38F));\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+                       this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+                       this.tableLayoutPanel.Size = new System.Drawing.Size(392, 356);\r
+                       this.tableLayoutPanel.TabIndex = 0;\r
+                       // \r
+                       // stateLabel\r
+                       // \r
+                       this.stateLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.stateLabel.AutoSize = true;\r
+                       this.stateLabel.Location = new System.Drawing.Point(11, 78);\r
+                       this.stateLabel.Name = "stateLabel";\r
+                       this.stateLabel.Size = new System.Drawing.Size(113, 12);\r
+                       this.stateLabel.TabIndex = 2;\r
+                       this.stateLabel.Text = "インストール先フォルダ:";\r
+                       // \r
+                       // statusLinkLabel\r
+                       // \r
+                       this.statusLinkLabel.Anchor = System.Windows.Forms.AnchorStyles.Left;\r
+                       this.statusLinkLabel.AutoSize = true;\r
+                       this.statusLinkLabel.Enabled = false;\r
+                       this.statusLinkLabel.Location = new System.Drawing.Point(130, 78);\r
+                       this.statusLinkLabel.Name = "statusLinkLabel";\r
+                       this.statusLinkLabel.Size = new System.Drawing.Size(127, 12);\r
+                       this.statusLinkLabel.TabIndex = 3;\r
+                       this.statusLinkLabel.TabStop = true;\r
+                       this.statusLinkLabel.Text = "インストールされていません";\r
+                       this.statusLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelLinkClicked);\r
+                       // \r
+                       // PackageInfoForm\r
+                       // \r
+                       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
+                       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+                       this.ClientSize = new System.Drawing.Size(392, 356);\r
+                       this.Controls.Add(this.tableLayoutPanel);\r
+                       this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;\r
+                       this.Name = "PackageInfoForm";\r
+                       this.ShowIcon = false;\r
+                       this.ShowInTaskbar = false;\r
+                       this.flowLayoutPanel1.ResumeLayout(false);\r
+                       this.flowLayoutPanel1.PerformLayout();\r
+                       this.tableLayoutPanel.ResumeLayout(false);\r
+                       this.tableLayoutPanel.PerformLayout();\r
+                       this.ResumeLayout(false);\r
+               }\r
+               private System.Windows.Forms.LinkLabel statusLinkLabel;\r
+               private System.Windows.Forms.Label stateLabel;\r
+               private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;\r
+               private System.Windows.Forms.Button closeButton;\r
+               private System.Windows.Forms.TabControl tabControl1;\r
+               private System.Windows.Forms.TextBox summaryTextBox;\r
+               private System.Windows.Forms.Label typeValueLabel;\r
+               private System.Windows.Forms.Label typeLabel;\r
+               private System.Windows.Forms.Label licenseLabel;\r
+               private System.Windows.Forms.LinkLabel licenseLinkLabel;\r
+               private System.Windows.Forms.TextBox tagsTextBox;\r
+               private System.Windows.Forms.Label tagsLabel;\r
+               private System.Windows.Forms.LinkLabel urlLinkLabel;\r
+               private System.Windows.Forms.Label urlLabel;\r
+               private System.Windows.Forms.Label nameLabel;\r
+               private System.Windows.Forms.Label iconLabel;\r
+               private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;\r
+       }\r
+}\r
diff --git a/AppliStation/PackageInfoForm.cs b/AppliStation/PackageInfoForm.cs
new file mode 100644 (file)
index 0000000..d2d2218
--- /dev/null
@@ -0,0 +1,194 @@
+using System;\r
+using System.Drawing;\r
+using System.Windows.Forms;\r
+using NaGet.Packages.Install;\r
+using NaGet.Packages;\r
+using System.Text;\r
+\r
+namespace AppliStation\r
+{\r
+       /// <summary>\r
+       /// Description of PackageInfoForm.\r
+       /// </summary>\r
+       public partial class PackageInfoForm : Form\r
+       {\r
+               private Package pkg;\r
+               \r
+               public PackageInfoForm()\r
+               {\r
+                       InitializeComponent();\r
+               }\r
+               \r
+               public Package SelectedObject {\r
+                       get { return pkg; }\r
+                       set {\r
+                               pkg = value;\r
+                               updateSelectedObject();\r
+                       }\r
+               }\r
+               \r
+               private void updateSelectedObject()\r
+               {\r
+                       bool isInstalledPackage = pkg is InstalledPackage;\r
+                       \r
+                       iconLabel.Image = null;\r
+                       iconLabel.Size = Size.Empty;\r
+                       if (isInstalledPackage) {\r
+                               Icon icon = AppliStation.Util.PackageUtils.GetIconForPackage((InstalledPackage) pkg);\r
+                               if (icon != null) {\r
+                                       iconLabel.Image = icon.ToBitmap();\r
+                                       iconLabel.Size = icon.Size;\r
+                               }\r
+                       }\r
+                       nameLabel.Text = string.Format("{0} ({1})", pkg.Name, pkg.Version);\r
+                       nameLabel.Font = new Font(SystemFonts.DefaultFont.FontFamily, SystemFonts.DefaultFont.Size*1.5f);\r
+                       \r
+                       summaryTextBox.Text = pkg.Summary;\r
+                       \r
+                       if (isInstalledPackage) {\r
+                               UninstallInformation uninstInfo = ((InstalledPackage) pkg).UninstallInfo;\r
+                               \r
+                               string instPath = null;\r
+                               if (pkg.Type == InstallerType.ARCHIVE) {\r
+                                       instPath = System.IO.Path.Combine(NaGet.Env.ArchiveProgramFiles, pkg.Name);\r
+                               } else if (System.IO.Directory.Exists(uninstInfo.InstallLocation)) {\r
+                                       instPath = uninstInfo.InstallLocation;\r
+                               }\r
+                               \r
+                               statusLinkLabel.Links.Clear();\r
+                               if (string.IsNullOrEmpty(instPath)) {\r
+                                       statusLinkLabel.Text = "\8fî\95ñ\82ª\92ñ\8b\9f\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ";\r
+                                       statusLinkLabel.Enabled = false;\r
+                               } else {\r
+                                       statusLinkLabel.Text = instPath;\r
+                                       statusLinkLabel.Enabled = true;\r
+                                       \r
+                                       addLinkToLinkLabel(statusLinkLabel, uninstInfo.InstallLocation, uninstInfo.InstallLocation);\r
+                               }\r
+                       }\r
+                       urlLinkLabel.Links.Clear();\r
+                       if (pkg.Url != null) {\r
+                               urlLinkLabel.Text = pkg.Url.Href;\r
+                               urlLinkLabel.Links.Add(0, pkg.Url.Href.Length, pkg.Url.Href);\r
+                       } else {\r
+                               urlLinkLabel.Text = string.Empty;\r
+                               urlLinkLabel.Enabled = false;\r
+                               urlLabel.Enabled = false;\r
+                       }\r
+                       tagsTextBox.Text = pkg.Tags;\r
+                       setLinkLabelFromLicense(licenseLinkLabel, pkg.License);\r
+                       typeValueLabel.Text = pkg.Type.ToString();\r
+                       \r
+                       tabControl1.TabPages.Clear();\r
+                       foreach (Installer inst in pkg.Installer) {\r
+                               TabPage page = new TabPage(string.Format("\83C\83\93\83X\83g\81[\83\89 \82»\82Ì{0}", tabControl1.TabCount+1));\r
+                               page.Dock = DockStyle.Fill;\r
+                               \r
+                               InstallerInfoForm instForm = new InstallerInfoForm();\r
+                               instForm.SelectedObject = inst;\r
+                               instForm.Dock = DockStyle.Fill;\r
+                               page.Controls.Add(instForm);\r
+                               \r
+                               tabControl1.TabPages.Add(page);\r
+                       }\r
+               }\r
+               \r
+               private static void setLinkLabelFromLicense(LinkLabel linklabel, string license)\r
+               {\r
+                       linklabel.Enabled = true;\r
+                       switch (license ?? string.Empty) {\r
+                               case "":\r
+                                       linklabel.Text = "\83t\83\8a\81[\83\\83t\83g\83E\83F\83A (\96³\8f\9e)";\r
+                                       linklabel.Enabled = false;\r
+                                       break;\r
+                               case "GPL":\r
+                                       linklabel.Text = "GPL (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "GPL", @"http://www.gnu.org/licenses/gpl.ja.html");\r
+                                       addLinkToLinkLabel(linklabel, "\83I\81[\83v\83\93\83\\81[\83X", @"http://creativecommons.org/licenses/GPL/2.0/deed.ja");\r
+                                       break;\r
+                               case "GPLv2":\r
+                                       linklabel.Text = "GPLv2 (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "GPLv2", @"http://www.gnu.org/licenses/gpl-2.0.html");\r
+                                       break;\r
+                               case "GPLv3":\r
+                                       linklabel.Text = "GPLv3 (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "GPLv3", @"http://www.gnu.org/licenses/gpl-3.0.html");\r
+                                       break;\r
+                               case "LGPL":\r
+                                       linklabel.Text = "LGPL (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "LGPL", @"http://www.gnu.org/licenses/lgpl.ja.html");\r
+                                       addLinkToLinkLabel(linklabel, "\83I\81[\83v\83\93\83\\81[\83X", @"http://creativecommons.org/licenses/LGPL/2.1/deed.ja");\r
+                                       break;\r
+                               case "LGPLv2":\r
+                                       linklabel.Text = "LGPLv2 (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "LGPLv2", @"http://www.gnu.org/licenses/lgpl-2.1.html");\r
+                                       break;\r
+                               case "LGPLv3":\r
+                                       linklabel.Text = "LGPLv3 (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "LGPLv3", @"http://www.gnu.org/licenses/lgpl-3.0.html");\r
+                                       break;\r
+                               case "MPL":\r
+                                       linklabel.Text = "MPL (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "MPL", @"http://www.mozilla.org/MPL/MPL-1.1.html");\r
+                                       break;\r
+                               case "CPL":\r
+                                       linklabel.Text = "CPL (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       linklabel.Links.Add(0, linklabel.Text.Length, @"http://sourceforge.jp/projects/opensource/wiki/licenses%2FCommon_Public_License");\r
+                                       break;\r
+                               case "MIT":\r
+                                       linklabel.Text = "MIT\83\89\83C\83Z\83\93\83X (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "MIT\83\89\83C\83Z\83\93\83X", @"http://www.opensource.org/licenses/mit-license.php");\r
+                                       break;\r
+                               case "BSD":\r
+                                       linklabel.Text = "\8fC\90³\8dÏBSD\83\89\83C\83Z\83\93\83X (\83I\81[\83v\83\93\83\\81[\83X)";\r
+                                       addLinkToLinkLabel(linklabel, "BSD\83\89\83C\83Z\83\93\83X", @"http://www.opensource.org/licenses/bsd-license.php");\r
+                                       break;\r
+                               case "NYSL":\r
+                                       linklabel.Text = "\8eÏ\82é\82È\82è\8fÄ\82­\82È\82è\8dD\82«\82É\82µ\82ë\83\89\83C\83Z\83\93\83X";\r
+                                       linklabel.Links.Add(0, linklabel.Text.Length, @"http://www.kmonos.net/nysl/");\r
+                                       break;\r
+                               case "Public Domain":\r
+                                       linklabel.Text = "\83p\83u\83\8a\83b\83N\83h\83\81\83C\83\93 (\92\98\8dì\8c \94ñ\93K\97p)";\r
+                                       linklabel.Links.Add(0, linklabel.Text.Length, @"http://e-words.jp/w/E38391E38396E383AAE38383E382AFE38389E383A1E382A4E383B3.html");\r
+                                       break;\r
+                               default:\r
+                                       if (license.StartsWith("http://")) {\r
+                                               linklabel.Text = license;\r
+                                               linklabel.Links.Add(0, license.Length, license);\r
+                                       } else {\r
+                                               linklabel.Text = license;\r
+                                               linklabel.Links.Add(0, 0, string.Empty);\r
+                                       }\r
+                                       break;\r
+                       }\r
+                       \r
+               }\r
+               \r
+               /// <summary>\r
+               /// \83\8a\83\93\83N\83\89\83x\83\8b\82Ì\83\8a\83\93\83N\91}\93ü\95Ö\97\98\83\81\83\\83b\83h\r
+               /// </summary>\r
+               /// <param name="linkLabel">\91Î\8fÛ\83\8a\83\93\83N\83\89\83x\83\8b</param>\r
+               /// <param name="word">\83\8a\83\93\83N\91Î\8fÛ\95\8e\9a\97ñ</param>\r
+               /// <param name="link">\83\8a\83\93\83N\83I\83u\83W\83F\83N\83g</param>\r
+               private static void addLinkToLinkLabel(LinkLabel linkLabel, string word, string link)\r
+               {\r
+                       int pos = linkLabel.Text.IndexOf(word, 0);\r
+                       if (pos >= 0) {\r
+                               linkLabel.Links.Add(pos, word.Length, link);\r
+                       } else throw new ArgumentException(string.Format("label text \"{0}\" does not contain \"{1}\"!", linkLabel.Text, word));\r
+               }\r
+               \r
+               private void linkLabelLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)\r
+               {\r
+                       string linkData = e.Link.LinkData.ToString();\r
+                       \r
+                       if (System.IO.Directory.Exists(linkData)) {\r
+                               e.Link.Visited = true;\r
+                               System.Diagnostics.Process.Start(e.Link.LinkData.ToString());\r
+                       } else if (System.Text.RegularExpressions.Regex.IsMatch(linkData, @"(https?|file)://")) {\r
+                               e.Link.Visited = true;\r
+                               System.Diagnostics.Process.Start(linkData);\r
+                       }\r
+               }\r
+       }\r
+}\r
index cbf6bcb..0463240 100644 (file)
@@ -59,6 +59,7 @@
                        this.webGoogleSearchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.openInstalledDirectoryStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.detailBox = new System.Windows.Forms.RichTextBox();\r
+                       this.propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.tableLayoutPanel1.SuspendLayout();\r
                        this.toolStripContainer.SuspendLayout();\r
                        this.packageListFilterToolStrip.SuspendLayout();\r
@@ -72,7 +73,7 @@
                        // toolStripSeparator1\r
                        // \r
                        this.toolStripSeparator1.Name = "toolStripSeparator1";\r
-                       this.toolStripSeparator1.Size = new System.Drawing.Size(222, 6);\r
+                       this.toolStripSeparator1.Size = new System.Drawing.Size(228, 6);\r
                        // \r
                        // tableLayoutPanel1\r
                        // \r
                                                                        this.searchTextBox});\r
                        this.packageListFilterToolStrip.Location = new System.Drawing.Point(3, 0);\r
                        this.packageListFilterToolStrip.Name = "packageListFilterToolStrip";\r
-                       this.packageListFilterToolStrip.Size = new System.Drawing.Size(206, 25);\r
+                       this.packageListFilterToolStrip.Size = new System.Drawing.Size(175, 25);\r
                        this.packageListFilterToolStrip.TabIndex = 1;\r
                        // \r
                        // packageFilterToolStripDropDownButton\r
                        // allPackageFilterToolStripMenuItem\r
                        // \r
                        this.allPackageFilterToolStripMenuItem.Name = "allPackageFilterToolStripMenuItem";\r
-                       this.allPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+                       this.allPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(150, 22);\r
                        this.allPackageFilterToolStripMenuItem.Text = "全て";\r
                        this.allPackageFilterToolStripMenuItem.ToolTipText = "全てのソフトを表示";\r
                        this.allPackageFilterToolStripMenuItem.Click += new System.EventHandler(this.AnyPackageFilterToolStripMenuItemClicked);\r
                        // notInstalledPackageFilterToolStripMenuItem\r
                        // \r
                        this.notInstalledPackageFilterToolStripMenuItem.Name = "notInstalledPackageFilterToolStripMenuItem";\r
-                       this.notInstalledPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+                       this.notInstalledPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(150, 22);\r
                        this.notInstalledPackageFilterToolStripMenuItem.Text = "未インストール";\r
                        this.notInstalledPackageFilterToolStripMenuItem.ToolTipText = "インストールされていないソフトを表示";\r
                        this.notInstalledPackageFilterToolStripMenuItem.Click += new System.EventHandler(this.AnyPackageFilterToolStripMenuItemClicked);\r
                        // installedASPackageFilterToolStripMenuItem\r
                        // \r
                        this.installedASPackageFilterToolStripMenuItem.Name = "installedASPackageFilterToolStripMenuItem";\r
-                       this.installedASPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+                       this.installedASPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(150, 22);\r
                        this.installedASPackageFilterToolStripMenuItem.Text = "AppliStation内";\r
                        this.installedASPackageFilterToolStripMenuItem.ToolTipText = "AppliStationにインストールされているソフトを表示";\r
                        this.installedASPackageFilterToolStripMenuItem.Click += new System.EventHandler(this.AnyPackageFilterToolStripMenuItemClicked);\r
                        // installedSysPackageFilterToolStripMenuItem\r
                        // \r
                        this.installedSysPackageFilterToolStripMenuItem.Name = "installedSysPackageFilterToolStripMenuItem";\r
-                       this.installedSysPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+                       this.installedSysPackageFilterToolStripMenuItem.Size = new System.Drawing.Size(150, 22);\r
                        this.installedSysPackageFilterToolStripMenuItem.Text = "コンピュータ内";\r
                        this.installedSysPackageFilterToolStripMenuItem.ToolTipText = "コンピュータにインストールされているソフトを表示";\r
                        this.installedSysPackageFilterToolStripMenuItem.Click += new System.EventHandler(this.AnyPackageFilterToolStripMenuItemClicked);\r
                        // \r
                        this.localUpdateToolStripMenuItem.Name = "localUpdateToolStripMenuItem";\r
                        this.localUpdateToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F5;\r
-                       this.localUpdateToolStripMenuItem.Size = new System.Drawing.Size(250, 22);\r
+                       this.localUpdateToolStripMenuItem.Size = new System.Drawing.Size(256, 22);\r
                        this.localUpdateToolStripMenuItem.Text = "インストール済ソフトの読み直し(&R)";\r
                        this.localUpdateToolStripMenuItem.Click += new System.EventHandler(this.LocalupdateToolStripMenuItemClick);\r
                        // \r
                                                                        this.uninstallToolStripMenuItem,\r
                                                                        this.toolStripSeparator1,\r
                                                                        this.webResourcesToolStripMenuItem,\r
-                                                                       this.openInstalledDirectoryStripMenuItem});\r
+                                                                       this.openInstalledDirectoryStripMenuItem,\r
+                                                                       this.propertiesToolStripMenuItem});\r
                        this.packageListContextMenuStrip.Name = "packageListContextMenuStrip";\r
-                       this.packageListContextMenuStrip.Size = new System.Drawing.Size(226, 98);\r
+                       this.packageListContextMenuStrip.Size = new System.Drawing.Size(232, 142);\r
                        this.packageListContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.PackageListContextMenuStripOpening);\r
                        // \r
                        // installToolStripMenuItem\r
                        // \r
                        this.installToolStripMenuItem.Name = "installToolStripMenuItem";\r
-                       this.installToolStripMenuItem.Size = new System.Drawing.Size(225, 22);\r
+                       this.installToolStripMenuItem.Size = new System.Drawing.Size(231, 22);\r
                        this.installToolStripMenuItem.Text = "インストール(&I)...";\r
                        this.installToolStripMenuItem.Click += new System.EventHandler(this.InstallToolStripButtonClick);\r
                        // \r
                        // uninstallToolStripMenuItem\r
                        // \r
                        this.uninstallToolStripMenuItem.Name = "uninstallToolStripMenuItem";\r
-                       this.uninstallToolStripMenuItem.Size = new System.Drawing.Size(225, 22);\r
+                       this.uninstallToolStripMenuItem.Size = new System.Drawing.Size(231, 22);\r
                        this.uninstallToolStripMenuItem.Text = "アンインストール(&U)...";\r
                        this.uninstallToolStripMenuItem.Click += new System.EventHandler(this.UninstallToolStripButtonClick);\r
                        // \r
                                                                        this.webOfficialToolStripMenuItem,\r
                                                                        this.webGoogleSearchToolStripMenuItem});\r
                        this.webResourcesToolStripMenuItem.Name = "webResourcesToolStripMenuItem";\r
-                       this.webResourcesToolStripMenuItem.Size = new System.Drawing.Size(225, 22);\r
+                       this.webResourcesToolStripMenuItem.Size = new System.Drawing.Size(231, 22);\r
                        this.webResourcesToolStripMenuItem.Tag = "\"{0}\"に関するWebページ(&W)";\r
                        // \r
                        // webOfficialToolStripMenuItem\r
                        // \r
                        this.webOfficialToolStripMenuItem.Name = "webOfficialToolStripMenuItem";\r
-                       this.webOfficialToolStripMenuItem.Size = new System.Drawing.Size(145, 22);\r
+                       this.webOfficialToolStripMenuItem.Size = new System.Drawing.Size(151, 22);\r
                        this.webOfficialToolStripMenuItem.Text = "公式サイト(&O)";\r
                        this.webOfficialToolStripMenuItem.Click += new System.EventHandler(this.WebOfficialToolStripMenuItemClick);\r
                        // \r
                        // webGoogleSearchToolStripMenuItem\r
                        // \r
                        this.webGoogleSearchToolStripMenuItem.Name = "webGoogleSearchToolStripMenuItem";\r
-                       this.webGoogleSearchToolStripMenuItem.Size = new System.Drawing.Size(145, 22);\r
+                       this.webGoogleSearchToolStripMenuItem.Size = new System.Drawing.Size(151, 22);\r
                        this.webGoogleSearchToolStripMenuItem.Text = "Google検索(&G)";\r
                        this.webGoogleSearchToolStripMenuItem.Click += new System.EventHandler(this.WebGoogleSearchToolStripMenuItemClick);\r
                        // \r
                        // openInstalledDirectoryStripMenuItem\r
                        // \r
                        this.openInstalledDirectoryStripMenuItem.Name = "openInstalledDirectoryStripMenuItem";\r
-                       this.openInstalledDirectoryStripMenuItem.Size = new System.Drawing.Size(225, 22);\r
+                       this.openInstalledDirectoryStripMenuItem.Size = new System.Drawing.Size(231, 22);\r
                        this.openInstalledDirectoryStripMenuItem.Text = "インストール先のフォルダを開く(&O)";\r
                        this.openInstalledDirectoryStripMenuItem.Click += new System.EventHandler(this.OpenInstalledDirectoryStripMenuItemClick);\r
                        // \r
                        this.detailBox.Text = "";\r
                        this.detailBox.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.PackageDetailBoxLinkClicked);\r
                        // \r
+                       // propertiesToolStripMenuItem\r
+                       // \r
+                       this.propertiesToolStripMenuItem.Name = "propertiesToolStripMenuItem";\r
+                       this.propertiesToolStripMenuItem.Size = new System.Drawing.Size(231, 22);\r
+                       this.propertiesToolStripMenuItem.Text = "プロパティ(&R)";\r
+                       this.propertiesToolStripMenuItem.Click += new System.EventHandler(this.PropertiesToolStripMenuItemClick);\r
+                       // \r
                        // PackageListViewForm\r
                        // \r
                        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
                        this.packageListContextMenuStrip.ResumeLayout(false);\r
                        this.ResumeLayout(false);\r
                }\r
+               private System.Windows.Forms.ToolStripMenuItem propertiesToolStripMenuItem;\r
                private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;\r
                private System.Windows.Forms.ToolStripMenuItem openInstalledDirectoryStripMenuItem;\r
                private System.Windows.Forms.ToolStripMenuItem webGoogleSearchToolStripMenuItem;\r
index f01c514..fd5b492 100644 (file)
@@ -543,6 +543,21 @@ namespace AppliStation
                        }\r
                }\r
                \r
+               \r
+               void PropertiesToolStripMenuItemClick(object sender, EventArgs e)\r
+               {\r
+                       foreach (Package pkg in SelectedPackages<Package>()) {\r
+                               PackageInfoForm form = new PackageInfoForm();\r
+                               form.SelectedObject = pkg;\r
+                               form.Text = pkg.ToString() + "\82Ì\83v\83\8d\83p\83e\83B";\r
+                               form.AutoSize = true;\r
+                               \r
+                               form.ShowDialog(this);\r
+\r
+                               break;\r
+                       }\r
+               }\r
+               \r
                void PackageListContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
                {\r
                        // \91I\91ð\82³\82ê\82Ä\82¢\82È\82¢\82È\82ç\8aJ\82©\82È\82¢\r