#At file:///C:/Users/Reggie/work/wex/installer/ based on revid:iggy@stripped
256 Reggie Burnett 2011-01-17
initial implementation of catalog support
added:
WexInstaller/Core/ProductCatalog.cs
WexInstaller/Core/ProductManifest.cs
WexInstaller/Resources/MySQLInstallerProductCatalog_Download.png
WexInstaller/Resources/MySQLInstallerProductCatalog_DownloadCom.png
WexInstaller/Resources/MySQLInstallerProductCatalog_InPackage.png
WexInstaller/Resources/MySQLInstallerProductCatalog_OnDisk.png
WexInstaller/Resources/wex_product_catalog.png
modified:
Setup_Net/products.xml
WexInstaller/Controls/FeatureTreeView.cs
WexInstaller/Core/Product.cs
WexInstaller/Core/ProductCategory.cs
WexInstaller/Core/ProductManager.cs
WexInstaller/InstallWizard/Features.Designer.cs
WexInstaller/InstallWizard/Features.cs
WexInstaller/InstallWizard/Features.resx
WexInstaller/InstallWizard/InstallType.Designer.cs
WexInstaller/InstallWizard/InstallType.cs
WexInstaller/Properties/Resources.Designer.cs
WexInstaller/Properties/Resources.resx
WexInstaller/WexInstaller.csproj
=== modified file 'Setup_Net/products.xml'
=== modified file 'Setup_Net/products.xml'
--- a/Setup_Net/products.xml 2010-12-09 16:05:50 +0000
+++ b/Setup_Net/products.xml 2011-01-17 17:05:19 +0000
@@ -1,89 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
-<ProductCategories>
+<ProductManifest>
+
+ <ProductCatalogs>
+ <ProductCatalog id="mysql-5.5-gpl" name="MySQL 5.5" description="MySQL 5.5 Community Edition" commercial="false" default="true">
+ </ProductCatalog>
+ <ProductCatalog id="mysql-5.5-com" name="MySQL 5.5" description="MySQL 5.5 Commercial Edition" commercial="true" default="false">
+ <Products>
+ <Product id="Connector-net" />
+ </Products>
+ </ProductCatalog>
+ <ProductCatalog id="mysql-5.1-gpl" name="MySQL 5.1" description="MySQL 5.1 Community Edition" commercial="false" default="false">
+ </ProductCatalog>
+ </ProductCatalogs>
+
+ <ProductCategories>
<ProductCategory name="Server" title="MySql Servers" description="MySQL Database Servers">
- <Product name="mysql-server" title="MySQL Server" description="The core MySQL database server" default="true" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.5">
- <Packages>
- <Package id="{A2DDB7E9-6AD9-4482-9DDB-FC352B6C75B1}" type="MSI" arch="X86" filename="mysql-5.5.7-rc-win32.msi" thisVersion="5.5.7">
- <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server." size="0" default="true" display="true" hasComponents="true">
- <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="true" display="true" hasComponents="true"/>
- <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="true" display="true" hasComponents="true" />
- </Feature>
- <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="true" display="true" hasComponents="true">
- <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="true" display="true" hasComponents="true" />
- <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" display="true" hasComponents="true" />
- </Feature>
- <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="true" display="true" hasComponents="true" />
- <Feature name="MISC" title="MISC" description="MISC" default="true" display="0" hasComponents="0">
- <Feature name="IniFiles" title="" description="" default="true" display="0" hasComponents="true" />
- <Feature name="Server_Scripts" title="" description="" default="true" display="0" hasComponents="true" />
- </Feature>
- <Feature name="InstanceConfig" title="" description="" default="true" display="0" hasComponents="true" />
- <Feature name="ProgramMenu" title="" description="" default="true" display="0" hasComponents="true" />
- <Feature name="UserEditableDatafiles" title="" description="" default="true" display="0" hasComponents="true" />
- <Feature name="RegKeys" title="" description="" default="true" display="0" hasComponents="true" />
- </Package>
- </Packages>
- </Product>
+ <Product name="mysql-server" title="MySQL Server" description="The core MySQL database server" default="true" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.5">
+ <Packages>
+ <Package id="{A2DDB7E9-6AD9-4482-9DDB-FC352B6C75B1}" type="MSI" arch="X86" filename="mysql-5.5.7-rc-win32.msi" thisVersion="5.5.7">
+ <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server." size="0" default="true" display="true" hasComponents="true">
+ <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="true" display="true" hasComponents="true"/>
+ <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="true" display="true" hasComponents="true" />
+ </Feature>
+ <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="true" display="true" hasComponents="true">
+ <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="true" display="true" hasComponents="true" />
+ <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" display="true" hasComponents="true" />
+ </Feature>
+ <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="true" display="true" hasComponents="true" />
+ <Feature name="MISC" title="MISC" description="MISC" default="true" display="0" hasComponents="0">
+ <Feature name="IniFiles" title="" description="" default="true" display="0" hasComponents="true" />
+ <Feature name="Server_Scripts" title="" description="" default="true" display="0" hasComponents="true" />
+ </Feature>
+ <Feature name="InstanceConfig" title="" description="" default="true" display="0" hasComponents="true" />
+ <Feature name="ProgramMenu" title="" description="" default="true" display="0" hasComponents="true" />
+ <Feature name="UserEditableDatafiles" title="" description="" default="true" display="0" hasComponents="true" />
+ <Feature name="RegKeys" title="" description="" default="true" display="0" hasComponents="true" />
+ </Package>
+ </Packages>
+ </Product>
</ProductCategory>
-
+
<ProductCategory name="Application" title="Applications" description="Applications that work with MySQL">
- <Product name="Workbench" title="MySQL Workbench" description="The MySQL GUI Developer tool" default="true" upgradeId="{84C668F4-A0C9-4585-A463-AADE0EFC9391}" urlBaseDir="MySQLGUITools">
- <Packages>
- <Package id="{38766225-85FA-469B-A373-82BF1923A7E4}" type="MSI" arch="X86" filename="mysql-workbench-gpl-5.2.29-win32.msi" thisVersion="5.2.29">
- <Feature name="MysqlWorkbenchCore" title="MySQL Workbench Core" description="Core components needed to run MySQL Workbench" size="0" default="true" display="true" hasComponents="true"/>
- <Feature name="UpdateWizard" title="Update Feature" description="Built in update feature that connects to MySQL.com" size="0" default="true" display="true" hasComponents="true"/>
- </Package>
- </Packages>
- </Product>
+ <Product name="Workbench" title="MySQL Workbench" description="The MySQL GUI Developer tool" default="true" upgradeId="{84C668F4-A0C9-4585-A463-AADE0EFC9391}" urlBaseDir="MySQLGUITools">
+ <Packages>
+ <Package id="{38766225-85FA-469B-A373-82BF1923A7E4}" type="MSI" arch="X86" filename="mysql-workbench-gpl-5.2.29-win32.msi" thisVersion="5.2.29">
+ <Feature name="MysqlWorkbenchCore" title="MySQL Workbench Core" description="Core components needed to run MySQL Workbench" size="0" default="true" display="true" hasComponents="true"/>
+ <Feature name="UpdateWizard" title="Update Feature" description="Built in update feature that connects to MySQL.com" size="0" default="true" display="true" hasComponents="true"/>
+ </Package>
+ </Packages>
+ </Product>
</ProductCategory>
-
+
<ProductCategory name="Connector" title="MySQL Connectors" description="Database drivers for programming languages">
- <Product name="Connector-odbc" title="Connector/ODBC" description="MySQL Connector for ODBC" default="false" upgradeId="{FF073FBB-32E2-4052-B6B2-830C5ED4A809}" urlBaseDir="mysql-connector-odbc-5.1">
- <Packages>
- <Package id="{29042B1C-0713-4575-B7CA-5C8E7B0899D4}" type="MSI" arch="X86" filename="mysql-connector-odbc-5.1.6-win32.msi" thisVersion="5.1.6">
- <Feature name="ODBC_32" title="MySQL Connector/ODBC driver" default="true" description="Installs the MySQL ODBC 5.1.6 32-bit driver." display="true" hasComponents="true"/>
- <Feature name="Help" title="MySQL Connector/ODBC 5.1.6 Documentation" default="true" description="Installs the MySQL ODBC driver help." display="true" hasComponents="true"/>
- </Package>
- </Packages>
- </Product>
-
- <Product name="Connector-cpp" title="Connector/C++" description="MySQL Connector for C++" default="false" upgradeId="{FE990D78-8BB1-4880-930A-0430E707F3CA}" urlBaseDir="">
- <Packages>
- <Package id="{C13C9E31-F8D7-464D-A246-5A42AC0AB93E}" type="MSI" arch="X86" filename="mysql-connector-c++-1.0.5-win32.msi" thisVersion="1.0.5">
- <Feature name="ConnectorCPP" title="MySQL Connector C++" default="true" description="The MySQL Connector C++ client library." display="true" hasComponents="true"/>
- <Feature name="DebugLibraries" title="Debug Libary" default="false" description="Debug library and symbols." display="true" hasComponents="true"/>
- </Package>
- </Packages>
- </Product>
-
- <Product name="Connector-C" title="Connector/C" description="MySQL Connector for C" default="false" upgradeId="" urlBaseDir="">
- <Packages>
- <Package id="{66F9302D-E145-4375-8C84-54DA2339C483}" type="MSI" arch="X86" filename="mysql-connector-c-6.0.2-win32.msi" thisVersion="6.0.2">
- <Feature name="ConnectorC" title="MySQL Connector C" default="true" description="The MySQL Connector C client library." display="true" hasComponents="true"/>
- <Feature name="DebugLibraries" title="Debug Libary" default="false" description="Debug library and symbols." display="true" hasComponents="true"/>
- </Package>
- </Packages>
- </Product>
+ <Product name="Connector-odbc" title="Connector/ODBC" description="MySQL Connector for ODBC" default="false" upgradeId="{FF073FBB-32E2-4052-B6B2-830C5ED4A809}" urlBaseDir="mysql-connector-odbc-5.1">
+ <Packages>
+ <Package id="{29042B1C-0713-4575-B7CA-5C8E7B0899D4}" type="MSI" arch="X86" filename="mysql-connector-odbc-5.1.6-win32.msi" thisVersion="5.1.6">
+ <Feature name="ODBC_32" title="MySQL Connector/ODBC driver" default="true" description="Installs the MySQL ODBC 5.1.6 32-bit driver." display="true" hasComponents="true"/>
+ <Feature name="Help" title="MySQL Connector/ODBC 5.1.6 Documentation" default="true" description="Installs the MySQL ODBC driver help." display="true" hasComponents="true"/>
+ </Package>
+ </Packages>
+ </Product>
+
+ <Product name="Connector-cpp" title="Connector/C++" description="MySQL Connector for C++" default="false" upgradeId="{FE990D78-8BB1-4880-930A-0430E707F3CA}" urlBaseDir="">
+ <Packages>
+ <Package id="{C13C9E31-F8D7-464D-A246-5A42AC0AB93E}" type="MSI" arch="X86" filename="mysql-connector-c++-1.0.5-win32.msi" thisVersion="1.0.5">
+ <Feature name="ConnectorCPP" title="MySQL Connector C++" default="true" description="The MySQL Connector C++ client library." display="true" hasComponents="true"/>
+ <Feature name="DebugLibraries" title="Debug Libary" default="false" description="Debug library and symbols." display="true" hasComponents="true"/>
+ </Package>
+ </Packages>
+ </Product>
+
+ <Product name="Connector-C" title="Connector/C" description="MySQL Connector for C" default="false" upgradeId="" urlBaseDir="">
+ <Packages>
+ <Package id="{66F9302D-E145-4375-8C84-54DA2339C483}" type="MSI" arch="X86" filename="mysql-connector-c-6.0.2-win32.msi" thisVersion="6.0.2">
+ <Feature name="ConnectorC" title="MySQL Connector C" default="true" description="The MySQL Connector C client library." display="true" hasComponents="true"/>
+ <Feature name="DebugLibraries" title="Debug Libary" default="false" description="Debug library and symbols." display="true" hasComponents="true"/>
+ </Package>
+ </Packages>
+ </Product>
</ProductCategory>
-
+
<ProductCategory name="Documentation" title="Documentation" description="">
- <Product name="Universal-Docs" title="MySQL Documentation" description="A collection of popular MySQL Documents" default="false" upgradeId="{D884632C-A8F2-46E6-9944-F784F5C6A10A}" urlBaseDir="http://wb.mysql.com/installer">
- <Packages>
- <Package id="{C2AF9668-BC9E-412F-B766-D8238A8517B0}" type="MSI" arch="X86" filename="mysql-universal-installer-document-bundle-1.0.0.0.msi" thisVersion="1.0.0">
- <Feature name="ConnCPPA4" title="MySQL Connector C++ User Guide A4" default="false" description="The MySQL Connector C++ User Guide in A4 format." display="true" hasComponents="true"/>
- <Feature name="ConnCPP" title="MySQL Connector C++ User Guide" default="true" description="The MySQL Connector C++ User Guide." display="true" hasComponents="true"/>
- <Feature name="ConnNETA4" title="MySQL Connector .NET User Guide A4" default="false" description="The MySQL Connector .NET User Guide in A4 fomat" display="true" hasComponents="true"/>
- <Feature name="ConnNET" title="MySQL Connector .NET User Guide" default="true" description="The MySQL Connector .NET User Guide." display="true" hasComponents="true"/>
- <Feature name="ConnODBCA4" title="MySQL Connector ODBC User Guide A4" default="false" description="The MySQL Connector ODBC User Guide in A4 format." display="true" hasComponents="true"/>
- <Feature name="ConnODBC" title="MySQL Connector ODBC User Guide" default="true" description="The MySQL Connector ODBC User Guide." display="true" hasComponents="true"/>
- <Feature name="ServerA4Feature" title="MySQL Server User Guide A4" default="false" description="The MySQL Server User Guide in A4 format." display="true" hasComponents="true"/>
- <Feature name="ServerFeature" title="MySQL Server User Guide" default="true" description="The MySQL Server User Guide." display="true" hasComponents="true"/>
- <Feature name="WBA4Feature" title="MySQL Workbench User Guide A4" default="false" description="MySQL Workbench User Guide in A4 format." display="true" hasComponents="true"/>
- <Feature name="WBFeature" title="MySQL Workbench User Guide" default="true" description="The MySQL Workbench User Guide." display="true" hasComponents="true"/>
- </Package>
- </Packages>
- </Product>
+ <Product name="Universal-Docs" title="MySQL Documentation" description="A collection of popular MySQL Documents" default="false" upgradeId="{D884632C-A8F2-46E6-9944-F784F5C6A10A}" urlBaseDir="http://wb.mysql.com/installer">
+ <Packages>
+ <Package id="{C2AF9668-BC9E-412F-B766-D8238A8517B0}" type="MSI" arch="X86" filename="mysql-universal-installer-document-bundle-1.0.0.0.msi" thisVersion="1.0.0">
+ <Feature name="ConnCPPA4" title="MySQL Connector C++ User Guide A4" default="false" description="The MySQL Connector C++ User Guide in A4 format." display="true" hasComponents="true"/>
+ <Feature name="ConnCPP" title="MySQL Connector C++ User Guide" default="true" description="The MySQL Connector C++ User Guide." display="true" hasComponents="true"/>
+ <Feature name="ConnNETA4" title="MySQL Connector .NET User Guide A4" default="false" description="The MySQL Connector .NET User Guide in A4 fomat" display="true" hasComponents="true"/>
+ <Feature name="ConnNET" title="MySQL Connector .NET User Guide" default="true" description="The MySQL Connector .NET User Guide." display="true" hasComponents="true"/>
+ <Feature name="ConnODBCA4" title="MySQL Connector ODBC User Guide A4" default="false" description="The MySQL Connector ODBC User Guide in A4 format." display="true" hasComponents="true"/>
+ <Feature name="ConnODBC" title="MySQL Connector ODBC User Guide" default="true" description="The MySQL Connector ODBC User Guide." display="true" hasComponents="true"/>
+ <Feature name="ServerA4Feature" title="MySQL Server User Guide A4" default="false" description="The MySQL Server User Guide in A4 format." display="true" hasComponents="true"/>
+ <Feature name="ServerFeature" title="MySQL Server User Guide" default="true" description="The MySQL Server User Guide." display="true" hasComponents="true"/>
+ <Feature name="WBA4Feature" title="MySQL Workbench User Guide A4" default="false" description="MySQL Workbench User Guide in A4 format." display="true" hasComponents="true"/>
+ <Feature name="WBFeature" title="MySQL Workbench User Guide" default="true" description="The MySQL Workbench User Guide." display="true" hasComponents="true"/>
+ </Package>
+ </Packages>
+ </Product>
</ProductCategory>
-</ProductCategories>
+ </ProductCategories>
+</ProductManifest>
=== modified file 'WexInstaller/Controls/FeatureTreeView.cs'
--- a/WexInstaller/Controls/FeatureTreeView.cs 2011-01-10 17:05:21 +0000
+++ b/WexInstaller/Controls/FeatureTreeView.cs 2011-01-17 17:05:19 +0000
@@ -34,16 +34,12 @@
UpdateStyles();
}
- public void AddCategory(ProductCategory category)
+ public TreeNode AddCategory(ProductCategory category)
{
TreeNode node = Nodes.Add(category.Title);
node.ToolTipText = category.Description;
node.Tag = category;
-
- foreach (Product p in category.Products)
- {
- AddProduct(p, node);
- }
+ return node;
}
public void AddProduct(Product product, TreeNode parentNode)
=== modified file 'WexInstaller/Core/Product.cs'
--- a/WexInstaller/Core/Product.cs 2011-01-10 17:05:21 +0000
+++ b/WexInstaller/Core/Product.cs 2011-01-17 17:05:19 +0000
@@ -97,8 +97,8 @@
proposedInstalled = shouldInstall;
}
- [XmlAttribute("default")]
- public bool IncludeInDefault { get; set; }
+ //[XmlAttribute("default")]
+ //public bool IncludeInDefault { get; set; }
[XmlAttribute("upgradeId")]
public string UpgradeId { get; set; }
=== added file 'WexInstaller/Core/ProductCatalog.cs'
--- a/WexInstaller/Core/ProductCatalog.cs 1970-01-01 00:00:00 +0000
+++ b/WexInstaller/Core/ProductCatalog.cs 2011-01-17 17:05:19 +0000
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+using System.Runtime.Serialization;
+
+namespace WexInstaller.Core
+{
+ public class ProductCatalog
+ {
+ [XmlAttribute("id")]
+ public string Id;
+ [XmlAttribute("name")]
+ public string Name;
+ [XmlAttribute("description")]
+ public string Description;
+ [XmlAttribute("commercial")]
+ public bool Commercial;
+ [XmlAttribute("default")]
+ public bool Default;
+ [XmlArray("SetupTypes")]
+ public List<SetupType> SetupTypes;
+ [XmlArray("CatalogProducts")]
+ public List<CatalogProduct> Products;
+ }
+
+ public class CatalogProduct
+ {
+ [XmlIgnore]
+ public Product ReferencedProduct;
+
+ [XmlAttribute("productId")]
+ public string ProductId;
+
+ [XmlAttribute("setupTypeFlags")]
+ public int SetupTypeFlag;
+ }
+
+ public enum SetupTypeFlag : int
+ {
+ Full=64,
+ Custom=128
+ }
+
+ public class SetupType
+ {
+ [XmlAttribute("flag")]
+ public int Flag;
+ [XmlAttribute("name")]
+ public string Name;
+ [XmlAttribute("description")]
+ public string Description;
+
+ public bool IsFull
+ {
+ get { return Flag == (int)SetupTypeFlag.Full; }
+ }
+
+ public bool IsCustom
+ {
+ get { return Flag == (int)SetupTypeFlag.Custom; }
+ }
+
+ public bool Includes(CatalogProduct product)
+ {
+ return IsFull || ((product.SetupTypeFlag & Flag) != 0);
+ }
+ }
+}
=== modified file 'WexInstaller/Core/ProductCategory.cs'
--- a/WexInstaller/Core/ProductCategory.cs 2010-11-12 19:56:12 +0000
+++ b/WexInstaller/Core/ProductCategory.cs 2011-01-17 17:05:19 +0000
@@ -13,18 +13,6 @@
[XmlElement("Product")]
public List<Product> Products { get; set; }
- public void SetInstallType(SetupType setupType)
- {
- bool shouldInstall = setupType == SetupType.Full ||
- (setupType == SetupType.ServerOnly && Type == ProductCategoryType.Server);
-
- foreach (Product p in Products)
- {
- p.ProposedInstalled = shouldInstall ||
- (setupType == SetupType.DeveloperDefault && p.IncludeInDefault);
- }
- }
-
public long GetInstallationSizeEstimate()
{
long sizeEst = 0;
=== modified file 'WexInstaller/Core/ProductManager.cs'
--- a/WexInstaller/Core/ProductManager.cs 2010-11-22 18:28:54 +0000
+++ b/WexInstaller/Core/ProductManager.cs 2011-01-17 17:05:19 +0000
@@ -18,71 +18,77 @@
public static class ProductManager
{
- private static List<ProductCategory> categories = new List<ProductCategory>();
+ private static ProductManifest manifest;
public static ReadOnlyCollection<ProductCategory> ProductCategories
{
- get { return categories.AsReadOnly(); }
+ get { return manifest.ProductCategories.AsReadOnly(); }
+ }
+
+ public static ReadOnlyCollection<ProductCatalog> Catalogs
+ {
+ get { return manifest.ProductCatalogs.AsReadOnly(); }
}
public static bool ProductsInstalled { get; private set; }
-
public static bool ProductsUpgrade { get; private set; }
-
- private static ProductCategory[] ObjectifyManifest(string fileName)
- {
- ProductCategory[] fromFile = null;
-
- if (File.Exists(fileName))
- {
- XmlRootAttribute productCategories = new XmlRootAttribute("ProductCategories");
- XmlSerializer s = new XmlSerializer(typeof(ProductCategory[]), productCategories);
- TextReader w = new StreamReader(fileName);
- fromFile = (ProductCategory[])s.Deserialize(w);
- w.Close();
- }
-
- return fromFile;
- }
+ public static ProductCatalog ActiveCatalog { get; set; }
public static void Load()
{
Logger.LogTrace("ProductManager.Load()");
- ProductCategory[] productArray = ObjectifyManifest(InstallerConfiguration.ProductsManifest);
-
- if (productArray != null)
+ manifest = null;
+ if (File.Exists(InstallerConfiguration.ProductsManifest))
{
- lock (categories)
- {
- categories.Clear();
- foreach (ProductCategory pc in productArray)
- {
- categories.Add(pc);
- foreach (Product p in pc.Products)
- {
- p.PostInitialize(true);
- }
- }
- }
+ XmlRootAttribute productCategories = new XmlRootAttribute("ProductManifest");
+ XmlSerializer s = new XmlSerializer(typeof(ProductManifest));
+ TextReader w = new StreamReader(InstallerConfiguration.ProductsManifest);
+ manifest = (ProductManifest)s.Deserialize(w);
+ w.Close();
}
- foreach (ProductCategory cat in categories)
+ //TODO: fix this to handle it better
+ if (manifest == null || manifest.ProductCategories == null || manifest.ProductCatalogs == null)
+ throw new InvalidOperationException("Manifest failed to load properly");
+
+ foreach (ProductCategory pc in manifest.ProductCategories)
{
- cat.Type = (ProductCategoryType)Enum.Parse(typeof(ProductCategoryType), cat.Name);
- foreach (Product p in cat.Products)
+ pc.Type = (ProductCategoryType)Enum.Parse(typeof(ProductCategoryType), pc.Name);
+ foreach (Product p in pc.Products)
{
+ p.PostInitialize(true);
ProductsInstalled |= p.Installed;
ProductsUpgrade |= p.IsUpgrade;
- p.SetParent(cat);
+ p.SetParent(pc);
}
}
+
+ foreach (ProductCatalog catalog in manifest.ProductCatalogs)
+ foreach (CatalogProduct p in catalog.Products)
+ {
+ p.ReferencedProduct = GetProductById(p.ProductId);
+ if (p.ReferencedProduct == null)
+ //TODO: handle this better
+ throw new InvalidOperationException();
+ }
+
+ //TODO: replace this with catalog selection from command line
+ ActiveCatalog = manifest.ProductCatalogs[0];
}
public static event DownloadManifestProgressHandler DownloadManifestProgressChanged;
public static event DownloadManifestCompleteHandler DownloadManifestCompleted;
+ public static Product GetProductById(string id)
+ {
+ foreach (ProductCategory cat in manifest.ProductCategories)
+ foreach (Product p in cat.Products)
+ if (String.Compare(id, p.Name, true) == 0) return p;
+ return null;
+ }
+
public static void CancelDownload()
{
Logger.LogTrace("ProductManager.CancelDownload().");
=== added file 'WexInstaller/Core/ProductManifest.cs'
--- a/WexInstaller/Core/ProductManifest.cs 1970-01-01 00:00:00 +0000
+++ b/WexInstaller/Core/ProductManifest.cs 2011-01-17 17:05:19 +0000
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Serialization;
+using System.IO;
+
+namespace WexInstaller.Core
+{
+ public sealed class ProductManifest
+ {
+ [XmlArray()]
+ public List<ProductCatalog> ProductCatalogs { get; set; }
+ [XmlArray]
+ public List<ProductCategory> ProductCategories { get; set; }
+ }
+}
=== modified file 'WexInstaller/InstallWizard/Features.Designer.cs'
--- a/WexInstaller/InstallWizard/Features.Designer.cs 2011-01-10 17:05:21 +0000
+++ b/WexInstaller/InstallWizard/Features.Designer.cs 2011-01-17 17:05:19 +0000
@@ -31,21 +31,18 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FeatureSelection));
- this.stateImages = new System.Windows.Forms.ImageList(this.components);
this.label3 = new System.Windows.Forms.Label();
this.driveSpace = new WexInstaller.Controls.DriveSpaceControl();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.featureBox = new WexInstaller.Controls.FeatureBox();
this.featureTree = new WexInstaller.Controls.FeatureTreeView();
+ this.catalogList = new System.Windows.Forms.ComboBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.catalogImageList = new System.Windows.Forms.ImageList(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.SuspendLayout();
//
- // stateImages
- //
- this.stateImages.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("stateImages.ImageStream")));
- this.stateImages.TransparentColor = System.Drawing.Color.Transparent;
- this.stateImages.Images.SetKeyName(0, "Add.ico");
- this.stateImages.Images.SetKeyName(1, "Remove.ico");
- //
// label3
//
this.label3.AutoSize = true;
@@ -84,10 +81,10 @@
this.featureBox.BackColor = System.Drawing.SystemColors.Window;
this.featureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.featureBox.Font = new System.Drawing.Font("Tahoma", 8.25F);
- this.featureBox.Location = new System.Drawing.Point(302, 121);
+ this.featureBox.Location = new System.Drawing.Point(302, 157);
this.featureBox.Name = "featureBox";
this.featureBox.SelectedObject = null;
- this.featureBox.Size = new System.Drawing.Size(244, 292);
+ this.featureBox.Size = new System.Drawing.Size(244, 256);
this.featureBox.TabIndex = 11;
//
// featureTree
@@ -103,22 +100,70 @@
this.featureTree.ImageIndex = 0;
this.featureTree.ImageList = this.imageList1;
this.featureTree.ItemHeight = 40;
- this.featureTree.Location = new System.Drawing.Point(15, 121);
+ this.featureTree.Location = new System.Drawing.Point(15, 157);
this.featureTree.Name = "featureTree";
this.featureTree.SelectedImageIndex = 0;
this.featureTree.ShowLines = false;
this.featureTree.ShowPlusMinus = false;
this.featureTree.ShowRootLines = false;
- this.featureTree.Size = new System.Drawing.Size(279, 292);
+ this.featureTree.Size = new System.Drawing.Size(279, 256);
this.featureTree.TabIndex = 12;
this.featureTree.BeforeCheck += new System.Windows.Forms.TreeViewCancelEventHandler(this.featureTree_BeforeCheck);
this.featureTree.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.featureTree_NodeMouseClick);
//
+ // catalogList
+ //
+ this.catalogList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.catalogList.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
+ this.catalogList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.catalogList.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.catalogList.FormattingEnabled = true;
+ this.catalogList.ItemHeight = 20;
+ this.catalogList.Location = new System.Drawing.Point(53, 125);
+ this.catalogList.Name = "catalogList";
+ this.catalogList.Size = new System.Drawing.Size(493, 26);
+ this.catalogList.TabIndex = 13;
+ this.catalogList.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.catalogList_DrawItem);
+ this.catalogList.SelectedIndexChanged += new System.EventHandler(this.catalogList_SelectedIndexChanged);
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.Image = global::WexInstaller.Properties.Resources.wex_product_catalog;
+ this.pictureBox2.Location = new System.Drawing.Point(15, 111);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(32, 45);
+ this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
+ this.pictureBox2.TabIndex = 14;
+ this.pictureBox2.TabStop = false;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.label1.Location = new System.Drawing.Point(53, 108);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(98, 14);
+ this.label1.TabIndex = 15;
+ this.label1.Text = "Product Catalog:";
+ //
+ // catalogImageList
+ //
+ this.catalogImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("catalogImageList.ImageStream")));
+ this.catalogImageList.TransparentColor = System.Drawing.Color.Transparent;
+ this.catalogImageList.Images.SetKeyName(0, "MySQLInstallerProductCatalog_Download.png");
+ this.catalogImageList.Images.SetKeyName(1, "MySQLInstallerProductCatalog_DownloadCom.png");
+ this.catalogImageList.Images.SetKeyName(2, "MySQLInstallerProductCatalog_InPackage.png");
+ this.catalogImageList.Images.SetKeyName(3, "MySQLInstallerProductCatalog_OnDisk.png");
+ //
// FeatureSelection
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Window;
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.pictureBox2);
+ this.Controls.Add(this.catalogList);
this.Controls.Add(this.featureTree);
this.Controls.Add(this.featureBox);
this.Controls.Add(this.driveSpace);
@@ -131,6 +176,10 @@
this.Controls.SetChildIndex(this.driveSpace, 0);
this.Controls.SetChildIndex(this.featureBox, 0);
this.Controls.SetChildIndex(this.featureTree, 0);
+ this.Controls.SetChildIndex(this.catalogList, 0);
+ this.Controls.SetChildIndex(this.pictureBox2, 0);
+ this.Controls.SetChildIndex(this.label1, 0);
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -139,10 +188,13 @@
#endregion
private System.Windows.Forms.Label label3;
- private System.Windows.Forms.ImageList stateImages;
private DriveSpaceControl driveSpace;
private System.Windows.Forms.ImageList imageList1;
private FeatureBox featureBox;
private FeatureTreeView featureTree;
+ private System.Windows.Forms.ComboBox catalogList;
+ private System.Windows.Forms.PictureBox pictureBox2;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.ImageList catalogImageList;
}
}
=== modified file 'WexInstaller/InstallWizard/Features.cs'
--- a/WexInstaller/InstallWizard/Features.cs 2010-11-30 14:52:06 +0000
+++ b/WexInstaller/InstallWizard/Features.cs 2011-01-17 17:05:19 +0000
@@ -9,6 +9,7 @@
using WexInstaller.Properties;
using WexInstaller.Core;
using WexInstaller.Controls;
+using System.Windows.Forms.VisualStyles;
namespace WexInstaller
{
public partial class FeatureSelection : InstallerPanel
@@ -22,24 +23,16 @@
public override void Activate()
{
-
- featureTree.Nodes.Clear();
- foreach (ProductCategory pc in ProductManager.ProductCategories)
+ // load our catalog dropdown
+ catalogList.Items.Clear();
+ foreach (ProductCatalog catalog in ProductManager.Catalogs)
{
- if (pc.Products.Count == 1)
- {
- Product p = pc.Products[0];
- featureTree.AddProduct(p, null);
- }
- else
- {
- featureTree.AddCategory(pc);
- }
+ catalogList.Items.Add(new CatalogState(catalog));
}
+ catalogList.Items.Add(new CatalogState(Resources.AllMySQLProducts, true));
+ catalogList.Items.Add(new CatalogState(Resources.InstalledMySQLProducts, false));
+ catalogList.SelectedIndex = 0;
- featureTree.SelectedNode = featureTree.Nodes[0];
- featureBox.SelectedObject = featureTree.SelectedNode.Tag as ProductElement;
- driveSpace.Calculate();
NextButton.Text = Properties.Resources.NextButtonDefaultText;
base.Activate();
}
@@ -58,5 +51,145 @@
}
}
+ private void catalogList_DrawItem(object sender, DrawItemEventArgs e)
+ {
+ if (e.Index < 0) return;
+
+ CatalogState state = catalogList.Items[e.Index] as CatalogState;
+
+ // Draw the background of the item.
+ e.Graphics.FillRectangle(Brushes.White, e.Bounds);
+
+ Rectangle r = e.Bounds;
+ r.X += 2;
+
+ catalogImageList.Draw(e.Graphics, r.X, r.Y, state.DownloadState);
+ r.X += catalogImageList.ImageSize.Width + 5;
+
+ e.Graphics.DrawString(state.Text, Font, Brushes.Black, r);
+ SizeF textSize = e.Graphics.MeasureString(state.Text, Font);
+ r.X += textSize.ToSize().Width + 5;
+ e.Graphics.DrawString(state.SubText, Font, state.NeedsDownload ? Brushes.LightGreen : Brushes.LightGray, r);
+
+ // Draw the focus rectangle if the mouse hovers over an item.
+ e.DrawFocusRectangle();
+ }
+
+ private void catalogList_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // first we need to clear our feature tree
+ featureTree.Nodes.Clear();
+
+ ProductCatalog catalog = null;
+ bool installedItems = catalogList.SelectedIndex == (catalogList.Items.Count-1);
+ bool allProducts = catalogList.SelectedIndex == (catalogList.Items.Count-2);
+ if (!installedItems && !allProducts)
+ catalog = ProductManager.Catalogs[catalogList.SelectedIndex];
+
+ foreach (ProductCategory pc in ProductManager.ProductCategories)
+ {
+ List<Product> products = new List<Product>();
+
+ foreach (Product p in pc.Products)
+ {
+ if (allProducts)
+ products.Add(p);
+ else if (installedItems)
+ {
+ if (p.Installed) products.Add(p);
+ }
+ else
+ {
+ foreach (CatalogProduct cp in catalog.Products)
+ if (String.Compare(cp.ProductId, p.Name, true) == 0)
+ products.Add(p);
+ }
+ }
+ if (products.Count == 1)
+ featureTree.AddProduct(products[0], null);
+ else if (products.Count > 1)
+ {
+ TreeNode node = featureTree.AddCategory(pc);
+ foreach (Product p in products)
+ featureTree.AddProduct(p, node);
+ }
+ }
+
+ if (featureTree.Nodes.Count > 0)
+ {
+ featureTree.SelectedNode = featureTree.Nodes[0];
+ featureBox.SelectedObject = featureTree.SelectedNode.Tag as ProductElement;
+ }
+ else
+ featureBox.SelectedObject = null;
+ driveSpace.Calculate();
+ }
+ }
+
+ // This class represents a line in the catalog drop down. The state item indicates the download
+ // state of the products
+ class CatalogState
+ {
+ public const int ProductsDownload = 0;
+ public const int ProductsDownloadCommercial = 1;
+ public const int ProductsInCache = 2;
+ public const int InstalledProducts = 3;
+
+ public int DownloadState;
+ public string Text;
+
+ public CatalogState(ProductCatalog catalog)
+ {
+ Text = catalog.Description;
+ DownloadState = ProductsInCache;
+ DownloadState = GetCatalogDownloadState(catalog);
+ }
+
+ public CatalogState(string text, bool isAllProducts)
+ {
+ Text = text;
+ DownloadState = ProductsInCache;
+ DownloadState = isAllProducts ? GetAllDownloadState() : InstalledProducts;
+ }
+
+ public bool NeedsDownload
+ {
+ get { return DownloadState == ProductsDownload || DownloadState == ProductsDownloadCommercial; }
+ }
+
+ public string SubText
+ {
+ get
+ {
+ if (DownloadState == ProductsInCache) return Resources.PackagesAvailable;
+ if (DownloadState == InstalledProducts) return Resources.PackagesAlreadyInstalled;
+ if (DownloadState == ProductsDownloadCommercial) return Resources.PackagesAvailableForCommercialDownload;
+ return Resources.PackagesAvailableForDownload;
+ }
+ }
+
+ public int GetCatalogDownloadState(ProductCatalog catalog)
+ {
+ int index = ProductsInCache;
+ foreach (CatalogProduct cp in catalog.Products)
+ if (!cp.ReferencedProduct.FoundLocal)
+ {
+ index = ProductsDownload;
+ break;
+ }
+ if (catalog.Commercial && index == ProductsDownload)
+ index = ProductsDownloadCommercial;
+ return index;
+ }
+
+ public int GetAllDownloadState()
+ {
+ int index = ProductsInCache;
+ foreach (ProductCategory cat in ProductManager.ProductCategories)
+ foreach (Product p in cat.Products)
+ if (!p.FoundLocal)
+ index = ProductsDownload;
+ return index;
+ }
}
}
=== modified file 'WexInstaller/InstallWizard/Features.resx'
--- a/WexInstaller/InstallWizard/Features.resx 2010-08-11 15:20:48 +0000
+++ b/WexInstaller/InstallWizard/Features.resx 2011-01-17 17:05:19 +0000
@@ -117,56 +117,15 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
- <metadata name="stateImages.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>17, 17</value>
- </metadata>
- <data name="stateImages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>
- AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
- LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAe
- BwAAAk1TRnQBSQFMAgEBAgEAAdgBAAHYAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
- AwABEAMAAQEBAAEYBgABDCEAARoBdQEcARoBdQEcAQsBbwEPAQsBbwENAQgBawELAQgBawELrgABGgF1
- ARwBbgHQAYQBIQG+AUwBIQG+AUoBHAGoATkBCAFrAQuuAAEaAXUBHAFuAdEBhAEhAcABTwEhAcABTQEc
- AaoBOwEIAWsBC64AARoBdQEcAW4B0gGHAR4BwgFSASEBwgFQARwBrQE+AQgBawELrgABGgF1ARwBbwHV
- AYwBIQHDAVMBHgHDAVMBHAGvAT8BCAFrAQsPAAJKAcoBPAFAAdsBOAE6AdYBOAE7AdYBOAE6AdYBOAE7
- AdYBOAE6AdUBOAE5AdQBNwE4AdMBNwE4AdIBNgE4AdECNwHRAjYBzwE4ATYBzgE2ATQBzwFHAUYBxmAA
- ASABgwEpARoBdQEcARoBdQEcARoBdQEcARoBdQEcAQgBawELAVwBywF8AR8BxgFaAR8BxgFYARsBrgFC
- AQgBawELAQgBawELAQgBawELAQgBawELAQgBawELAQgBawELARgBIAHUASwBSgHyARkBMAHuARwBMQHu
- ARcBLQHuARYBKQHuARMBKAHtARIBIwHtARABHwHtAQ8BGwHsAQ0BFgHsAQwBEgHsAQsBDgHrAQoBCwHq
- AQoBBwHsAQMBAQHNYAABJwGNATQBGwG0AU0BGwG0AU0BGwG0AU0BGwG0AU0BGwG0AU0BXAHLAXwBHwHJ
- AV0BHwHIAVsBGwGuAUIBGwGuAUIBGwG0AU0BGwG0AU0BGwG0AU0BGwG0AU0BEAGAARwBWgFiAfIBRgF0
- Af8BIQFIAf8BKgFQAf8BKQFLAf8BJgFGAf8BIwFBAf8BIAE9Af8BHQE4Af8BGwE1Af8BGAEtAf8BFgEo
- Af8BFAEhAf8BEgEcAf8BEQEYAf8BHgEcAetgAAEoAZMBOAEYAdQBcQEcAdUBcwEcAdMBbgEeAdEBbQEe
- AdABaQEeAdABaAEfAc0BZQEfAc0BYgEfAckBXgEfAckBXQEfAcgBWwEfAcYBVwEfAcUBVwEhAcUBVQES
- AYcBIAF8AX4B9QGBAaAB/wFGAWgB/wEyAVYB/wEmAUkB/wEkAUUB/wEhAUAB/wEdATsB/wEaATYB/wEX
- ATIB/wEUAS4B/wESASoB/wEPASUB/wENAR0B/wEOAR4B/wEWARcB8WAAASkBlgE7ARcB2AF1ARwB2AF2
- ARwB1QFzARwB1QFxAR4B0wFtAR4B0QFrAR4B0AFoAR4BzgFmAR8BzQFjAR8BywFgAR8ByQFdAR8ByAFd
- AR8BxgFaAR8BxgFYARIBiwEjAXYBeQH7AY4BsAH/AXQBkwH/AXUBlAH/AWkBiQH/AVUBeAH/AUcBawH/
- AT8BYAH/ATIBUgH/AS4BTQH/ASsBSQH/ASkBRAH/ASUBQQH/ASIBOgH/ASIBPAH/ASkBMAH7YAABKwGe
- AUEBTAHvAaMBTgHwAaIBTwHuAZ4BTwHtAZwBUwHoAZoBGAHVAXABHAHTAXABHgHTAW4BHQHPAWgBHAHM
- AWEBUgHjAY0BUgHiAYsBUgHgAYgBUgHdAYYBHgGYATIBcQF2Af8BpgHEAf8BkQGsAf8BlAGxAf8BlgGv
- Af8BlQGwAf8BlAGwAf8BkwGwAf8BkwGsAf8BkAGqAf8BjgGmAf8BjAGkAf8BigGfAf8BhgGcAf8BiAGm
- Af8BYQFoAf9gAAEkAZ4BPAEkAZ4BPAEkAZ4BPAEkAZ4BPAEkAZ4BPAEkAZ4BPAFuAeUBoAEcAdYBcwEc
- AdUBcQEZAcMBXgESAYwBIwESAYwBIwESAYwBIwESAYwBIwESAYwBIwESAYwBIwF/AXsB+QGIAYoB+wGE
- AYMB+wGEAYMB+wGEAYMB+wGEAYMB+wGEAYMB+wKDAfsBgwGCAfsBgwGCAfsCggH7AYIBgwH7AYMBgAH7
- AYIBgAH7AoUB+wF+AXoB+W8AAR4BmAEyAW0B6gGmARsB2wF8ARsB2wF7ARsByAFkAR4BmAEyrgABHgGY
- ATIBcAHsAaYBGQHeAYEBGQHcAX4BGwHLAWgBHgGYATKuAAEeAZgBMgFvAe4BqgEZAeABhAEZAeABhAEZ
- AdIBcwEeAZgBMq4AAR4BmAEyAW4B8AGqARIB3gF/ARIB3gF/ARQB0wFwAR4BmAEyrgABJAGeATwBLAG7
- AVMBMQHBAVcBMQHBAVcBLAG7AVMBJAGeATyfAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUA
- AYAXAAP/AQAB+AEfAv8EAAH4AR8C/wQAAfgBHwL/BAAB+AEfAv8EAAH4AR82AAH4AR8C/wQAAfgBHwL/
- BAAB+AEfAv8EAAH4AR8C/wQAAfgBHwL/BAAL
-</value>
- </data>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>134, 17</value>
+ <value>15, 16</value>
</metadata>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABQ
- DwAAAk1TRnQBSQFMAgEBBAEAAYABAAGAAQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ DwAAAk1TRnQBSQFMAgEBBAEAAbgBAAG4AQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABYAMAATADAAEBAQABCAYAARIYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -234,6 +193,64 @@
AwABAQEAAQEFAAFAAQIWAAP//wD/AEMACw==
</value>
</data>
+ <metadata name="catalogImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>111, 18</value>
+ </metadata>
+ <data name="catalogImageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
+ LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAE
+ CwAAAk1TRnQBSQFMAgEBBAEAATABAAEwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+ AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+ AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+ AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+ ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+ AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+ AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+ AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+ ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+ AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+ AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+ ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+ AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+ AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ATAAC/w4A
+ Av8MAAH/AfIBvAHxAfQB/xwAAfIB9AH/DQAB8gH0Af8KAAH/AbwDSwFuARwB8wH/GQAB8QGYAQgB/wwA
+ AfEBmAEIAf8JAAH/AbwBSwEkBUsB7wH0Af8HAAT/CgAB/wHyAZgBwgIIAv8IAAH/AfIBmAHCAggB9AL2
+ Af8EAAH/Ae8DJAdLAfQDAAL/AfQB8gG8Ae8BkgH3AfAC/wcAAfMBmAKeAp8BCAH0Af8HAAHzAZgCngGf
+ AZgDeQEaAf8DAAH0AUsCIwEkAksBTAJLAUUBSwH0AgAB/wHyAfACBwK8AZgB7wGSAQcB8gYAAfMCmAN9
+ AZ4CCAH/BgAB8wKYAn0BeAF5AV4DWQEaAf8CAAHzA0sBJAFLAUwCdAFSAUwBSwHzAgAB8wIHBrwB9wHt
+ AfcB8AH0AwAB/wHzAfABeAGXAVYBlwF9AZgB8wH0BQAB9AEcAbwBUAJWAVcDWQF6AZkBeQH0AgAB8wR0
+ AVIHdAHzAQAB8wEHAu8BvAHwAfIB8wLxAe8B7QH3AQcB/wQAAfQBmAGXAlYBeAGYAf8FAAH/AZkB5QF5
+ BFkBegFZAV4BmQH0AXkB9AH/AfQBmQN0AVgBNwNSBHQB9AEAAfQB8AHxA/MB9AHxAbwB8AHxAQcB9wHv
+ AfQEAAH0AZgBlwFVAVYBeAGYAf8FAAH/ARoBmQF5BFgBegHlAV4BWQF5AZkB/wH0AZMDdAFYBTcCUgF0
+ ARoB/wEAAf8B9AHyAvED9AHzAvEB9AHwAQcB9AQAAfQBmAFWAlUBeAGYAf8GAAH/AfYB8wF4AVYBVQFW
+ AXgB5QJeAVkB8wL/ARsBmQFSAzcBWAU3AVgBGgH/AwAB/wH0AfMB8AHxAvMB8QHwAbwB8QHzAf8EAAH0
+ AZgBlwFVAVYBeAGYAf8IAAH0AZgBlwFVAVYBeAFyApkB9AMAAf8BGgM3A1gBWQFYATcBOAFZAZoB9AcA
+ AfQC8QHzAfQB/wcAAfQCmAKXApgB/wgAAfQCmAKXApgB/wUAAfYBmgVZAlgEWQGaARoUAAH/AfEE8AHx
+ Af8IAAH/AfEE8AHxAf8FAAH/ARoBmgJ6BFkDegGaARsB9DEAA/8B9AEbAZoFegEaAv84AAH0AhoB9AL/
+ EwABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EACP8B/gF/Af4BfwH4AR8C/wH+
+ AT8B/gE/AfABBwL/AfwBPwH8AT8B4AEBAfwBPwHwAQ8B8AEDAcABAQHAAQcB8AEHAfABAQHAAQEBgAEH
+ AeABBwHgAQABwAEBAYABAQHAAQcBwAEAAcABAAGAAQAB8AEPAYADAAGAAQAB8AEPAYADAAGAAQAB8AEP
+ AcADAAHgAQAB8AEPAfABAwGAAQAB/gEHAfABDwHwAQ8BgAEAAv8B8AEPAfABDwGAAQAG/wGAAQEG/wH+
+ AQcC/ws=
+</value>
+ </data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>62</value>
</metadata>
=== modified file 'WexInstaller/InstallWizard/InstallType.Designer.cs'
--- a/WexInstaller/InstallWizard/InstallType.Designer.cs 2010-11-30 20:23:23 +0000
+++ b/WexInstaller/InstallWizard/InstallType.Designer.cs 2011-01-17 17:05:19 +0000
@@ -28,10 +28,6 @@
/// </summary>
private void InitializeComponent()
{
- this.defaultType = new System.Windows.Forms.RadioButton();
- this.serverOnlyType = new System.Windows.Forms.RadioButton();
- this.fullType = new System.Windows.Forms.RadioButton();
- this.customType = new System.Windows.Forms.RadioButton();
this.setupTypeDescription = new System.Windows.Forms.TextBox();
this.installPathLabel = new System.Windows.Forms.Label();
this.installPath = new System.Windows.Forms.TextBox();
@@ -43,68 +39,11 @@
this.setupTypeDescriptionLabel = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.actionLabel = new System.Windows.Forms.Label();
+ this.setupTypePanel = new System.Windows.Forms.FlowLayoutPanel();
((System.ComponentModel.ISupportInitialize)(this.warningSign)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.abort)).BeginInit();
this.SuspendLayout();
//
- // defaultType
- //
- this.defaultType.AutoSize = true;
- this.defaultType.Checked = true;
- this.defaultType.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
- this.defaultType.Location = new System.Drawing.Point(12, 132);
- this.defaultType.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
- this.defaultType.Name = "defaultType";
- this.defaultType.Size = new System.Drawing.Size(127, 17);
- this.defaultType.TabIndex = 1;
- this.defaultType.TabStop = true;
- this.defaultType.Tag = "0";
- this.defaultType.Text = "&Developer Default";
- this.defaultType.UseVisualStyleBackColor = true;
- this.defaultType.CheckedChanged += new System.EventHandler(this.setupType_CheckedChanged);
- //
- // serverOnlyType
- //
- this.serverOnlyType.AutoSize = true;
- this.serverOnlyType.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
- this.serverOnlyType.Location = new System.Drawing.Point(12, 158);
- this.serverOnlyType.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
- this.serverOnlyType.Name = "serverOnlyType";
- this.serverOnlyType.Size = new System.Drawing.Size(91, 17);
- this.serverOnlyType.TabIndex = 2;
- this.serverOnlyType.Tag = "1";
- this.serverOnlyType.Text = "&Server Only";
- this.serverOnlyType.UseVisualStyleBackColor = true;
- this.serverOnlyType.CheckedChanged += new System.EventHandler(this.setupType_CheckedChanged);
- //
- // fullType
- //
- this.fullType.AutoSize = true;
- this.fullType.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
- this.fullType.Location = new System.Drawing.Point(12, 184);
- this.fullType.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
- this.fullType.Name = "fullType";
- this.fullType.Size = new System.Drawing.Size(44, 17);
- this.fullType.TabIndex = 3;
- this.fullType.Tag = "2";
- this.fullType.Text = "&Full";
- this.fullType.UseVisualStyleBackColor = true;
- this.fullType.CheckedChanged += new System.EventHandler(this.setupType_CheckedChanged);
- //
- // customType
- //
- this.customType.AutoSize = true;
- this.customType.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
- this.customType.Location = new System.Drawing.Point(12, 210);
- this.customType.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
- this.customType.Name = "customType";
- this.customType.Size = new System.Drawing.Size(68, 17);
- this.customType.TabIndex = 4;
- this.customType.Tag = "3";
- this.customType.Text = "C&ustom";
- this.customType.UseVisualStyleBackColor = true;
- this.customType.CheckedChanged += new System.EventHandler(this.setupType_CheckedChanged);
- //
// setupTypeDescription
//
this.setupTypeDescription.BackColor = System.Drawing.Color.White;
@@ -121,7 +60,7 @@
// installPathLabel
//
this.installPathLabel.Font = new System.Drawing.Font("Tahoma", 8.25F);
- this.installPathLabel.Location = new System.Drawing.Point(12, 298);
+ this.installPathLabel.Location = new System.Drawing.Point(12, 306);
this.installPathLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.installPathLabel.Name = "installPathLabel";
this.installPathLabel.Size = new System.Drawing.Size(229, 19);
@@ -131,7 +70,7 @@
// installPath
//
this.installPath.Font = new System.Drawing.Font("Tahoma", 8.25F);
- this.installPath.Location = new System.Drawing.Point(15, 319);
+ this.installPath.Location = new System.Drawing.Point(15, 327);
this.installPath.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.installPath.Name = "installPath";
this.installPath.Size = new System.Drawing.Size(379, 21);
@@ -141,7 +80,7 @@
// pathBrowseButton
//
this.pathBrowseButton.Font = new System.Drawing.Font("Tahoma", 8.25F);
- this.pathBrowseButton.Location = new System.Drawing.Point(415, 315);
+ this.pathBrowseButton.Location = new System.Drawing.Point(415, 323);
this.pathBrowseButton.Name = "pathBrowseButton";
this.pathBrowseButton.Size = new System.Drawing.Size(28, 26);
this.pathBrowseButton.TabIndex = 6;
@@ -164,7 +103,7 @@
//
this.pathExistsLabel.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
this.pathExistsLabel.ForeColor = System.Drawing.Color.DimGray;
- this.pathExistsLabel.Location = new System.Drawing.Point(36, 347);
+ this.pathExistsLabel.Location = new System.Drawing.Point(36, 355);
this.pathExistsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.pathExistsLabel.Name = "pathExistsLabel";
this.pathExistsLabel.Size = new System.Drawing.Size(322, 19);
@@ -186,7 +125,7 @@
//
// abort
//
- this.abort.Location = new System.Drawing.Point(15, 347);
+ this.abort.Location = new System.Drawing.Point(15, 355);
this.abort.Name = "abort";
this.abort.Size = new System.Drawing.Size(16, 16);
this.abort.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
@@ -224,11 +163,20 @@
this.actionLabel.TabIndex = 30;
this.actionLabel.Text = "Please select a setup type.";
//
+ // setupTypePanel
+ //
+ this.setupTypePanel.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
+ this.setupTypePanel.Location = new System.Drawing.Point(7, 129);
+ this.setupTypePanel.Name = "setupTypePanel";
+ this.setupTypePanel.Size = new System.Drawing.Size(180, 166);
+ this.setupTypePanel.TabIndex = 31;
+ //
// InstallType
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Caption = "Please select the Setup Type that suits your use case.";
+ this.Controls.Add(this.setupTypePanel);
this.Controls.Add(this.actionLabel);
this.Controls.Add(this.label1);
this.Controls.Add(this.setupTypeDescriptionLabel);
@@ -236,10 +184,6 @@
this.Controls.Add(this.installPath);
this.Controls.Add(this.installPathLabel);
this.Controls.Add(this.setupTypeDescription);
- this.Controls.Add(this.customType);
- this.Controls.Add(this.fullType);
- this.Controls.Add(this.serverOnlyType);
- this.Controls.Add(this.defaultType);
this.Controls.Add(this.pathExistsLabel);
this.Controls.Add(this.invalidPath);
this.Controls.Add(this.abort);
@@ -253,10 +197,6 @@
this.Controls.SetChildIndex(this.abort, 0);
this.Controls.SetChildIndex(this.invalidPath, 0);
this.Controls.SetChildIndex(this.pathExistsLabel, 0);
- this.Controls.SetChildIndex(this.defaultType, 0);
- this.Controls.SetChildIndex(this.serverOnlyType, 0);
- this.Controls.SetChildIndex(this.fullType, 0);
- this.Controls.SetChildIndex(this.customType, 0);
this.Controls.SetChildIndex(this.setupTypeDescription, 0);
this.Controls.SetChildIndex(this.installPathLabel, 0);
this.Controls.SetChildIndex(this.installPath, 0);
@@ -264,6 +204,7 @@
this.Controls.SetChildIndex(this.setupTypeDescriptionLabel, 0);
this.Controls.SetChildIndex(this.label1, 0);
this.Controls.SetChildIndex(this.actionLabel, 0);
+ this.Controls.SetChildIndex(this.setupTypePanel, 0);
((System.ComponentModel.ISupportInitialize)(this.warningSign)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.abort)).EndInit();
this.ResumeLayout(false);
@@ -273,10 +214,6 @@
#endregion
- private System.Windows.Forms.RadioButton defaultType;
- private System.Windows.Forms.RadioButton serverOnlyType;
- private System.Windows.Forms.RadioButton fullType;
- private System.Windows.Forms.RadioButton customType;
private System.Windows.Forms.TextBox setupTypeDescription;
private System.Windows.Forms.Label installPathLabel;
private System.Windows.Forms.TextBox installPath;
@@ -288,5 +225,6 @@
private System.Windows.Forms.Label setupTypeDescriptionLabel;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label actionLabel;
+ private System.Windows.Forms.FlowLayoutPanel setupTypePanel;
}
}
=== modified file 'WexInstaller/InstallWizard/InstallType.cs'
--- a/WexInstaller/InstallWizard/InstallType.cs 2010-09-24 21:01:12 +0000
+++ b/WexInstaller/InstallWizard/InstallType.cs 2011-01-17 17:05:19 +0000
@@ -15,7 +15,7 @@
public partial class InstallType : InstallerPanel
{
private bool nextOk;
- private bool typeSet;
+ private SetupType currentType;
public InstallType()
{
@@ -28,13 +28,37 @@
public override void Activate()
{
base.Activate();
- if (!typeSet)
+ if (currentType == null)
{
- setupType_CheckedChanged(defaultType, EventArgs.Empty);
- typeSet = true;
+ int tabIndex = 1;
+ foreach (SetupType setupType in ProductManager.ActiveCatalog.SetupTypes)
+ {
+ RadioButton radio = new RadioButton();
+ radio.AutoSize = true;
+ radio.TabIndex = tabIndex++;
+ radio.TabStop = true;
+ radio.UseVisualStyleBackColor = true;
+ radio.Text = setupType.Name;
+ radio.Padding = new Padding(4);
+ radio.Tag = setupType;
+ radio.Font = new Font(Font, FontStyle.Bold);
+ radio.Click += new EventHandler(setupTypeClicked);
+ setupTypePanel.Controls.Add(radio);
+ }
+ (setupTypePanel.Controls[0] as RadioButton).PerformClick();
}
}
+ void setupTypeClicked(object sender, EventArgs e)
+ {
+ RadioButton rb = sender as RadioButton;
+ currentType = rb.Tag as SetupType;
+ setupTypeDescription.Text = currentType.Description;
+
+ (ParentControl as InstallWizardControl).ShowFeatureSelection(currentType.Flag == (int)SetupTypeFlag.Custom);
+ SignalChange();
+ }
+
private void pathBrowseButton_Click(object sender, EventArgs e)
{
FolderBrowserDialog d = new FolderBrowserDialog();
@@ -44,6 +68,21 @@
SignalChange();
}
+ public override bool Next()
+ {
+ // turn off installation of all products as we are redoing it here
+ foreach (ProductCategory cat in ProductManager.ProductCategories)
+ foreach (Product p in cat.Products)
+ p.ProposedInstalled = false;
+
+ foreach (CatalogProduct product in ProductManager.ActiveCatalog.Products)
+ {
+ product.ReferencedProduct.ProposedInstalled = currentType.Includes(product);
+ }
+
+ return base.Next();
+ }
+
public override bool NextOk()
{
return nextOk;
@@ -79,50 +118,15 @@
}
}
- private void setupType_CheckedChanged(object sender, EventArgs e)
- {
- RadioButton rb = sender as RadioButton;
- SetupType type = SetupType.DeveloperDefault;
- switch (Int32.Parse(rb.Tag as string))
- {
- case 0:
- setupTypeDescription.Text = Resources.DefaultSetupTypeDesc;
- break;
- case 1:
- setupTypeDescription.Text = Resources.ServerOnlySetupTypeDesc;
- type = SetupType.ServerOnly;
- break;
- case 2:
- setupTypeDescription.Text = Resources.FullSetupTypeDesc;
- type = SetupType.Full;
- break;
- case 3:
- setupTypeDescription.Text = Resources.CustomSetupTypeDesc;
- type = SetupType.Custom;
- break;
- }
- foreach (ProductCategory cat in ProductManager.ProductCategories)
- {
- cat.SetInstallType(type);
- }
-
- (ParentControl as InstallWizardControl).ShowFeatureSelection(customType.Checked == true);
- SignalChange();
- }
-
private void InstallType_Paint(object sender, PaintEventArgs e)
{
Graphics gfx = e.Graphics;
Pen myPen = new Pen(Color.LightGray);
- gfx.DrawLine(myPen, 168, 126, 168, 226);
+ Point top = setupTypePanel.Location;
+ top.X += setupTypePanel.Width + 4;
+ Point bottom = top;
+ bottom.Y += setupTypePanel.Height;
+ gfx.DrawLine(myPen, top, bottom);
}
}
-
- public enum SetupType
- {
- DeveloperDefault = 0,
- ServerOnly,
- Full,
- Custom
- }
}
=== modified file 'WexInstaller/Properties/Resources.Designer.cs'
--- a/WexInstaller/Properties/Resources.Designer.cs 2010-11-30 14:52:06 +0000
+++ b/WexInstaller/Properties/Resources.Designer.cs 2011-01-17 17:05:19 +0000
@@ -183,6 +183,15 @@
}
}
+ /// <summary>
+ /// Looks up a localized string similar to All MySQL Products.
+ /// </summary>
+ internal static string AllMySQLProducts {
+ get {
+ return ResourceManager.GetString("AllMySQLProducts", resourceCulture);
+ }
+ }
+
internal static System.Drawing.Bitmap Application_Icon {
get {
object obj = ResourceManager.GetObject("Application_Icon", resourceCulture);
@@ -374,6 +383,15 @@
}
/// <summary>
+ /// Looks up a localized string similar to Installed MySQL Products.
+ /// </summary>
+ internal static string InstalledMySQLProducts {
+ get {
+ return ResourceManager.GetString("InstalledMySQLProducts", resourceCulture);
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to Choosing a Setup Type.
/// </summary>
internal static string InstallTypeCaption {
@@ -507,6 +525,42 @@
}
}
+ /// <summary>
+ /// Looks up a localized string similar to (available on this system).
+ /// </summary>
+ internal static string PackagesAlreadyInstalled {
+ get {
+ return ResourceManager.GetString("PackagesAlreadyInstalled", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to (available in this package).
+ /// </summary>
+ internal static string PackagesAvailable {
+ get {
+ return ResourceManager.GetString("PackagesAvailable", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to (available for commercial download).
+ /// </summary>
+ internal static string PackagesAvailableForCommercialDownload {
+ get {
+ return ResourceManager.GetString("PackagesAvailableForCommercialDownload", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to (available for download).
+ /// </summary>
+ internal static string PackagesAvailableForDownload {
+ get {
+ return ResourceManager.GetString("PackagesAvailableForDownload", resourceCulture);
+ }
+ }
+
internal static System.Drawing.Bitmap plus_sign {
get {
object obj = ResourceManager.GetObject("plus_sign", resourceCulture);
@@ -682,6 +736,13 @@
}
}
+ internal static System.Drawing.Bitmap wex_product_catalog {
+ get {
+ object obj = ResourceManager.GetObject("wex_product_catalog", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
internal static System.Drawing.Bitmap WizardSelection {
get {
object obj = ResourceManager.GetObject("WizardSelection", resourceCulture);
=== modified file 'WexInstaller/Properties/Resources.resx'
--- a/WexInstaller/Properties/Resources.resx 2010-11-30 14:52:06 +0000
+++ b/WexInstaller/Properties/Resources.resx 2011-01-17 17:05:19 +0000
@@ -360,4 +360,25 @@
<data name="NoneSelectedForRemovalTitle" xml:space="preserve">
<value>Nothing to do.</value>
</data>
+ <data name="wex_product_catalog" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Resources\wex_product_catalog.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="AllMySQLProducts" xml:space="preserve">
+ <value>All MySQL Products</value>
+ </data>
+ <data name="InstalledMySQLProducts" xml:space="preserve">
+ <value>Installed MySQL Products</value>
+ </data>
+ <data name="PackagesAlreadyInstalled" xml:space="preserve">
+ <value>(available on this system)</value>
+ </data>
+ <data name="PackagesAvailable" xml:space="preserve">
+ <value>(available in this package)</value>
+ </data>
+ <data name="PackagesAvailableForCommercialDownload" xml:space="preserve">
+ <value>(available for commercial download)</value>
+ </data>
+ <data name="PackagesAvailableForDownload" xml:space="preserve">
+ <value>(available for download)</value>
+ </data>
</root>
\ No newline at end of file
=== added file 'WexInstaller/Resources/MySQLInstallerProductCatalog_Download.png'
Binary files a/WexInstaller/Resources/MySQLInstallerProductCatalog_Download.png 1970-01-01 00:00:00 +0000 and b/WexInstaller/Resources/MySQLInstallerProductCatalog_Download.png 2011-01-17 17:05:19 +0000 differ
=== added file 'WexInstaller/Resources/MySQLInstallerProductCatalog_DownloadCom.png'
Binary files a/WexInstaller/Resources/MySQLInstallerProductCatalog_DownloadCom.png 1970-01-01 00:00:00 +0000 and b/WexInstaller/Resources/MySQLInstallerProductCatalog_DownloadCom.png 2011-01-17 17:05:19 +0000 differ
=== added file 'WexInstaller/Resources/MySQLInstallerProductCatalog_InPackage.png'
Binary files a/WexInstaller/Resources/MySQLInstallerProductCatalog_InPackage.png 1970-01-01 00:00:00 +0000 and b/WexInstaller/Resources/MySQLInstallerProductCatalog_InPackage.png 2011-01-17 17:05:19 +0000 differ
=== added file 'WexInstaller/Resources/MySQLInstallerProductCatalog_OnDisk.png'
Binary files a/WexInstaller/Resources/MySQLInstallerProductCatalog_OnDisk.png 1970-01-01 00:00:00 +0000 and b/WexInstaller/Resources/MySQLInstallerProductCatalog_OnDisk.png 2011-01-17 17:05:19 +0000 differ
=== added file 'WexInstaller/Resources/wex_product_catalog.png'
Binary files a/WexInstaller/Resources/wex_product_catalog.png 1970-01-01 00:00:00 +0000 and b/WexInstaller/Resources/wex_product_catalog.png 2011-01-17 17:05:19 +0000 differ
=== modified file 'WexInstaller/WexInstaller.csproj'
--- a/WexInstaller/WexInstaller.csproj 2010-12-13 19:08:38 +0000
+++ b/WexInstaller/WexInstaller.csproj 2011-01-17 17:05:19 +0000
@@ -123,8 +123,10 @@
<SubType>Component</SubType>
</Compile>
<Compile Include="Core\Package.cs" />
+ <Compile Include="Core\ProductCatalog.cs" />
<Compile Include="Core\ProductCategory.cs" />
<Compile Include="Core\ProductFeature.cs" />
+ <Compile Include="Core\ProductManifest.cs" />
<Compile Include="HiddenTabsControl.cs">
<SubType>Component</SubType>
</Compile>
@@ -428,9 +430,11 @@
<None Include="Resources\about.rtf" />
<None Include="Resources\license.txt" />
<None Include="Resources\my-template.ini" />
+ <None Include="Resources\product_catalog" />
<None Include="Resources\WizardSelection.png" />
</ItemGroup>
<ItemGroup>
+ <None Include="Resources\wex_product_catalog.png" />
<None Include="Resources\AboutBanner.png" />
<None Include="Resources\AddOnsCategoryIcon.png" />
<None Include="Resources\ConnectorCategoryIcon.png" />
Attachment: [text/bzr-bundle] bzr/reggie.burnett@oracle.com-20110117170519-2c3f6rmuq6nwq1ed.bundle
| Thread |
|---|
| • bzr commit into wex-installer-1.0 branch (reggie.burnett:256) | Reggie Burnett | 17 Jan |