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);
	}
Ejemplo n.º 2
0
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));
			}
		}
	}