22 #include "../../../dataaccess.h"
23 #include "../../../datatype.h"
24 #include "../../../geometry/Coord2D.h"
25 #include "../../../geometry/Envelope.h"
26 #include "../../../geometry/Geometry.h"
27 #include "../../../geometry/GeometryProperty.h"
28 #include "../../../raster/Grid.h"
29 #include "../../../raster/BandProperty.h"
30 #include "../../../raster/RasterProperty.h"
33 #include <QtGui/QtGui>
34 #include <QtGui/QComboBox>
35 #include <QtGui/QMessageBox>
44 QMessageBox::critical(
this, tr(
"Missing a Valid Data Source"), tr(
"Provide a valid data source!"));
48 layout()->setSizeConstraint(QLayout::SetFixedSize);
54 QStringList dataSetList;
56 size_t numDataSets = datasetNames.size();
57 for (
size_t i = 0; i < numDataSets; ++i)
58 dataSetList << (datasetNames[i]).c_str();
61 dataSetComboBox->addItems(dataSetList);
69 dataTypeComboBox->addItem(
"ARRAY");
72 dataTypeComboBox->addItem(
"BIT");
75 dataTypeComboBox->addItem(
"BOOLEAN");
78 dataTypeComboBox->addItem(
"BYTE_ARRAY");
81 dataTypeComboBox->addItem(
"CHAR");
84 dataTypeComboBox->addItem(
"COMPOSITE");
87 dataTypeComboBox->addItem(
"DATASET");
90 dataTypeComboBox->addItem(
"DATETIME");
93 dataTypeComboBox->addItem(
"DOUBLE");
96 dataTypeComboBox->addItem(
"FLOAT");
99 dataTypeComboBox->addItem(
"GEOMETRY");
102 dataTypeComboBox->addItem(
"INT16");
105 dataTypeComboBox->addItem(
"INT32");
108 dataTypeComboBox->addItem(
"INT64");
111 dataTypeComboBox->addItem(
"NUMERIC");
114 dataTypeComboBox->addItem(
"RASTER");
117 dataTypeComboBox->addItem(
"STRING");
120 dataTypeComboBox->addItem(
"UCHAR");
123 dataTypeComboBox->addItem(
"UINT16");
126 dataTypeComboBox->addItem(
"UINT32");
129 dataTypeComboBox->addItem(
"UINT64");
132 connect(dataSetComboBox, SIGNAL(currentIndexChanged(
const QString&)),
this, SLOT(
dataSetComboBoxChanged(
const QString&)));
134 connect(dataTypeComboBox, SIGNAL(currentIndexChanged(
const QString&)),
this, SLOT(
dataTypeComboBoxChanged(
const QString&)));
137 connect(stringTypeComboBox, SIGNAL(currentIndexChanged(
const QString&)),
this, SLOT(
stringTypeComboBoxChanged(
const QString&)));
152 propertiesComboBox->clear();
154 std::vector<std::string> pNames = m_ds->getPropertyNames(dataSetName.toStdString());
156 for (
size_t i = 0; i < pNames.size(); ++i)
157 propertiesComboBox->addItem(pNames[i].c_str());
162 autoNumberCheckBox->setEnabled(
false);
163 autoNumberCheckBox->setChecked(
false);
165 requiredCheckBox->setEnabled(
true);
166 requiredCheckBox->setChecked(
false);
168 defaultValueLineEdit->clear();
169 defaultValueLineEdit->setEnabled(
false);
171 dataTypeStackedWidget->setVisible(
true);
173 if(dataType ==
"ARRAY")
174 setArrayPropertyParams();
175 else if(dataType ==
"COMPOSITE")
177 requiredCheckBox->setEnabled(
false);
178 dataTypeStackedWidget->setCurrentWidget(compositePage);
180 else if(dataType ==
"DATETIME")
181 setDateTimePropertyParams();
182 else if(dataType ==
"GEOMETRY")
183 setGeometryPropertyParams();
184 else if(dataType ==
"NUMERIC")
185 dataTypeStackedWidget->setCurrentWidget(numericPage);
186 else if(dataType ==
"RASTER")
188 requiredCheckBox->setEnabled(
false);
189 dataTypeStackedWidget->setCurrentWidget(rasterPage);
191 else if(dataType ==
"STRING")
192 setStringPropertyParams();
195 dataTypeStackedWidget->setVisible(
false);
197 if(dataType ==
"INT32" || dataType ==
"INT64")
198 autoNumberCheckBox->setEnabled(
true);
204 requiredCheckBox->setEnabled(
true);
205 defaultValueLineEdit->setEnabled(
true);
206 requiredCheckBox->setChecked(
false);
207 defaultValueLineEdit->clear();
211 requiredCheckBox->setEnabled(
false);
212 defaultValueLineEdit->setEnabled(
false);
213 requiredCheckBox->setChecked(
true);
219 defaultValueLineEdit->clear();
221 defaultValueLineEdit->setEnabled(
true);
223 defaultValueLineEdit->setEnabled(
false);
228 if(arrayElementDataType ==
"NUMERIC")
230 arrayElementStackedWidget->setVisible(
true);
231 arrayElementStackedWidget->setCurrentWidget(arrayElementNumericPage);
233 else if(arrayElementDataType ==
"STRING")
235 arrayElementStackedWidget->setVisible(
true);
236 arrayElementStackedWidget->setCurrentWidget(arrayElementStringPage);
239 arrayElementStackedWidget->setVisible(
false);
245 stringSizeLineEdit->setEnabled(
true);
247 if(stringType ==
"STRING")
249 stringSizeLineEdit->clear();
250 stringSizeLineEdit->setEnabled(
false);
257 if(propertyNameLineEdit->text().isEmpty())
259 QMessageBox::information(
this, tr(
"Missing the Property Name"),
260 tr(
"Set the name of the new property!"));
264 m_propertyName = propertyNameLineEdit->text().toStdString();
267 if(defaultValueLineEdit->text().isEmpty())
270 m_defaultValue =
new std::string(defaultValueLineEdit->text().toStdString());
273 QString dataType = dataTypeComboBox->currentText();
275 m_property = buildProperty(dataType);
294 dataTypeStackedWidget->setCurrentWidget(arrayPage);
298 if(arrayElementDataTypeComboBox->count() == 0)
300 for(
int i = 0; i < dataTypeComboBox->count(); ++i)
302 QString dataType = dataTypeComboBox->itemText(i);
304 if(dataType ==
"ARRAY" || dataType ==
"COMPOSITE" ||
305 dataType ==
"GEOMETRY" || dataType ==
"RASTER")
308 arrayElementDataTypeComboBox->addItem(dataType);
313 if (arrayElementStringTypeComboBox->count() == 0)
315 arrayElementStringTypeComboBox->addItem(
"FIXED_STRING");
316 arrayElementStringTypeComboBox->addItem(
"VAR_STRING");
317 arrayElementStringTypeComboBox->addItem(
"STRING");
323 dataTypeStackedWidget->setCurrentWidget(dateTimePage);
326 if (dateTimeTypeComboBox->count() == 0)
328 dateTimeTypeComboBox->addItem(
"DATE");
329 dateTimeTypeComboBox->addItem(
"DATE_PERIOD");
330 dateTimeTypeComboBox->addItem(
"DATE_DURATION");
331 dateTimeTypeComboBox->addItem(
"TIME_DURATION");
332 dateTimeTypeComboBox->addItem(
"TIME_INSTANT");
333 dateTimeTypeComboBox->addItem(
"TIME_PERIOD");
334 dateTimeTypeComboBox->addItem(
"TIME_INSTANT_TZ");
335 dateTimeTypeComboBox->addItem(
"TIME_PERIOD_TZ");
338 QMessageBox::warning(
this, tr(
"Add Operation Not Implemented"),
339 tr(
"The add operation for the datetime property was not implemented yet!"));
344 dataTypeStackedWidget->setCurrentWidget(geometryPage);
347 if (geometryTypeComboBox->count() == 0)
349 geometryTypeComboBox->addItem(
"GEOMETRY");
350 geometryTypeComboBox->addItem(
"GEOMETRYZ");
351 geometryTypeComboBox->addItem(
"GEOMETRYM");
352 geometryTypeComboBox->addItem(
"GEOMETRYZM");
353 geometryTypeComboBox->addItem(
"POINT");
354 geometryTypeComboBox->addItem(
"POINTZ");
355 geometryTypeComboBox->addItem(
"POINTM");
356 geometryTypeComboBox->addItem(
"POINTZM");
357 geometryTypeComboBox->addItem(
"LINESTRING");
358 geometryTypeComboBox->addItem(
"LINESTRINGZ");
359 geometryTypeComboBox->addItem(
"LINESTRINGM");
360 geometryTypeComboBox->addItem(
"LINESTRINGZM");
361 geometryTypeComboBox->addItem(
"POLYGON");
362 geometryTypeComboBox->addItem(
"POLYGONZ");
363 geometryTypeComboBox->addItem(
"POLYGONM");
364 geometryTypeComboBox->addItem(
"POLYGONZM");
365 geometryTypeComboBox->addItem(
"GEOMETRYCOLLECTION");
366 geometryTypeComboBox->addItem(
"GEOMETRYCOLLECTIONZ");
367 geometryTypeComboBox->addItem(
"GEOMETRYCOLLECTIONM");
368 geometryTypeComboBox->addItem(
"GEOMETRYCOLLECTIONZM");
369 geometryTypeComboBox->addItem(
"MULTIPOINT");
370 geometryTypeComboBox->addItem(
"MULTIPOINTZ");
371 geometryTypeComboBox->addItem(
"MULTIPOINTM");
372 geometryTypeComboBox->addItem(
"MULTIPOINTZM");
373 geometryTypeComboBox->addItem(
"MULTILINESTRING");
374 geometryTypeComboBox->addItem(
"MULTILINESTRINGZ");
375 geometryTypeComboBox->addItem(
"MULTILINESTRINGM");
376 geometryTypeComboBox->addItem(
"MULTILINESTRINGZM");
377 geometryTypeComboBox->addItem(
"MULTIPOLYGON");
378 geometryTypeComboBox->addItem(
"MULTIPOLYGONZ");
379 geometryTypeComboBox->addItem(
"MULTIPOLYGONM");
380 geometryTypeComboBox->addItem(
"MULTIPOLYGONZM");
381 geometryTypeComboBox->addItem(
"UNKNOWNGEOMETRY");
387 dataTypeStackedWidget->setCurrentWidget(stringPage);
390 if (stringTypeComboBox->count() == 0)
392 stringTypeComboBox->addItem(
"FIXED_STRING");
393 stringTypeComboBox->addItem(
"VAR_STRING");
394 stringTypeComboBox->addItem(
"STRING");
400 if(dataType ==
"ARRAY")
401 return buildArrayProperty();
402 else if(dataType ==
"BIT")
403 return buildBitProperty();
404 else if(dataType ==
"BOOLEAN")
405 return buildBooleanProperty();
406 else if(dataType ==
"BYTE_ARRAY")
407 return buildByteArrayProperty();
408 else if(dataType ==
"CHAR")
409 return buildCharProperty();
410 else if(dataType ==
"COMPOSITE")
411 return buildCompositeProperty();
412 else if(dataType ==
"DATETIME")
413 return buildDateTimeProperty();
414 else if(dataType ==
"DOUBLE")
415 return buildDoubleProperty();
416 else if(dataType ==
"FLOAT")
417 return buildFloatProperty();
418 else if(dataType ==
"GEOMETRY")
419 return buildGeometryProperty();
420 else if(dataType ==
"INT16")
421 return buildInt16Property();
422 else if (dataType ==
"INT32")
423 return buildInt32Property();
424 else if(dataType ==
"INT64")
425 return buildInt64Property();
426 else if(dataType ==
"NUMERIC")
427 return buildNumericProperty();
428 else if(dataType ==
"RASTER")
429 return buildRasterProperty();
430 else if(dataType ==
"STRING")
431 return buildStringProperty();
432 else if(dataType ==
"UCHAR")
433 return buildUcharProperty();
434 else if(dataType ==
"UINT16")
435 return buildUint16Property();
436 else if(dataType ==
"UINT32")
437 return buildUint32Property();
438 else if(dataType ==
"UINT64")
439 return buildUint64Property();
440 else if(dataType ==
"UNKNOWN")
441 return buildUnknownProperty();
442 else if(dataType ==
"VOID")
443 return buildVoidProperty();
451 unsigned int dimension = 1;
452 if(arrayDimensionLineEdit->text().isEmpty() ==
false)
455 dimension = arrayDimensionLineEdit->text().toUInt(&ok);
458 QMessageBox::warning(
this, tr(
"Invalid Value"),
459 tr(
"The array dimension must be an unsigned int value!"));
467 QString arrayElementDataType = arrayElementDataTypeComboBox->currentText();
469 std::string tempPropertyName = m_propertyName;
470 m_propertyName = std::string();
472 std::string* tempDefaultValue = m_defaultValue;
479 m_propertyName = tempPropertyName;
480 m_defaultValue = tempDefaultValue;
486 arrayElementProperty = 0;
488 for(
unsigned int i = 0; i < dimension - 2; ++i)
495 requiredCheckBox->isChecked(), m_defaultValue);
500 if(m_defaultValue != 0)
502 for(
size_t i = 0; i < m_defaultValue->size(); ++i)
504 if(m_defaultValue->operator[](i) ==
'0' || m_defaultValue->operator[](i) ==
'1')
506 QMessageBox::warning(
this, tr(
"Default Value Error"),
507 tr(
"The default value contents for the BIT property can only contains 0's or 1's!"));
514 requiredCheckBox->isChecked(), m_defaultValue);
519 if(m_defaultValue != 0)
521 QString qs = defaultValueLineEdit->text().toUpper();
523 if(qs !=
"TRUE" && qs !=
"FALSE")
525 QMessageBox::warning(
this, tr(
"Default Value Error"),
526 tr(
"The default value for the BOOLEAN property can only be: true, TRUE, false, or FALSE"));
532 requiredCheckBox->isChecked(), m_defaultValue);
538 requiredCheckBox->isChecked(), m_defaultValue);
544 if(m_defaultValue != 0)
547 int val = defaultValueLineEdit->text().toInt(&ok);
549 if(ok ==
false || val <-128 || val > 127)
551 QMessageBox::warning(
this, tr(
"Default Value Error"),
552 tr(
"The default value must be a char value >= -128 and <= 127!"));
558 requiredCheckBox->isChecked(), m_defaultValue);
563 std::string cname = std::string();
565 if(compositeNameLineEdit->text().isEmpty() ==
false)
566 cname = compositeNameLineEdit->text().toStdString();
579 dateTimeType,
te::dt::SECOND, requiredCheckBox->isChecked(), m_defaultValue);
581 return dateTimeProperty;
586 if(m_defaultValue != 0)
590 defaultValueLineEdit->text().toDouble(&ok);
593 QMessageBox::warning(
this, tr(
"Default Value Error"),
594 tr(
"The default value must be a double number!"));
600 requiredCheckBox->isChecked(), m_defaultValue);
605 if(m_defaultValue != 0)
609 defaultValueLineEdit->text().toFloat(&ok);
612 QMessageBox::warning(
this, tr(
"Default Value Error"),
613 tr(
"The default value must be a float number!"));
619 requiredCheckBox->isChecked(), m_defaultValue);
625 std::string gTypeStr = geometryTypeComboBox->currentText().toStdString();
630 if (geometrySRIDLineEdit->text().isEmpty() ==
false)
633 srid = geometrySRIDLineEdit->text().toInt(&ok);
636 QMessageBox::warning(
this, tr(
"Invalid SRID"),
637 tr(
"The SRID for the GEOMETRY property must be an integer number!"));
643 requiredCheckBox->isChecked(), m_defaultValue);
648 if(m_defaultValue != 0)
652 defaultValueLineEdit->text().toShort(&ok);
655 QMessageBox::warning(
this, tr(
"Default Value Error"),
656 tr(
"The default value must be a short value!"));
662 requiredCheckBox->isChecked(), m_defaultValue);
667 if(m_defaultValue != 0)
671 defaultValueLineEdit->text().toInt(&ok);
674 QMessageBox::warning(
this, tr(
"Default Value Error"),
675 tr(
"The default value must be an integer value!"));
681 requiredCheckBox->isChecked(), m_defaultValue);
690 if(m_defaultValue != 0)
694 defaultValueLineEdit->text().toLongLong(&ok);
697 QMessageBox::warning(
this, tr(
"Default Value Error"),
698 tr(
"The default value must be a long long value!"));
704 requiredCheckBox->isChecked(), m_defaultValue);
716 if(dataTypeComboBox->currentText() ==
"NUMERIC")
718 if(m_defaultValue != 0)
720 defaultValueLineEdit->text().toDouble(&ok);
723 QMessageBox::warning(
this, tr(
"Default Value Error"),
724 tr(
"The default value must be a numeric value!"));
731 unsigned int precision = 0;
733 if(dataTypeComboBox->currentText() ==
"NUMERIC")
735 if(precisionLineEdit->text().isEmpty() ==
false)
736 precision = precisionLineEdit->text().toUInt(&ok);
740 if(arrayElementPrecisionLineEdit->text().isEmpty() ==
false)
741 precision = arrayElementPrecisionLineEdit->text().toUInt(&ok);
746 QMessageBox::warning(
this, tr(
"Invalid Value"),
747 tr(
"The precision must be an unsigned int value!"));
752 unsigned int scale = 0;
754 if(dataTypeComboBox->currentText() ==
"NUMERIC")
756 if(scaleLineEdit->text().isEmpty() ==
false)
757 scale = scaleLineEdit->text().toUInt(&ok);
761 if(arrayElementScaleLineEdit->text().isEmpty() ==
false)
762 scale = arrayElementScaleLineEdit->text().toUInt(&ok);
767 QMessageBox::warning(
this, tr(
"Invalid Value"),
768 tr(
"The scale must be an unsigned int value!"));
773 precision, scale, requiredCheckBox->isChecked(), m_defaultValue);
782 if (rasterSRIDLineEdit->text().isEmpty() ==
false)
784 srid = rasterSRIDLineEdit->text().toInt(&ok);
787 QMessageBox::warning(
this, tr(
"Invalid Value"),
788 tr(
"The SRID must be an integer value!"));
794 unsigned int nCols = 0;
795 if (nColsLineEdit->text().isEmpty() ==
false)
797 nCols = nColsLineEdit->text().toUInt(&ok);
800 QMessageBox::warning(
this, tr(
"Invalid Value"),
801 tr(
"The number of columns must be an unsigned integer value!"));
807 unsigned int nLines = 0;
808 if (nLinesLineEdit->text().isEmpty() ==
false)
810 nLines = nLinesLineEdit->text().toUInt();
813 QMessageBox::warning(
this, tr(
"Invalid Value"),
814 tr(
"The number of lines must be an unsigned integer value!"));
821 if (resxLineEdit->text().isEmpty() ==
false)
823 resX = resxLineEdit->text().toFloat(&ok);
826 QMessageBox::warning(
this, tr(
"Invalid Value"),
827 tr(
"The X resolution must be a float value!"));
834 if (resyLineEdit->text().isEmpty() ==
false)
836 resY = resyLineEdit->text().toFloat();
839 QMessageBox::warning(
this, tr(
"Invalid Value"),
840 tr(
"The Y resolution must be a float value!"));
851 if(rasterLLXLineEdit->text().isEmpty() ==
false)
853 llx = rasterLLXLineEdit->text().toDouble(&ok);
856 QMessageBox::warning(
this, tr(
"Invalid Value"),
857 tr(
"The LLX coordinate must be a double value!"));
862 if(rasterLLYLineEdit->text().isEmpty() ==
false)
864 lly = rasterLLYLineEdit->text().toDouble(&ok);
867 QMessageBox::warning(
this, tr(
"Invalid Value"),
868 tr(
"The LLY coordinate must be a double value!"));
873 if(rasterURXLineEdit->text().isEmpty() ==
false)
875 urx = rasterURXLineEdit->text().toDouble(&ok);
878 QMessageBox::warning(
this, tr(
"Invalid Value"),
879 tr(
"The URX coordinate must be a double value!"));
884 if(rasterURYLineEdit->text().isEmpty() ==
false)
886 ury = rasterURYLineEdit->text().toDouble(&ok);
889 QMessageBox::warning(
this, tr(
"Invalid Value"),
890 tr(
"The URY coordinate must be a double value!"));
896 unsigned int nBands = 0;
898 if (nBandsLineEdit->text().isEmpty() ==
false)
900 nBands = nBandsLineEdit->text().toUInt(&ok);
903 QMessageBox::warning(
this, tr(
"Invalid Value"),
904 tr(
"The number of bands must be an unsigned integer value!"));
913 std::map<std::string, std::string> rinfo;
916 std::vector<te::rst::BandProperty*> bprops;
917 for (
unsigned b = 0; b < nBands; b++)
929 size_t stringSize = 0;
932 if(dataTypeComboBox->currentText() ==
"STRING")
936 if(stringSizeLineEdit->text().isEmpty() ==
false)
937 stringSize = stringSizeLineEdit->text().toUInt(&ok);
941 stringType =
static_cast<te::dt::StringType>(arrayElementStringTypeComboBox->currentIndex());
943 if(arrayElementStringSizeLineEdit->text().isEmpty() ==
false)
944 stringSize = arrayElementStringSizeLineEdit->text().toUInt(&ok);
949 QMessageBox::warning(
this, tr(
"Invalid Value"),
950 tr(
"The string size must be an unsigned int value!"));
955 stringType, stringSize, requiredCheckBox->isChecked(), m_defaultValue);
957 return stringProperty;
962 if(m_defaultValue != 0)
966 unsigned int val = defaultValueLineEdit->text().toUShort(&ok);
967 if(ok ==
false || val > 255)
969 QMessageBox::warning(
this, tr(
"Default Value Error"),
970 tr(
"The default value must be an unsigned char value!"));
976 requiredCheckBox->isChecked(), m_defaultValue);
981 if(m_defaultValue != 0)
985 defaultValueLineEdit->text().toUShort(&ok);
988 QMessageBox::warning(
this, tr(
"Default Value Error"),
989 tr(
"The default value must be an unsigned short value!"));
995 requiredCheckBox->isChecked(), m_defaultValue);
1000 if(m_defaultValue != 0)
1004 defaultValueLineEdit->text().toUInt(&ok);
1007 QMessageBox::warning(
this, tr(
"Default Value Error"),
1008 tr(
"The default value must be an unsigned integer value!"));
1014 requiredCheckBox->isChecked(), m_defaultValue);
1019 if(m_defaultValue != 0)
1023 defaultValueLineEdit->text().toULongLong(&ok);
1026 QMessageBox::warning(
this, tr(
"Default Value Error"),
1027 tr(
"The default value must be an unsigned long long value!"));
1033 requiredCheckBox->isChecked(), m_defaultValue);
bool supportsByteArray() const
te::dt::Property * buildCharProperty()
te::dt::Property * buildNumericProperty()
void setRequired(bool r)
It tells if the property is required or not.
bool supportsDateTime() const
te::da::DataTypeCapabilities dataTypeCapabilities
The type for variable-length multidimensional arrays.
te::dt::Property * buildRasterProperty()
void arrayElementDataTypeComboBoxChanged(const QString &arrayElementDataType)
te::dt::Property * buildStringProperty()
void autoNumberCheckBoxClicked(bool checked)
void stringTypeComboBoxChanged(const QString &stringType)
An atomic property like an integer or double.
bool supportsComposite() const
virtual std::vector< std::string > getDataSetNames()
It gets the dataset names available in the data source.
te::dt::Property * buildDateTimeProperty()
te::dt::Property * buildUint64Property()
bool supportsGeometry() const
bool supportsChar() const
virtual const DataSourceCapabilities & getCapabilities() const =0
It returns the known capabilities of the data source.
bool supportsInt64() const
void requiredCheckBoxClicked(bool checked)
The type for date and time types: date, date period, date duration, time duration, time instant, time period, time instant with time zone or time period with time zone.
void cancelPushButtonClicked()
The type for string types: FIXED_STRING, VAR_STRING or STRING.
It adds a property to a data set.
void closeEvent(QCloseEvent *e)
void dataSetComboBoxChanged(const QString &dataSetName)
te::dt::Property * buildVoidProperty()
te::dt::Property * buildInt64Property()
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
te::dt::Property * buildUint16Property()
te::dt::Property * buildInt32Property()
void setGeoreference(const te::gm::Coord2D &ulLocation, int srid, double resX, double resY)
Sets the information needed to georeference the grid.
An utility struct for representing 2D coordinates.
void okPushButtonClicked()
void helpPushButtonClicked()
te::da::DataSource * m_ds
te::dt::Property * buildFloatProperty()
te::dt::Property * buildByteArrayProperty()
A rectified grid is the spatial support for raster data.
bool supportsUChar() const
te::dt::Property * buildBitProperty()
void setAutoNumber(bool a)
It tells if the property is an autonumber or not.
bool supportsDataset() const
te::dt::Property * buildCompositeProperty()
bool supportsBoolean() const
AddProperty(te::da::DataSource *ds, QWidget *parent=0)
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
GeomType getGeomTypeId() const
It returns the geometry subclass type identifier.
bool supportsInt16() const
void setGeometryPropertyParams()
te::dt::Property * buildUint32Property()
const DataTypeCapabilities & getDataTypeCapabilities() const
DateTimeType
The subtype of date and time type.
void setStringPropertyParams()
te::dt::Property * buildArrayProperty()
te::dt::Property * buildInt16Property()
bool supportsNumeric() const
bool supportsDouble() const
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
A raster band description.
bool supportsInt32() const
bool supportsUInt64() const
StringType
The subtype of string property.
te::dt::Property * buildUcharProperty()
It models a property definition.
void setArrayPropertyParams()
bool supportsUInt16() const
A base class for a compound property (non-atomic properties).
te::dt::Property * buildUnknownProperty()
bool supportsUInt32() const
te::dt::Property * buildGeometryProperty()
bool supportsRaster() const
void dataTypeComboBoxChanged(const QString &dataType)
The type for arbitrary precison numbers, like numeric(p, q).
bool supportsString() const
void setDateTimePropertyParams()
te::dt::Property * buildDoubleProperty()
A class that represents the supported data types of a specific data source.
te::dt::Property * buildBooleanProperty()
bool supportsFloat() const
te::da::DataSourceCapabilities capabilities
bool supportsArray() const
te::dt::Property * buildProperty(const QString &dataType)