Isis 3.0
Home
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 
48  class FeatureNomenclature : public QObject {
49  Q_OBJECT
50 
51  public:
52 
54  enum IAUStatus {
77 
81 
82  void queryFeatures(QString target,
83  Latitude startLat, Longitude startLon,
84  Latitude endLat, Longitude endLon);
85 
86  class Feature;
87  QList<Feature> features() const;
88  bool hasResult() const;
89 
90  void swap(FeatureNomenclature &other);
92 
93  static bool featureDiameterGreaterThan(
95  const FeatureNomenclature::Feature &rhs);
96 
114  class Feature {
115  public:
116  Feature();
117  Feature(QDomElement searchResultFeature, IAUStatus status);
118  Feature(const Feature &other);
119  ~Feature();
120 
121  QWidget *toWidget() const;
122 
123  QString id() const;
124  QString name() const;
125  QString cleanName() const;
126  QString controlNet() const;
127  QString displayName() const;
128  QString target() const;
129  QString system() const;
130  Distance diameter() const;
131  QString diameterString() const;
132  Latitude centerLatitude() const;
133  QString centerLatitudeString() const;
134  Longitude centerLongitude() const;
135  QString centerLongitudeString() const;
136  Latitude northernLatitude() const;
137  QString northernLatitudeString() const;
138  Latitude southernLatitude() const;
139  QString southernLatitudeString() const;
140  Longitude easternLongitude() const;
141  QString easternLongitudeString() const;
142  Longitude westernLongitude() const;
143  QString westernLongitudeString() const;
144  QString originatingContinent() const;
145  QString originatingEthnicity() const;
146  QString approvalStatus() const;
147  QString approvalDate() const;
148  QString featureType() const;
149  QString referenceString() const;
150  QString origin() const;
151  QString lastUpdated() const;
152  QUrl referenceUrl() const;
153  QString referenceUrlString() const;
154  IAUStatus status() const;
155 
156  void swap(Feature &other);
157  Feature &operator=(const Feature &rhs);
158 
159  private:
160  QString getTagText(QString tagName) const;
161 
162  private:
167  QDomElement * m_xmlRepresenation;
169  IAUStatus m_approvalStatus;
170  };
171 
172  signals:
178 
179  private slots:
180  void requestFinished(QNetworkReply *);
181 
182  private:
183  void readSearchResults(QDomElement);
184  void runQuery(QString target,
185  Latitude startLat, Longitude startLon,
186  Latitude endLat, Longitude endLon);
187 
188  private:
189  QNetworkAccessManager *m_networkMgr;
190  QNetworkRequest *m_request;
191 
193  QList<Feature> *m_features;
195  IAUStatus m_statusApproval;
197  bool m_lastQuery;
198  };
199 
200 };
201 
204 
205 #endif
When this status is assigned to a feature, there will be no status displayed and the feature will not...
Definition: FeatureNomenclature.h:59
void queryFeatures(QString target, Latitude startLat, Longitude startLon, Latitude endLat, Longitude endLon)
Makes sure the longitudinal ranges are correct.
Definition: FeatureNomenclature.cpp:100
QString approvalDate() const
Definition: FeatureNomenclature.cpp:682
QString originatingEthnicity() const
Definition: FeatureNomenclature.cpp:666
QString system() const
Definition: FeatureNomenclature.cpp:473
When this status is assigned to a feature, the displayed status will be &quot;Dropped, disallowed&quot; and the...
Definition: FeatureNomenclature.h:70
Longitude westernLongitude() const
Definition: FeatureNomenclature.cpp:631
FeatureNomenclature()
Instantiate a feature nomenclature.
Definition: FeatureNomenclature.cpp:29
QString westernLongitudeString() const
Definition: FeatureNomenclature.cpp:649
Feature nomenclature database querier.
Definition: FeatureNomenclature.h:48
Latitude northernLatitude() const
Definition: FeatureNomenclature.cpp:555
QString name() const
Definition: FeatureNomenclature.cpp:413
QWidget * toWidget() const
This converts the data in this feature to a widget.
Definition: FeatureNomenclature.cpp:259
When this status is assigned to a feature, the displayed status will be &quot;Adopted by the IAU&quot; and the ...
Definition: FeatureNomenclature.h:64
QString controlNet() const
Definition: FeatureNomenclature.cpp:431
void swap(Feature &other)
Swap the member data of this feature with another feature.
Definition: FeatureNomenclature.cpp:750
QString southernLatitudeString() const
Definition: FeatureNomenclature.cpp:597
QString referenceUrlString() const
Definition: FeatureNomenclature.cpp:730
This class is designed to encapsulate the concept of a Latitude.
Definition: Latitude.h:59
QString centerLongitudeString() const
Definition: FeatureNomenclature.cpp:547
QString displayName() const
Definition: FeatureNomenclature.cpp:449
Q_DECLARE_METATYPE(Isis::Cube *)
This allows Cube *&#39;s to be stored in a QVariant.
QString origin() const
Definition: FeatureNomenclature.cpp:706
~FeatureNomenclature()
Frees allocated memory.
Definition: FeatureNomenclature.cpp:77
QString centerLatitudeString() const
Definition: FeatureNomenclature.cpp:522
QString diameterString() const
Definition: FeatureNomenclature.cpp:498
Feature & operator=(const Feature &rhs)
Assign the values of this feature from the values of rhs.
Definition: FeatureNomenclature.cpp:763
Latitude southernLatitude() const
Definition: FeatureNomenclature.cpp:580
Feature()
Construct a feature with no data.
Definition: FeatureNomenclature.cpp:214
Distance measurement, usually in meters.
Definition: Distance.h:47
This class is designed to encapsulate the concept of a Longitude.
Definition: Longitude.h:52
QString target() const
Definition: FeatureNomenclature.cpp:465
When this status is assigned to a feature, the displayed status will be &quot;Never approved by the IAU&quot; a...
Definition: FeatureNomenclature.h:76
QString lastUpdated() const
Definition: FeatureNomenclature.cpp:714
Latitude centerLatitude() const
Definition: FeatureNomenclature.cpp:506
QString featureType() const
Definition: FeatureNomenclature.cpp:690
QUrl referenceUrl() const
Definition: FeatureNomenclature.cpp:722
Longitude centerLongitude() const
Definition: FeatureNomenclature.cpp:530
QList< Feature > features() const
This gives you the features found in all of the queries so far.
Definition: FeatureNomenclature.cpp:136
Distance diameter() const
Definition: FeatureNomenclature.cpp:481
void swap(FeatureNomenclature &other)
Swap the instances *this and other.
Definition: FeatureNomenclature.cpp:162
QString referenceString() const
Definition: FeatureNomenclature.cpp:698
~Feature()
Clean up allocated memory by this feature.
Definition: FeatureNomenclature.cpp:246
QString cleanName() const
Definition: FeatureNomenclature.cpp:421
IAUStatus status() const
Definition: FeatureNomenclature.cpp:740
Definition: BoxcarCachingAlgorithm.h:29
Longitude easternLongitude() const
Definition: FeatureNomenclature.cpp:605
QString approvalStatus() const
Definition: FeatureNomenclature.cpp:674
QString easternLongitudeString() const
Definition: FeatureNomenclature.cpp:623
static bool featureDiameterGreaterThan(const FeatureNomenclature::Feature &lhs, const FeatureNomenclature::Feature &rhs)
Compare the diameter of two features.
Definition: FeatureNomenclature.cpp:193
void featuresIdentified(FeatureNomenclature *)
This is emitted when a query is completed.
Definition: moc_FeatureNomenclature.cpp:145
QString originatingContinent() const
Definition: FeatureNomenclature.cpp:658
bool hasResult() const
Test if any understandable results have been received from the nomenclature database.
Definition: FeatureNomenclature.cpp:152
QString northernLatitudeString() const
Definition: FeatureNomenclature.cpp:572
FeatureNomenclature & operator=(const FeatureNomenclature &other)
This takes on the data from rhs.
Definition: FeatureNomenclature.cpp:176
QString id() const
Definition: FeatureNomenclature.cpp:405
A named feature on a target.
Definition: FeatureNomenclature.h:114
IAUStatus
Enumeration of approval statuses.
Definition: FeatureNomenclature.h:54