Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpPrado::using('Application.pages.ClassDefinition');class Home extends TPage{private $_classDefinition=null;public function getClassDefinition(){if(!$this->_classDefinition)$this->_classDefinition=new ClassDefinition;return $this->_classDefinition;}public function onInit($param){parent::onInit($param);if(!$this->IsPostBack){$properties=$this->ClassDefinition->Properties;$properties[]=new PropertyDefinition;$properties[]=new PropertyDefinition;$properties[]=new PropertyDefinition;$this->PropertyList->DataSource=$properties;$this->dataBind();}}public function propertyAction($sender,$param){if($param->CommandName==='add')$this->ClassDefinition->Properties->add(new PropertyDefinition);if($param->CommandName==='remove')$this->ClassDefinition->Properties->removeAt($param->CommandParameter);else if($param->CommandName==='up'){$property=$this->ClassDefinition->Properties->itemAt($param->CommandParameter);$this->ClassDefinition->Properties->removeAt($param->CommandParameter);$this->ClassDefinition->Properties->insertAt($param->CommandParameter-1,$property);}else if($param->CommandName==='down'){$property=$this->ClassDefinition->Properties->itemAt($param->CommandParameter);$this->ClassDefinition->Properties->removeAt($param->CommandParameter);$this->ClassDefinition->Properties->insertAt($param->CommandParameter+1,$property);}$this->PropertyList->DataSource=$this->ClassDefinition->Properties;$this->PropertyList->dataBind();}public function eventAction($sender,$param){if($param->CommandName==='add')$this->ClassDefinition->Events->add(new EventDefinition);else if($param->CommandName==='remove')$this->ClassDefinition->Events->removeAt($param->CommandParameter);else if($param->CommandName==='up'){$property=$this->ClassDefinition->Events->itemAt($param->CommandParameter);$this->ClassDefinition->Events->removeAt($param->CommandParameter);$this->ClassDefinition->Events->insertAt($param->CommandParameter-1,$property);}else if($param->CommandName==='down'){$property=$this->ClassDefinition->Events->itemAt($param->CommandParameter);$this->ClassDefinition->Events->removeAt($param->CommandParameter);$this->ClassDefinition->Events->insertAt($param->CommandParameter+1,$property);}$this->EventList->DataSource=$this->ClassDefinition->Events;$this->EventList->dataBind();}public function onLoad($param){parent::onLoad($param);//if($this->IsPostBack && $this->IsValid)if($this->IsPostBack){$def=$this->ClassDefinition;$def->reset();$def->ClassName=$this->ClassName->Text;$def->ParentClass=$this->ParentClass->Text;$def->Interfaces=$this->Interfaces->Text;$def->Comments=$this->Comments->Text;$def->Author=$this->AuthorName->Text;$def->Email=$this->AuthorEmail->Text;foreach($this->PropertyList->Items as $item){$property=new PropertyDefinition;$property->Name=$item->PropertyName->Text;$property->Type=$item->PropertyType->Text;$property->DefaultValue=$item->DefaultValue->Text;$property->ReadOnly=$item->ReadOnly->Checked;$property->IsProtected=$item->IsProtected->Checked;$property->Comments=$item->Comments->Text;$property->Storage=$item->Storage->Text;$def->Properties[]=$property;}foreach($this->EventList->Items as $item){$event=new EventDefinition;$event->Name=$item->EventName->Text;$event->Comments=$item->Comments->Text;$def->Events[]=$event;}}}public function generateCode($sender,$param){$writer=Prado::createComponent('TTextWriter');$this->ClassDefinition->render($writer);$this->SourceCode->Text=$writer->flush();}}?>