public function ConnectorGet(QCodeGenBase $objCodeGen, QSqlTable $objTable, $objColumn)
    {
        $strObjectName = $objCodeGen->ModelVariableName($objTable->Name);
        $strPropName = QCodeGen::ModelConnectorPropertyName($objColumn);
        $strControlVarName = $this->VarName($strPropName);
        $strRet = <<<TMPL
\t\t\t\tcase '{$strPropName}NullLabel':
\t\t\t\t\treturn \$this->str{$strPropName}NullLabel;

TMPL;
        return $strRet;
    }
    /**
     * @param QCodeGenBase $objCodeGen
     * @param QSqlTable $objTable
     * @param QSqlColumn|QReverseReference $objColumn
     * @return string
     */
    public function ConnectorUpdate(QCodeGenBase $objCodeGen, QSqlTable $objTable, $objColumn)
    {
        $strObjectName = $objCodeGen->ModelVariableName($objTable->Name);
        $strPropName = QCodeGen::ModelConnectorPropertyName($objColumn);
        $strControlVarName = $this->VarName($strPropName);
        $strRet = '';
        if ($objColumn instanceof QSqlColumn) {
            $strRet = <<<TMPL
\t\t\t\tif (\$this->{$strControlVarName}) \$this->{$strObjectName}->{$objColumn->PropertyName} = \$this->{$strControlVarName}->SelectedValue;

TMPL;
        } elseif ($objColumn instanceof QReverseReference) {
            $strRet = <<<TMPL
\t\t\t\tif (\$this->{$strControlVarName}) \$this->{$strObjectName}->{$objColumn->ObjectPropertyName} = {$objColumn->VariableType}::Load(\$this->{$strControlVarName}->SelectedValue);

TMPL;
        }
        return $strRet;
    }
 /**
  * Returns code to refresh the control from the saved object.
  *
  * @param QCodeGenBase $objCodeGen
  * @param QSqlTable $objTable
  * @param QSqlColumn|QReverseReference $objColumn
  * @param bool $blnInit
  * @throws Exception
  * @return string
  */
 public function ConnectorRefresh(QCodeGenBase $objCodeGen, QSqlTable $objTable, $objColumn, $blnInit = false)
 {
     $strObjectName = $objCodeGen->ModelVariableName($objTable->Name);
     $strPropName = QCodeGen::ModelConnectorPropertyName($objColumn);
     $strControlVarName = $this->VarName($strPropName);
     // Preamble with an if test if not initializing
     $strRet = '';
     if ($objColumn instanceof QSqlColumn) {
         if ($objColumn->Identity || $objColumn->Timestamp) {
             $strRet = "\$this->{$strControlVarName}->Text =  \$this->blnEditMode ? \$this->{$strObjectName}->{$strPropName} : QApplication::Translate('N\\A');";
         } else {
             if ($objColumn->Reference) {
                 if ($objColumn->Reference->IsType) {
                     $strRet = "\$this->{$strControlVarName}->Text = \$this->{$strObjectName}->{$objColumn->PropertyName} ? {$objColumn->Reference->VariableType}::\$NameArray[\$this->{$strObjectName}->{$objColumn->PropertyName}] : null;";
                 } else {
                     $strRet = "\$this->{$strControlVarName}->Text = \$this->{$strObjectName}->{$strPropName} ? \$this->{$strObjectName}->{$strPropName}->__toString() : null;";
                 }
             } else {
                 switch ($objColumn->VariableType) {
                     case "boolean":
                         $strRet = "\$this->{$strControlVarName}->Text = \$this->{$strObjectName}->{$strPropName} ? QApplication::Translate('Yes') : QApplication::Translate('No');";
                         break;
                     case "QDateTime":
                         $strRet = "\$this->{$strControlVarName}->Text = \$this->{$strObjectName}->{$strPropName} ? \$this->{$strObjectName}->{$strPropName}->qFormat(\$this->str{$strPropName}DateTimeFormat) : null;";
                         break;
                     default:
                         $strRet = "\$this->{$strControlVarName}->Text = \$this->{$strObjectName}->{$strPropName};";
                 }
             }
         }
     } elseif ($objColumn instanceof QReverseReference) {
         if ($objColumn->Unique) {
             $strRet = "\$this->{$strControlVarName}->Text = \$this->{$strObjectName}->{$objColumn->ObjectPropertyName} ? \$this->{$strObjectName}->{$objColumn->ObjectPropertyName}->__toString() : null;";
         }
     } elseif ($objColumn instanceof QManyToManyReference) {
         $strRet = "\$this->{$strControlVarName}->Text = implode(\$this->str{$objColumn->ObjectDescription}Glue, \$this->{$strObjectName}->Get{$objColumn->ObjectDescription}Array());";
     } else {
         throw new Exception('Unknown column type.');
     }
     if (!$blnInit) {
         $strRet = "\t\t\tif (\$this->{$strControlVarName}) " . $strRet;
     } else {
         $strRet = "\t\t\t" . $strRet;
     }
     return $strRet . "\n";
 }
 /**
  * Returns the control label name as used in the ModelConnector corresponding to this column or table.
  *
  * @param QSqlColumn|QReverseReference|QManyToManyReference $objColumn
  *
  * @return string
  */
 public static function ModelConnectorControlName($objColumn)
 {
     if (($o = $objColumn->Options) && isset($o['Name'])) {
         // Did developer default?
         return $o['Name'];
     }
     return QConvertNotation::WordsFromCamelCase(QCodeGen::ModelConnectorPropertyName($objColumn));
 }