gluit::Point getCurrentStepPosition() const { unsigned int x = currentStep % (columns + 1); unsigned int y = currentStep / (columns + 1); return gluit::Point::fromDouble(x * getColumnSize(), y * getRowSize()).move(getPatternRectangle().upperLeftCorner); }
void Cask::CdapOdbc::ColumnsDataReader::getColumnValue(const ColumnBinding& binding) { auto& record = this->queryResult.getRows().at(this->currentRowIndex); std::wstring name; std::wstring typeName; SQLSMALLINT radix = 0; switch (binding.getColumnNumber()) { case 1: // TABLE_CAT case 2: // TABLE_SCHEM case 9: // DECIMAL_DIGITS case 12: // REMARKS case 13: // COLUMN_DEF case 15: // SQL_DATETIME_SUB case 16: // CHAR_OCTET_LENGTH this->fetchNull(binding); break; case 3: // TABLE_NAME this->fetchVarchar(this->tableName.c_str(), binding); break; case 4: // COLUMN_NAME name = record.at(L"name").as_string(); this->fetchVarchar(name.c_str(), binding); break; case 5: // DATA_TYPE case 14: // SQL_DATA_TYPE this->fetchSmallint(getDataType(record.at(L"type")), binding); break; case 6: // TYPE_NAME typeName = getTypeName(record.at(L"type")); this->fetchVarchar(typeName.c_str(), binding); break; case 7: // COLUMN_SIZE this->fetchInt(getColumnSize(record.at(L"type")), binding); break; case 8: // BUFFER_LENGTH this->fetchInt(getBufferLength(record.at(L"type")), binding); break; case 10: // NUM_PREC_RADIX radix = getRadix(record.at(L"type")); if (radix > 0) { this->fetchSmallint(radix, binding); } else { this->fetchNull(binding); } break; case 11: // NULLABLE this->fetchSmallint(getIsNull(record.at(L"type")), binding); break; case 17: // ORDINAL_POSITION this->fetchInt(this->currentRowIndex + 1, binding); break; case 18: // IS_NULLABLE this->fetchVarchar((getIsNull(record.at(L"type")) == SQL_NO_NULLS) ? L"NO" : L"YES", binding); break; } }
void drawCalibrationPattern(gluit::Graphics& g) const { gluit::Rectangle patternRectangle = getPatternRectangle(); g.setColor(gluit::Color::WHITE); g.setLineWidth(1); g.drawRectangle(patternRectangle, false); double columnSize = getColumnSize(); double rowSize = getRowSize(); for (unsigned int y = 0; y < getPointsPerColumn(); ++y) { for (unsigned int x = 0; x < getPointsPerRow(); ++x) { gluit::Point p = gluit::Point::fromDouble(x * columnSize, y * rowSize).move(patternRectangle.upperLeftCorner); g.drawLine(p.move(-15, 0), p.move(15, 0)); g.drawLine(p.move(0, -15), p.move(0, 15)); } } }