Isis 3 Developer Reference
FeatureNomenclature.h
Go to the documentation of this file.
1 #ifndef FeatureNomenclature_h
2 #define FeatureNomenclature_h
3 
4 #include <QObject>
5 
6 // This is needed for the QVariant macro
7 #include <QMetaType>
8 
9 class QDomDocument;
10 class QDomElement;
11 class QNetworkAccessManager;
12 class QNetworkReply;
13 class QNetworkRequest;
14 class QString;
15 class QUrl;
16 class QWidget;
17 
18 template <typename T> class QList;
19 
20 namespace Isis {
21  class Distance;
22  class iTime;
23  class Latitude;
24  class Longitude;
25 
51  class FeatureNomenclature : public QObject {
52  Q_OBJECT
53 
54  public:
55 
57  enum IAUStatus {
80 
84 
85  void queryFeatures(QString target,
86  Latitude startLat, Longitude startLon,
87  Latitude endLat, Longitude endLon);
88 
89  class Feature;
90  QList<Feature> features() const;
91  bool hasResult() const;
92 
93  void swap(FeatureNomenclature &other);
95 
96  static bool featureDiameterGreaterThan(
98  const FeatureNomenclature::Feature &rhs);
99 
117  class Feature {
118  public:
119  Feature();
120  Feature(QDomElement searchResultFeature, IAUStatus status);
121  Feature(const Feature &other);
122  ~Feature();
123 
124  QWidget *toWidget() const;
125 
126  QString id() const;
127  QString name() const;
128  QString cleanName() const;
129  QString controlNet() const;
130  QString displayName() const;
131  QString target() const;
132  QString system() const;
133  Distance diameter() const;
134  QString diameterString() const;
135  Latitude centerLatitude() const;
136  QString centerLatitudeString() const;
137  Longitude centerLongitude() const;
138  QString centerLongitudeString() const;
139  Latitude northernLatitude() const;
140  QString northernLatitudeString() const;
141  Latitude southernLatitude() const;
142  QString southernLatitudeString() const;
143  Longitude easternLongitude() const;
144  QString easternLongitudeString() const;
145  Longitude westernLongitude() const;
146  QString westernLongitudeString() const;
147  QString originatingContinent() const;
148  QString originatingEthnicity() const;
149  QString approvalStatus() const;
150  QString approvalDate() const;
151  QString featureType() const;
152  QString referenceString() const;
153  QString origin() const;
154  QString lastUpdated() const;
155  QUrl referenceUrl() const;
156  QString referenceUrlString() const;
157  IAUStatus status() const;
158 
159  void swap(Feature &other);
160  Feature &operator=(const Feature &rhs);
161 
162  private:
163  QString getTagText(QString tagName) const;
164 
165  private:
170  QDomElement * m_xmlRepresenation;
172  IAUStatus m_approvalStatus;
173  };
174 
175  signals:
181 
182  private slots:
183  void requestFinished(QNetworkReply *);
184 
185  private:
186  void readSearchResults(QDomElement);
187  void runQuery(QString target,
188  Latitude startLat, Longitude startLon,
189  Latitude endLat, Longitude endLon);
190 
191  private:
192  QNetworkAccessManager *m_networkMgr;
193  QNetworkRequest *m_request;
194 
196  QList<Feature> *m_features;
198  IAUStatus m_statusApproval;
200  bool m_lastQuery;
201  };
202 
203 };
204 
207 
208 #endif
QString westernLongitudeString() const
Definition: FeatureNomenclature.cpp:649
QString target() const
Definition: FeatureNomenclature.cpp:465
Longitude easternLongitude() const
Definition: FeatureNomenclature.cpp:605
When this status is assigned to a feature, there will be no status displayed and the feature will not...
Definition: FeatureNomenclature.h:62
void queryFeatures(QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon)
Makes sure the longitudinal ranges are correct.
Definition: FeatureNomenclature.cpp:100
QString name() const
Definition: FeatureNomenclature.cpp:413
QString referenceUrlString() const
Definition: FeatureNomenclature.cpp:730
When this status is assigned to a feature, the displayed status will be "Dropped, disallowed" and the...
Definition: FeatureNomenclature.h:73
QString originatingEthnicity() const
Definition: FeatureNomenclature.cpp:666
QString origin() const
Definition: FeatureNomenclature.cpp:706
QString lastUpdated() const
Definition: FeatureNomenclature.cpp:714
FeatureNomenclature()
Instantiate a feature nomenclature.
Definition: FeatureNomenclature.cpp:29
QString centerLatitudeString() const
Definition: FeatureNomenclature.cpp:522
QString southernLatitudeString() const
Definition: FeatureNomenclature.cpp:597
Feature nomenclature database querier.
Definition: FeatureNomenclature.h:51
QList< Feature > features() const
This gives you the features found in all of the queries so far.
Definition: FeatureNomenclature.cpp:136
QString easternLongitudeString() const
Definition: FeatureNomenclature.cpp:623
When this status is assigned to a feature, the displayed status will be "Adopted by the IAU" and the ...
Definition: FeatureNomenclature.h:67
void swap(Feature &other)
Swap the member data of this feature with another feature.
Definition: FeatureNomenclature.cpp:750
QString referenceString() const
Definition: FeatureNomenclature.cpp:698
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:63
~FeatureNomenclature()
Frees allocated memory.
Definition: FeatureNomenclature.cpp:77
Feature & operator=(const Feature &rhs)
Assign the values of this feature from the values of rhs.
Definition: FeatureNomenclature.cpp:763
Feature()
Construct a feature with no data.
Definition: FeatureNomenclature.cpp:214
Distance measurement, usually in meters.
Definition: Distance.h:47
QString northernLatitudeString() const
Definition: FeatureNomenclature.cpp:572
Longitude centerLongitude() const
Definition: FeatureNomenclature.cpp:530
QString approvalDate() const
Definition: FeatureNomenclature.cpp:682
QString centerLongitudeString() const
Definition: FeatureNomenclature.cpp:547
Latitude centerLatitude() const
Definition: FeatureNomenclature.cpp:506
Latitude southernLatitude() const
Definition: FeatureNomenclature.cpp:580
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
QString diameterString() const
Definition: FeatureNomenclature.cpp:498
When this status is assigned to a feature, the displayed status will be "Never approved by the IAU" a...
Definition: FeatureNomenclature.h:79
QString controlNet() const
Definition: FeatureNomenclature.cpp:431
QString displayName() const
Definition: FeatureNomenclature.cpp:449
Q_DECLARE_METATYPE(Isis::FeatureNomenclature::Feature)
This allows Nomenclature Features to be stored in a QVariant.
QString approvalStatus() const
Definition: FeatureNomenclature.cpp:674
QString cleanName() const
Definition: FeatureNomenclature.cpp:421
IAUStatus status() const
Definition: FeatureNomenclature.cpp:740
Latitude northernLatitude() const
Definition: FeatureNomenclature.cpp:555
QString featureType() const
Definition: FeatureNomenclature.cpp:690
void swap(FeatureNomenclature &other)
Swap the instances *this and other.
Definition: FeatureNomenclature.cpp:162
QWidget * toWidget() const
This converts the data in this feature to a widget.
Definition: FeatureNomenclature.cpp:259
QString originatingContinent() const
Definition: FeatureNomenclature.cpp:658
QUrl referenceUrl() const
Definition: FeatureNomenclature.cpp:722
~Feature()
Clean up allocated memory by this feature.
Definition: FeatureNomenclature.cpp:246
QString id() const
Definition: FeatureNomenclature.cpp:405
Definition: BoxcarCachingAlgorithm.h:29
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
static bool featureDiameterGreaterThan(const FeatureNomenclature::Feature &lhs, const FeatureNomenclature::Feature &rhs)
Compare the diameter of two features.
Definition: FeatureNomenclature.cpp:193
QString system() const
Definition: FeatureNomenclature.cpp:473
Longitude westernLongitude() const
Definition: FeatureNomenclature.cpp:631
void featuresIdentified(FeatureNomenclature *)
This is emitted when a query is completed.
Distance diameter() const
Definition: FeatureNomenclature.cpp:481
bool hasResult() const
Test if any understandable results have been received from the nomenclature database.
Definition: FeatureNomenclature.cpp:152
FeatureNomenclature & operator=(const FeatureNomenclature &other)
This takes on the data from rhs.
Definition: FeatureNomenclature.cpp:176
A named feature on a target.
Definition: FeatureNomenclature.h:117
IAUStatus
Enumeration of approval statuses.
Definition: FeatureNomenclature.h:57