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); }
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); }
/*************************************/ /**** 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); }