USGS

Isis 3.0 Object Programmers' Reference

Home

FeatureNomenclature.h
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 
112  class Feature {
113  public:
114  Feature();
115  Feature(QDomElement searchResultFeature, IAUStatus status);
116  Feature(const Feature &other);
117  ~Feature();
118 
119  QWidget *toWidget() const;
120 
121  QString id() const;
122  QString name() const;
123  QString cleanName() const;
124  QString controlNet() const;
125  QString displayName() const;
126  QString target() const;
127  QString system() const;
128  Distance diameter() const;
129  QString diameterString() const;
130  Latitude centerLatitude() const;
131  QString centerLatitudeString() const;
132  Longitude centerLongitude() const;
133  QString centerLongitudeString() const;
134  Latitude northernLatitude() const;
135  QString northernLatitudeString() const;
136  Latitude southernLatitude() const;
137  QString southernLatitudeString() const;
138  Longitude easternLongitude() const;
139  QString easternLongitudeString() const;
140  Longitude westernLongitude() const;
141  QString westernLongitudeString() const;
142  QString originatingContinent() const;
143  QString originatingEthnicity() const;
144  QString approvalStatus() const;
145  QString approvalDate() const;
146  QString featureType() const;
147  QString referenceString() const;
148  QString origin() const;
149  QString lastUpdated() const;
150  QUrl referenceUrl() const;
151  QString referenceUrlString() const;
152  IAUStatus status() const;
153 
154  void swap(Feature &other);
155  Feature &operator=(const Feature &rhs);
156 
157  private:
158  QString getTagText(QString tagName) const;
159 
160  private:
165  QDomElement * m_xmlRepresenation;
168  };
169 
170  signals:
176 
177  private slots:
178  void requestFinished(QNetworkReply *);
179 
180  private:
181  void readSearchResults(QDomElement);
182  void runQuery(QString target,
183  Latitude startLat, Longitude startLon,
184  Latitude endLat, Longitude endLon);
185 
186  private:
187  QNetworkAccessManager *m_networkMgr;
188  QNetworkRequest *m_request;
189 
196  };
197 
198 };
199 
202 
203 #endif