qcubed/framework

View on GitHub
includes/codegen/controls/QDatepickerBoxBase_CodeGenerator.class.php

Summary

Maintainability
A
2 hrs
Test Coverage
<?php

    class QDatepickerBoxBase_CodeGenerator extends QTextBox_CodeGenerator {
        public function __construct($strControlClassName = 'QDatepickerBox') {
            parent::__construct($strControlClassName);
        }


        /**
         * @param string $strPropName
         * @return string
         */
        public function VarName($strPropName) {
            return 'cal' . $strPropName;
        }

        /**
         * Returns code to refresh the control from the saved object.
         *
         * @param QCodeGenBase $objCodeGen
         * @param QSqlTable $objTable
         * @param QSqlColumn|QReverseReference|QManyToManyReference $objColumn
         * @param bool $blnInit
         * @return string
         */
        public function ConnectorRefresh(QCodeGenBase $objCodeGen, QSqlTable $objTable, $objColumn, $blnInit = false) {
            $strObjectName = $objCodeGen->ModelVariableName($objTable->Name);
            $strPropName = $objColumn->Reference ? $objColumn->Reference->PropertyName : $objColumn->PropertyName;
            $strControlVarName = $this->VarName($strPropName);

            if ($blnInit) {
                $strRet = "\t\t\t\$this->{$strControlVarName}->DateTime = \$this->{$strObjectName}->{$strPropName};";
            } else {
                $strRet = "\t\t\tif (\$this->{$strControlVarName}) \$this->{$strControlVarName}->DateTime = \$this->{$strObjectName}->{$strPropName};";
            }
            return $strRet . "\n";
        }

        /**
         * @param QCodeGenBase $objCodeGen
         * @param QSqlTable $objTable
         * @param QSqlColumn|QReverseReference|QManyToManyReference $objColumn
         * @return string
         */
        public function ConnectorUpdate(QCodeGenBase $objCodeGen, QSqlTable $objTable, $objColumn) {
            $strObjectName = $objCodeGen->ModelVariableName($objTable->Name);
            $strPropName = $objColumn->Reference ? $objColumn->Reference->PropertyName : $objColumn->PropertyName;
            $strControlVarName = $this->VarName($strPropName);
            $strRet = <<<TMPL
                if (\$this->{$strControlVarName}) \$this->{$strObjectName}->{$objColumn->PropertyName} = \$this->{$strControlVarName}->DateTime;

TMPL;
            return $strRet;
        }
    }