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)); }