Beispiel #1
0
 public ParameterData(EdiabasToolActivity.SgFuncArgInfo SgFuncArgInfo, TextView textViewCaption, TextView textViewDesc, Drawable defaultBackground, List <object> itemList)
 {
     FuncArgInfo       = SgFuncArgInfo;
     TextViewCaption   = textViewCaption;
     TextViewDesc      = textViewDesc;
     DefaultBackground = defaultBackground;
     ItemList          = itemList;
 }
Beispiel #2
0
        private void ValidateParams()
        {
            try
            {
                if (_layoutArgParams.Visibility == ViewStates.Visible)
                {
                    foreach (ParameterData parameterData in _parameterList)
                    {
                        foreach (object itemObject in parameterData.ItemList)
                        {
                            if (itemObject is EditText editText)
                            {
                                EdiabasToolActivity.SgFuncArgInfo funcArgInfo = parameterData.FuncArgInfo;
                                string paramText  = editText.Text ?? string.Empty;
                                bool   paramValid = true;

                                if (funcArgInfo != null)
                                {
                                    switch (funcArgInfo.TableDataType)
                                    {
                                    case EdiabasToolActivity.TableDataType.Float:
                                    {
                                        double floatValue = EdiabasNet.StringToFloat(paramText, out bool valid);
                                        if (!valid)
                                        {
                                            paramValid = false;
                                            break;
                                        }

                                        if (funcArgInfo.Min.HasValue && floatValue < funcArgInfo.Min.Value)
                                        {
                                            paramValid = false;
                                            break;
                                        }

                                        if (funcArgInfo.Max.HasValue && floatValue > funcArgInfo.Max.Value)
                                        {
                                            paramValid = false;
                                        }
                                        break;
                                    }

                                    case EdiabasToolActivity.TableDataType.String:
                                    {
                                        int length = paramText.Length;
                                        if (length == 0)
                                        {
                                            paramValid = false;
                                            break;
                                        }

                                        if (funcArgInfo.Length.HasValue)
                                        {
                                            if (length != funcArgInfo.Length.Value)
                                            {
                                                paramValid = false;
                                            }
                                        }
                                        else
                                        {
                                            if (length > 255)
                                            {
                                                paramValid = false;
                                            }
                                        }
                                        break;
                                    }

                                    case EdiabasToolActivity.TableDataType.Binary:
                                    {
                                        byte[] data = EdiabasNet.HexToByteArray(paramText);
                                        if (data == null || data.Length == 0)
                                        {
                                            paramValid = false;
                                            break;
                                        }

                                        if (funcArgInfo.Length.HasValue && data.Length != funcArgInfo.Length.Value)
                                        {
                                            paramValid = false;
                                        }
                                        break;
                                    }
                                    }
                                }

                                if (paramValid)
                                {
                                    editText.Background = parameterData.DefaultBackground;
                                }
                                else
                                {
                                    editText.SetBackgroundColor(Android.Graphics.Color.Red);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                // ignored
            }
        }