summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framework/Wsat/TWsatScaffoldingGenerator.php41
-rw-r--r--framework/Wsat/pages/TWsatScaffolding.page4
-rw-r--r--framework/Wsat/pages/TWsatScaffolding.php19
3 files changed, 59 insertions, 5 deletions
diff --git a/framework/Wsat/TWsatScaffoldingGenerator.php b/framework/Wsat/TWsatScaffoldingGenerator.php
index 37b8ae00..7986793d 100644
--- a/framework/Wsat/TWsatScaffoldingGenerator.php
+++ b/framework/Wsat/TWsatScaffoldingGenerator.php
@@ -9,7 +9,6 @@
* @since 3.3
* @package Wsat
*/
-
Prado::using("System.Wsat.TWsatBaseGenerator");
class TWsatScaffoldingGenerator extends TWsatBaseGenerator
@@ -20,6 +19,46 @@ class TWsatScaffoldingGenerator extends TWsatBaseGenerator
parent::__construct();
}
+ public function generate()
+ {
+ $unitName = "Example";
+ $class = $this->generateClass($unitName);
+ $outputClass = $this->_opFile . DIRECTORY_SEPARATOR . $unitName . ".php";
+ file_put_contents($outputClass, $class);
+
+ $outputPage = $this->_opFile . DIRECTORY_SEPARATOR . $unitName . ".page";
+ $page = $this->generatePage($unitName);
+ file_put_contents($outputPage, $page);
+ }
+
+ // <editor-fold defaultstate="collapsed" desc="Generate Sigle Page">
+ private function generatePage($fileName, $tContentId = "Content")
+ {
+ return <<<EOD
+<com:TContent ID="Content">
+
+</com:TContent>
+EOD;
+ }
+
+ private function generateClass($classname)
+ {
+ $date = date('Y-m-d h:i:s');
+ $env_user = getenv("username");
+ return <<<EOD
+<?php
+/**
+ * Auto generated by PRADO - WSAT on $date.
+ * @author $env_user
+ */
+class $classname extends TPage
+{
+
+}
+EOD;
+ }
+
+// </editor-fold>
}
?>
diff --git a/framework/Wsat/pages/TWsatScaffolding.page b/framework/Wsat/pages/TWsatScaffolding.page
index a3ebffd5..f3e53df3 100644
--- a/framework/Wsat/pages/TWsatScaffolding.page
+++ b/framework/Wsat/pages/TWsatScaffolding.page
@@ -12,6 +12,10 @@
<com:TRequiredFieldValidator ControlToValidate="output_folder" Text="Output folder cannot be blank." Display="Dynamic" />
</div>
+ <com:TPanel ID="feedback_panel" Visible="false" style="width: 400px">
+ <com:TLabel ID="generation_msg" />
+ </com:TPanel>
+
<div style="text-align: center; width: 400px">
<com:TButton Text="Preview" OnClick="preview" Visible="false" />
<com:TButton Text="Generate" OnClick="generate" />
diff --git a/framework/Wsat/pages/TWsatScaffolding.php b/framework/Wsat/pages/TWsatScaffolding.php
index 9bbeec3a..2dc7d288 100644
--- a/framework/Wsat/pages/TWsatScaffolding.php
+++ b/framework/Wsat/pages/TWsatScaffolding.php
@@ -39,10 +39,21 @@ class TWsatScaffolding extends TPage
{
if ($this->IsValid)
{
- $scf_generator = new TWsatScaffoldingGenerator();
- // echo $this->cb_student->Text;
- // $scf_generator->renderAllTablesInformation();
+ try
+ {
+ $scf_generator = new TWsatScaffoldingGenerator();
+ $scf_generator->setOpFile($this->output_folder->Text);
+ $scf_generator->generate();
+ $this->feedback_panel->CssClass = "green_panel";
+ $this->generation_msg->Text = "The code has been generated successfully.";
+ } catch (Exception $ex)
+ {
+ $this->feedback_panel->CssClass = "red_panel";
+ $this->generation_msg->Text = $ex->getMessage();
+ }
+ $this->feedback_panel->Visible = true;
}
- }
+ // $scf_generator->renderAllTablesInformation();
+ }
} \ No newline at end of file