Engauge Digitizer  2
DlgValidatorFactory.cpp
Go to the documentation of this file.
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
8 #include "DlgValidatorAbstract.h"
9 #include "DlgValidatorDateTime.h"
11 #include "DlgValidatorFactory.h"
12 #include "DlgValidatorNumber.h"
13 #include "Logger.h"
14 #include <QLocale>
15 
17 {
18  LOG4CPP_INFO_S ((*mainCat)) << "DlgValidatorFactory::DlgValidatorFactory";
19 }
20 
22 {
23  return new DlgValidatorAboveZero (locale);
24 }
25 
27  bool isCartesian,
28  CoordUnitsNonPolarTheta coordUnitsCartesian,
29  CoordUnitsNonPolarTheta coordUnitsPolar,
30  CoordUnitsDate coordUnitsDate,
31  CoordUnitsTime coordUnitsTime,
32  const QLocale &locale) const
33 {
34  LOG4CPP_INFO_S ((*mainCat)) << "DlgValidatorFactory::createCartesianOrPolarWithNonPolarPolar";
35 
36  if (isCartesian) {
37  return createWithNonPolar (coordScale,
38  coordUnitsCartesian,
39  coordUnitsDate,
40  coordUnitsTime,
41  locale);
42  } else {
43  return createWithNonPolar (coordScale,
44  coordUnitsPolar,
45  coordUnitsDate,
46  coordUnitsTime,
47  locale);
48  }
49 }
50 
52  bool isCartesian,
53  CoordUnitsNonPolarTheta coordUnitsCartesian,
54  CoordUnitsPolarTheta coordUnitsPolar,
55  CoordUnitsDate coordUnitsDate,
56  CoordUnitsTime coordUnitsTime,
57  const QLocale &locale) const
58 {
59  LOG4CPP_INFO_S ((*mainCat)) << "DlgValidatorFactory::createCartesianOrPolarWithPolarPolar";
60 
61  if (isCartesian) {
62  return createWithNonPolar (coordScale,
63  coordUnitsCartesian,
64  coordUnitsDate,
65  coordUnitsTime,
66  locale);
67  } else {
68  return createWithPolar (coordScale,
69  coordUnitsPolar,
70  locale);
71  }
72 }
73 
75  CoordUnitsNonPolarTheta coordUnits,
76  CoordUnitsDate coordUnitsDate,
77  CoordUnitsTime coordUnitsTime,
78  const QLocale &locale) const
79 {
80  LOG4CPP_INFO_S ((*mainCat)) << "DlgValidatorFactory::createWithNonPolar";
81 
82  switch (coordUnits) {
84  return new DlgValidatorDateTime (coordScale,
85  coordUnitsDate,
86  coordUnitsTime);
87 
89  return new DlgValidatorDegreesMinutesSeconds (coordScale);
90 
92  return new DlgValidatorNumber(coordScale,
93  locale);
94 
95  default:
96  LOG4CPP_ERROR_S ((*mainCat)) << "DlgValidatorFactory::createWithNonPolar";
97  exit (-1);
98  }
99 }
100 
102  CoordUnitsPolarTheta coordUnits,
103  const QLocale &locale) const
104 {
105  LOG4CPP_INFO_S ((*mainCat)) << "DlgValidatorFactory::createWithPolar";
106 
107  switch (coordUnits) {
112  return new DlgValidatorDegreesMinutesSeconds (coordScale);
113 
117  return new DlgValidatorNumber (coordScale,
118  locale);
119 
120  default:
121  LOG4CPP_ERROR_S ((*mainCat)) << "DlgValidatorFactory::createWithNonPolar";
122  exit (-1);
123  }
124 }
DlgValidatorDegreesMinutesSeconds
Validator for angles in real degrees, integer degrees and real minutes, or integer degrees with integ...
Definition: DlgValidatorDegreesMinutesSeconds.h:16
COORD_UNITS_POLAR_THETA_TURNS
Definition: CoordUnitsPolarTheta.h:20
DlgValidatorFactory::DlgValidatorFactory
DlgValidatorFactory()
Single constructor.
Definition: DlgValidatorFactory.cpp:16
COORD_UNITS_NON_POLAR_THETA_DATE_TIME
Definition: CoordUnitsNonPolarTheta.h:20
COORD_UNITS_POLAR_THETA_DEGREES
Definition: CoordUnitsPolarTheta.h:14
DlgValidatorDateTime.h
COORD_UNITS_POLAR_THETA_DEGREES_MINUTES
Definition: CoordUnitsPolarTheta.h:15
CoordUnitsNonPolarTheta
CoordUnitsNonPolarTheta
Definition: CoordUnitsNonPolarTheta.h:13
DlgValidatorFactory.h
COORD_UNITS_POLAR_THETA_GRADIANS
Definition: CoordUnitsPolarTheta.h:18
LOG4CPP_ERROR_S
#define LOG4CPP_ERROR_S(logger)
Definition: convenience.h:12
DlgValidatorDegreesMinutesSeconds.h
DlgValidatorFactory::createWithNonPolar
DlgValidatorAbstract * createWithNonPolar(CoordScale coordScale, CoordUnitsNonPolarTheta coordUnits, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, const QLocale &locale) const
Factory method for generating validators when cartesian/polar case handling is handled externally,...
Definition: DlgValidatorFactory.cpp:74
CoordUnitsTime
CoordUnitsTime
Definition: CoordUnitsTime.h:11
DlgValidatorFactory::createAboveZero
DlgValidatorAbstract * createAboveZero(const QLocale &locale) const
Factory method for generating validators for scale length which must be a number greater than zero.
Definition: DlgValidatorFactory.cpp:21
CoordScale
CoordScale
Definition: CoordScale.h:11
COORD_UNITS_NON_POLAR_THETA_DEGREES_MINUTES_SECONDS
Definition: CoordUnitsNonPolarTheta.h:18
DlgValidatorDateTime
Validator for numeric value expressed as date and/or time.
Definition: DlgValidatorDateTime.h:15
COORD_UNITS_NON_POLAR_THETA_NUMBER
Definition: CoordUnitsNonPolarTheta.h:17
Logger.h
CoordUnitsDate
CoordUnitsDate
Definition: CoordUnitsDate.h:11
LOG4CPP_INFO_S
#define LOG4CPP_INFO_S(logger)
Definition: convenience.h:18
COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS
Definition: CoordUnitsPolarTheta.h:16
DlgValidatorAboveZero.h
DlgValidatorAbstract
Abstract validator for all numeric formats.
Definition: DlgValidatorAbstract.h:13
DlgValidatorFactory::createWithPolar
DlgValidatorAbstract * createWithPolar(CoordScale coordScale, CoordUnitsPolarTheta coordUnits, const QLocale &locale) const
Factory method for generating validators when cartesian/polar case handling is handled externally,...
Definition: DlgValidatorFactory.cpp:101
mainCat
log4cpp::Category * mainCat
Definition: Logger.cpp:14
COORD_UNITS_POLAR_THETA_RADIANS
Definition: CoordUnitsPolarTheta.h:19
DlgValidatorAboveZero
Validator for generic (=simple) numbers that must be greater than zero.
Definition: DlgValidatorAboveZero.h:13
DlgValidatorNumber
Validator for generic (=simple) numbers.
Definition: DlgValidatorNumber.h:16
DlgValidatorNumber.h
DlgValidatorFactory::createCartesianOrPolarWithPolarPolar
DlgValidatorAbstract * createCartesianOrPolarWithPolarPolar(CoordScale coordScale, bool isCartesian, CoordUnitsNonPolarTheta coordUnitsCartesian, CoordUnitsPolarTheta coordUnitsPolar, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, const QLocale &locale) const
Factory method for generating validators for either cartesian or polar case, when polar format is spe...
Definition: DlgValidatorFactory.cpp:51
COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS_NSEW
Definition: CoordUnitsPolarTheta.h:17
CoordUnitsPolarTheta
CoordUnitsPolarTheta
Definition: CoordUnitsPolarTheta.h:13
DlgValidatorFactory::createCartesianOrPolarWithNonPolarPolar
DlgValidatorAbstract * createCartesianOrPolarWithNonPolarPolar(CoordScale coordScale, bool isCartesian, CoordUnitsNonPolarTheta coordUnitsCartesian, CoordUnitsNonPolarTheta coordUnitsPolar, CoordUnitsDate coordUnitsDate, CoordUnitsTime coordUnitsTime, const QLocale &locale) const
Factory method for generating validators for either cartesian or polar case, when polar format is spe...
Definition: DlgValidatorFactory.cpp:26
DlgValidatorAbstract.h