Beispiel #1
0
        public static GadgeteerToolboxItem CreateFor(GadgeteerPart part, Store store, string mfVersion, Version gVersion, int position = 2)
        {
            Bitmap icon         = ToolboxIcon;
            string errorMessage = null;

            if (part.HasErrors)
            {
                errorMessage = string.Format(Resources.PackageUI.DefinitionError, string.Join(Environment.NewLine, part.GetErrors()));

                icon = ToolboxIconError;
            }
            else
            {
                if (gVersion != null && gVersion < System.Version.Parse(part.MinimumGadgeteerCoreVersion))
                {
                    // do not block the designer if Gadgeteer version cannot be found (e.g. referenced as project)
                    // if (gVersion == null)
                    //     errorMessage = string.Format(Resources.PackageUI.WarningNoG, part.MinimumGadgeteerCoreVersion);
                    // else
                    errorMessage = string.Format(Resources.PackageUI.WarningGVersion, part.MinimumGadgeteerCoreVersion, gVersion);

                    icon = ToolboxIconWarning;
                }

                else if (!part.SupportedMicroframeworkVersions.Contains(mfVersion))
                {
                    errorMessage = string.Format(Resources.PackageUI.WarningMFVersion, string.Join(", ", part.SupportedMicroframeworkVersions), mfVersion);

                    icon = ToolboxIconWarning;
                }
            }

            part.ErrorMessage = errorMessage;

            ModuleDefinition module = part as ModuleDefinition;

            if (module != null)
            {
                return(new GadgeteerToolboxItem(module, store, icon, position, errorMessage));
            }

            MainboardDefinition mainboard = part as MainboardDefinition;

            if (mainboard != null)
            {
                return(new GadgeteerToolboxItem(mainboard, store, icon, position, errorMessage));
            }

            throw new NotSupportedException();
        }