Example #1
0
        private void paramColor(int index, string name, string nickName, string description, GH_ParamAccess access, System.Drawing.Color Value)
        {
            if ((Params.Input.Count - 1) < index)
            {
                Params.RegisterInputParam(new Param_Colour(), index);
                Params.OnParametersChanged();
            }
            else
            {
                if (Params.Input[index].GetType() != new Param_Colour().GetType())
                {
                    Params.Input[index].RemoveAllSources();
                    Params.Input[index] = new Param_Colour();
                    Params.OnParametersChanged();
                }
            }

            Params.Input[index].ClearData();

            Param_Colour param = (Param_Colour)Params.Input[index];

            param.PersistentData.ClearData();
            param.PersistentData.Clear();
            param.SetPersistentData(Value);
            SetParamProperties(index, name, nickName, description, access);
        }
Example #2
0
        private void ModeB(Object sender, EventArgs e)
        {
            ClearInput();
            ModeIndex = 1;

            Param_Colour param = new Param_Colour();

            param.Name        = "Color";
            param.NickName    = "C";
            param.Description = "---";
            param.Access      = GH_ParamAccess.item;
            param.SetPersistentData(Color.Black);
            param.Optional = true;

            Params.RegisterInputParam(param, 1);

            Param_Number paramA = new Param_Number();

            paramA.Name        = "Value";
            paramA.NickName    = "T";
            paramA.Description = "---";
            paramA.Access      = GH_ParamAccess.item;
            paramA.SetPersistentData(1);
            paramA.Optional = true;

            Params.RegisterInputParam(paramA, 2);

            Params.OnParametersChanged();

            UpdateMessage();
            ExpireSolution(true);
        }
Example #3
0
        /*************************************/
        /**** Public Methods              ****/
        /*************************************/

        public static IGH_Param ToGH_Param(this ParamInfo info)
        {
            UnderlyingType subType = info.DataType.UnderlyingType();
            IGH_Param      param;

            switch (subType.Type.FullName)
            {
            case "System.Boolean":
                param = new Param_Boolean();
                break;

            case "System.Drawing.Color":
                param = new Param_Colour();
                break;

            case "System.DateTime":
                param = new Param_Time();
                break;

            case "System.Double":
                param = new Param_Number();
                break;

            case "System.Guid":
                param = new Param_Guid();
                break;

            case "System.Int16":
            case "System.Int32":
                param = new Param_Integer();
                break;

            case "System.Int64":
                param = new Param_Time();
                break;

            case "System.String":
                param = new Param_String();
                break;

            case "System.Type":
                param = new Param_Type();
                break;

            default:
                Type type = subType.Type;
                if (typeof(IGeometry).IsAssignableFrom(type))
                {
                    param = new Param_BHoMGeometry();
                }
                else if (typeof(IBHoMObject).IsAssignableFrom(type))
                {
                    param = new Param_BHoMObject();
                }
                else if (typeof(IObject).IsAssignableFrom(type))
                {
                    param = new Param_IObject();
                }
                else if (typeof(Enum).IsAssignableFrom(type))
                {
                    param = new Param_Enum();
                }
                else if (typeof(IDictionary).IsAssignableFrom(type))
                {
                    param = new Param_Dictionary();
                }
                else if (typeof(BHoMAdapter).IsAssignableFrom(type))
                {
                    param = new Param_BHoMAdapter();
                }
                else
                {
                    param = new Param_Variable
                    {
                        SelectedHint  = new GH_NullHint(),
                        PossibleHints = Helpers.AvailableHints,
                    };
                }

                break;
            }

            param.Access      = (GH_ParamAccess)subType.Depth;
            param.Description = info.Description;
            param.Name        = info.Name;
            param.NickName    = info.Name;
            param.Optional    = !info.IsRequired;

            //TODO: Is it necessary to react to param.AttributesChanged ?

            if (param is IBHoMParam)
            {
                ((IBHoMParam)param).ObjectType = subType.Type;
            }

            try
            {
                if (info.HasDefaultValue && !info.IsRequired)
                {
                    var data = Helpers.IToGoo(info.DefaultValue as dynamic);
                    SetPersistentData(param as dynamic, data as dynamic);
                }
            }
            catch { }

            return(param);
        }