3 * TSqliteScaffoldInput class file.
5 * @link https://github.com/pradosoft/prado
6 * @copyright Copyright © 2005-2016 The PRADO Group
7 * @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
8 * @package System.Data.ActiveRecord.Scaffold.InputBuilder
10 Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
12 class TSqliteScaffoldInput extends TScaffoldInputCommon
14 protected function createControl($container, $column, $record)
16 switch(strtolower($column->getDbType()))
19 return $this->createBooleanControl($container, $column, $record);
21 return $this->createDateControl($container, $column, $record);
22 case 'blob': case 'tinyblob': case 'mediumblob': case 'longblob':
23 case 'text': case 'tinytext': case 'mediumtext': case 'longtext':
24 return $this->createMultiLineControl($container, $column, $record);
26 return $this->createYearControl($container, $column, $record);
27 case 'int': case 'integer': case 'tinyint': case 'smallint': case 'mediumint': case 'bigint':
28 return $this->createIntegerControl($container, $column, $record);
29 case 'decimal': case 'double': case 'float':
30 return $this->createFloatControl($container, $column, $record);
32 return $this->createTimeControl($container, $column, $record);
33 case 'datetime': case 'timestamp':
34 return $this->createDateTimeControl($container, $column, $record);
36 return $this->createDefaultControl($container,$column, $record);
40 protected function getControlValue($container, $column, $record)
42 switch(strtolower($column->getDbType()))
45 return $container->findControl(self::DEFAULT_ID)->getChecked();
47 return $container->findControl(self::DEFAULT_ID)->getDate();
49 return $container->findControl(self::DEFAULT_ID)->getSelectedValue();
51 return $this->getTimeValue($container, $column, $record);
52 case 'datetime': case 'timestamp':
53 return $this->getDateTimeValue($container,$column, $record);
55 return $this->getDefaultControlValue($container,$column, $record);
59 protected function createDateControl($container, $column, $record)
61 $control = parent::createDateControl($container, $column, $record);
62 $value = $this->getRecordPropertyValue($column, $record);
63 if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
64 $control->setTimestamp(intval($value));
68 protected function createDateTimeControl($container, $column, $record)
70 $value = $this->getRecordPropertyValue($column, $record);
71 $time = parent::createDateTimeControl($container, $column, $record);
72 if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
74 $s = Prado::createComponent('System.Util.TDateTimeStamp');
75 $date = $s->getDate(intval($value));
76 $time[1]->setSelectedValue($date['hours']);
77 $time[2]->setSelectedValue($date['minutes']);
78 $time[3]->setSelectedValue($date['seconds']);
83 protected function getDateTimeValue($container, $column, $record)
85 if(preg_match('/timestamp/i', $column->getDbType()))
87 $time = $container->findControl(self::DEFAULT_ID)->getTimestamp();
88 $s = Prado::createComponent('System.Util.TDateTimeStamp');
89 $date = $s->getDate($time);
90 $hour = $container->findControl('scaffold_time_hour')->getSelectedValue();
91 $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
92 $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
93 return $s->getTimeStamp($hour,$mins,$secs,$date['mon'],$date['mday'],$date['year']);
96 return parent::getDateTimeValue($container, $column, $record);