/////////////////////////////////////////////////////////////////////////////////
//
// This file is part of SACAMOS, cable models for EMI simulations in SPICE.
// It was developed by the University of Nottingham and the Netherlands Aerospace
// Centre (NLR) for ESA under contract number 4000112765/14/NL/HK.
//
// Copyright (C) 2015 - 2018 University of Nottingham
//
// SACAMOS is free software: you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the Free Software
// Foundation, either version 3 of the License, or (at your option) any later
// version.
//
// SACAMOS is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// for more details.
//
// A copy of the GNU General Public License version 3 can be found in the
// file GNU_GPL_v3 in the root or at .
//
// wxWidgets is currently licenced under the "wxWindows Library Licence".
// A copy of the wxWindows Library Licence, Version 3.1 can be found in the file
// wxWindows_Library_Licence_v3-1 in the root or at:
//
//
// The University of Nottingham can be contacted at: ggiemr@nottingham.ac.uk
//
// File Contents:
//
// NAME
// UTILITIES.cpp
//
// DESCRIPTION
// Utility Functions:
//
// check_is_empty check if input field is left blank
// check_is numeric: check if input parameters are numerical values
// check_is_numeric_list: check if input is space delimited numerical list
// check_is_positive: check if input is >0
// check_is_greater_than: check if arguement1 is > than arguement2
// check_is_less_than: check if arguement1 is < than arguement2
// clean_temp_files clean up run folder
//
// AUTHOR(S)
// Steve Greedy
//
/////////////////////////////////////////////////////////////////////////////////
#include "UTILITIES.h"
void check_is_empty(wxTextCtrl *TxtBox, int *IsError)
{
if (TxtBox->GetValue() == "")
{
TxtBox->SetBackgroundColour(wxColor(255,153,153));
TxtBox->SetFocus();
*IsError = 1;
}
}
void check_is_numeric(wxTextCtrl *TxtBox, int *IsError)
{
char* non_numeric = NULL;
wxString input = TxtBox->GetValue();
(void) strtod(input, &non_numeric);
if (*IsError == 0)
{
TxtBox->SetBackgroundColour("WHITE");
TxtBox->Refresh();
}
if (*non_numeric || *IsError == 1)
{
TxtBox->SetBackgroundColour(wxColor(255,153,153));
TxtBox->SetFocus();
*IsError = 1;
}
}
void check_is_numeric_list(wxTextCtrl *TxtBox, int *IsError)
{
char* non_numeric = NULL;
wxString input = TxtBox->GetValue();
TxtBox->SetBackgroundColour("WHITE");
TxtBox->Refresh();
wxStringTokenizer tokenizer(input, " ");
while ( tokenizer.HasMoreTokens())
{
wxString token = tokenizer.GetNextToken();
(void) strtod(token, &non_numeric);
if (*non_numeric)
{
TxtBox->SetBackgroundColour(wxColor(255,153,153));
TxtBox->SetFocus();
*IsError = 1;
}
}
}
void check_is_positive (wxTextCtrl *TxtBox, int *IsError)
{
double value_tb;
wxString contents_tb;
contents_tb = TxtBox->GetValue();
contents_tb.ToDouble(&value_tb);
if (value_tb < 0 )
{
TxtBox->SetBackgroundColour(wxColor(255,153,153));
TxtBox->SetFocus();
*IsError = 1;
}
}
void check_is_less_than (wxTextCtrl *TxtBox1, wxTextCtrl *TxtBox2, int *IsError)
{
double value_tb1, value_tb2;
wxString contents_tb1, contents_tb2;
contents_tb1 = TxtBox1->GetValue();
contents_tb2 = TxtBox2->GetValue();
contents_tb1.ToDouble(&value_tb1);
contents_tb2.ToDouble(&value_tb2);
if (value_tb1 < value_tb2)
{
TxtBox1->SetBackgroundColour(wxColor(255,153,153));
TxtBox1->SetFocus();
*IsError = 1;
}
}
void check_is_greater_than (wxTextCtrl *TxtBox1, wxTextCtrl *TxtBox2, int *IsError)
{
double value_tb1, value_tb2;
wxString contents_tb1, contents_tb2;
contents_tb1 = TxtBox1->GetValue();
contents_tb2 = TxtBox2->GetValue();
contents_tb1.ToDouble(&value_tb1);
contents_tb2.ToDouble(&value_tb2);
if (value_tb1 > value_tb2)
{
TxtBox1->SetBackgroundColour(wxColor(255,153,153));
TxtBox1->SetFocus();
*IsError = 1;
}
}
void check_filename_valid(wxTextCtrl *TxtBox, int *IsError)
{
wxFileName fname(TxtBox->GetValue());
TxtBox->SetBackgroundColour("WHITE");
TxtBox->Refresh();
if (!fname.IsOk())
{
TxtBox->SetBackgroundColour(wxColor(255,153,153));
TxtBox->SetFocus();
*IsError = 1;
}
}
void clean_temp_files()
{
wxString file, pattern;
pattern = "*.msh.vtk";
file = wxFindFirstFile(pattern);
while ( !file.empty())
{
wxRemoveFile(file);
file = wxFindNextFile();
}
pattern = "*.msh";
file = wxFindFirstFile(pattern);
while ( !file.empty())
{
wxRemoveFile(file);
file = wxFindNextFile();
}
pattern = "*.geo";
file = wxFindFirstFile(pattern);
while ( !file.empty())
{
wxRemoveFile(file);
file = wxFindNextFile();
}
pattern = "*.dat";
file = wxFindFirstFile(pattern);
while ( !file.empty())
{
wxRemoveFile(file);
file = wxFindNextFile();
}
pattern = "*.bnd";
file = wxFindFirstFile(pattern);
while ( !file.empty())
{
wxRemoveFile(file);
file = wxFindNextFile();
}
pattern = "*.pos";
file = wxFindFirstFile(pattern);
while ( !file.empty())
{
wxRemoveFile(file);
file = wxFindNextFile();
}
pattern = "run_status";
file = wxFindFirstFile(pattern);
while ( !file.empty())
{
wxRemoveFile(file);
file = wxFindNextFile();
}
}