A QCodo powered CMS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
3.4 KiB

  1. /**
  2. * Refresh this MetaControl with Data from the local <%= $objTable->ClassName %> object.
  3. * @param boolean $blnReload reload <%= $objTable->ClassName %> from the database
  4. * @return void
  5. */
  6. public function Refresh($blnReload = false) {
  7. if ($blnReload)
  8. $this-><%= $objCodeGen->VariableNameFromTable($objTable->Name); %>->Reload();
  9. <% foreach ($objTable->ColumnArray as $objColumn) { %><%
  10. // Use the "control_refresh_" subtemplates to generate the code
  11. // required to create/setup the control.
  12. $mixArguments = array(
  13. 'objColumn' => $objColumn,
  14. 'strObjectName' => $objCodeGen->VariableNameFromTable($objTable->Name),
  15. 'strClassName' => $objTable->ClassName,
  16. 'strControlId' => $objCodeGen->FormControlVariableNameForColumn($objColumn),
  17. 'strLabelId' => $objCodeGen->FormLabelVariableNameForColumn($objColumn)
  18. );
  19. // Figure out WHICH "control_refresh_" to use
  20. if ($objColumn->Identity) {
  21. $strTemplateFilename = 'identity';
  22. } else if ($objColumn->Timestamp) {
  23. $strTemplateFilename = 'identity';
  24. } else if ($objColumn->Reference) {
  25. if ($objColumn->Reference->IsType)
  26. $strTemplateFilename = 'type';
  27. else
  28. $strTemplateFilename = 'reference';
  29. } else {
  30. $strTemplateFilename = $objColumn->VariableType;
  31. }
  32. // Get the subtemplate and evaluate
  33. return $objCodeGen->EvaluateSubTemplate(sprintf('control_refresh_%s.tpl', $strTemplateFilename), $strModuleName, $mixArguments) . "\n\n";
  34. %><% } %>
  35. <% foreach ($objTable->ReverseReferenceArray as $objReverseReference) { %><%
  36. if ($objReverseReference->Unique) {
  37. // Use the "control_refresh_" subtemplates to generate the code
  38. // required to create/setup the control.
  39. $mixArguments = array(
  40. 'objReverseReference' => $objReverseReference,
  41. 'objTable' => $objTable,
  42. 'strObjectName' => $objCodeGen->VariableNameFromTable($objTable->Name),
  43. 'strClassName' => $objTable->ClassName,
  44. 'strControlId' => $objCodeGen->FormControlVariableNameForUniqueReverseReference($objReverseReference),
  45. 'strLabelId' => $objCodeGen->FormLabelVariableNameForUniqueReverseReference($objReverseReference)
  46. );
  47. // Get the subtemplate and evaluate
  48. return $objCodeGen->EvaluateSubTemplate('control_refresh_unique_reversereference.tpl', $strModuleName, $mixArguments) . "\n\n";
  49. } else
  50. return null;
  51. %><% } %>
  52. <% foreach ($objTable->ManyToManyReferenceArray as $objManyToManyReference) { %><%
  53. // Use the "control_refresh_manytomany_reference" subtemplate to generate the code
  54. // required to create/setup the control.
  55. $mixArguments = array(
  56. 'objManyToManyReference' => $objManyToManyReference,
  57. 'objTable' => $objTable,
  58. 'strObjectName' => $objCodeGen->VariableNameFromTable($objTable->Name),
  59. 'strClassName' => $objTable->ClassName,
  60. 'strControlId' => $objCodeGen->FormControlVariableNameForManyToManyReference($objManyToManyReference),
  61. 'strLabelId' => $objCodeGen->FormLabelVariableNameForManyToManyReference($objManyToManyReference)
  62. );
  63. // Get the subtemplate and evaluate
  64. return $objCodeGen->EvaluateSubTemplate('control_refresh_manytomany_reference.tpl', $strModuleName, $mixArguments) . "\n\n";
  65. %><% } %>
  66. }