Isis 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
9class QDomDocument;
10class QDomElement;
11class QNetworkAccessManager;
12class QNetworkReply;
13class QNetworkRequest;
14class QString;
15class QUrl;
16class QWidget;
17
18template <typename T> class QList;
19
20namespace Isis {
21 class Distance;
22 class iTime;
23 class Latitude;
24 class Longitude;
25
52 Q_OBJECT
53
54 public:
55
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
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;
138 QString centerLongitudeString() const;
140 QString northernLatitudeString() const;
142 QString southernLatitudeString() const;
144 QString easternLongitudeString() 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
Q_DECLARE_METATYPE(Isis::FeatureNomenclature::Feature)
This allows Nomenclature Features to be stored in a QVariant.
Distance measurement, usually in meters.
Definition Distance.h:34
A named feature on a target.
Definition FeatureNomenclature.h:117
QUrl referenceUrl() const
Definition FeatureNomenclature.cpp:721
QString lastUpdated() const
Definition FeatureNomenclature.cpp:713
Latitude northernLatitude() const
Definition FeatureNomenclature.cpp:554
Longitude centerLongitude() const
Definition FeatureNomenclature.cpp:529
QString origin() const
Definition FeatureNomenclature.cpp:705
QString referenceString() const
Definition FeatureNomenclature.cpp:697
Latitude centerLatitude() const
Definition FeatureNomenclature.cpp:505
Longitude easternLongitude() const
Definition FeatureNomenclature.cpp:604
QString id() const
Definition FeatureNomenclature.cpp:404
QString referenceUrlString() const
Definition FeatureNomenclature.cpp:729
QString system() const
Definition FeatureNomenclature.cpp:472
~Feature()
Clean up allocated memory by this feature.
Definition FeatureNomenclature.cpp:245
QString cleanName() const
Definition FeatureNomenclature.cpp:420
QString easternLongitudeString() const
Definition FeatureNomenclature.cpp:622
QString name() const
Definition FeatureNomenclature.cpp:412
QString originatingContinent() const
Definition FeatureNomenclature.cpp:657
QString controlNet() const
Definition FeatureNomenclature.cpp:430
QString northernLatitudeString() const
Definition FeatureNomenclature.cpp:571
Longitude westernLongitude() const
Definition FeatureNomenclature.cpp:630
QWidget * toWidget() const
This converts the data in this feature to a widget.
Definition FeatureNomenclature.cpp:258
QString diameterString() const
Definition FeatureNomenclature.cpp:497
Distance diameter() const
Definition FeatureNomenclature.cpp:480
QString centerLongitudeString() const
Definition FeatureNomenclature.cpp:546
QString approvalDate() const
Definition FeatureNomenclature.cpp:681
QString displayName() const
Definition FeatureNomenclature.cpp:448
IAUStatus status() const
Definition FeatureNomenclature.cpp:739
Feature()
Construct a feature with no data.
Definition FeatureNomenclature.cpp:213
Feature & operator=(const Feature &rhs)
Assign the values of this feature from the values of rhs.
Definition FeatureNomenclature.cpp:762
QString centerLatitudeString() const
Definition FeatureNomenclature.cpp:521
QString target() const
Definition FeatureNomenclature.cpp:464
QString westernLongitudeString() const
Definition FeatureNomenclature.cpp:648
Latitude southernLatitude() const
Definition FeatureNomenclature.cpp:579
QString southernLatitudeString() const
Definition FeatureNomenclature.cpp:596
QString approvalStatus() const
Definition FeatureNomenclature.cpp:673
QString featureType() const
Definition FeatureNomenclature.cpp:689
QString originatingEthnicity() const
Definition FeatureNomenclature.cpp:665
void swap(Feature &other)
Swap the member data of this feature with another feature.
Definition FeatureNomenclature.cpp:749
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:135
void featuresIdentified(FeatureNomenclature *)
This is emitted when a query is completed.
void swap(FeatureNomenclature &other)
Swap the instances *this and other.
Definition FeatureNomenclature.cpp:161
bool hasResult() const
Test if any understandable results have been received from the nomenclature database.
Definition FeatureNomenclature.cpp:151
IAUStatus
Enumeration of approval statuses.
Definition FeatureNomenclature.h:57
@ Dropped
When this status is assigned to a feature, the displayed status will be "Dropped, disallowed" and the...
Definition FeatureNomenclature.h:73
@ NoStatus
When this status is assigned to a feature, there will be no status displayed and the feature will not...
Definition FeatureNomenclature.h:62
@ Unapproved
When this status is assigned to a feature, the displayed status will be "Never approved by the IAU" a...
Definition FeatureNomenclature.h:79
@ Approved
When this status is assigned to a feature, the displayed status will be "Adopted by the IAU" and the ...
Definition FeatureNomenclature.h:67
~FeatureNomenclature()
Frees allocated memory.
Definition FeatureNomenclature.cpp:76
FeatureNomenclature()
Instantiate a feature nomenclature.
Definition FeatureNomenclature.cpp:28
FeatureNomenclature & operator=(const FeatureNomenclature &other)
This takes on the data from rhs.
Definition FeatureNomenclature.cpp:175
void queryFeatures(QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon)
Makes sure the longitudinal ranges are correct.
Definition FeatureNomenclature.cpp:99
static bool featureDiameterGreaterThan(const FeatureNomenclature::Feature &lhs, const FeatureNomenclature::Feature &rhs)
Compare the diameter of two features.
Definition FeatureNomenclature.cpp:192
This class is designed to encapsulate the concept of a Latitude.
Definition Latitude.h:51
This class is designed to encapsulate the concept of a Longitude.
Definition Longitude.h:40
This is free and unencumbered software released into the public domain.
Definition BoxcarCachingAlgorithm.h:13
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16