/** * Class Constructor * @param $name widget's name * @param $database database name * @param $model model class name * @param $key table field to be used as key in the combo * @param $value table field to be listed in the combo * @param $ordercolumn column to order the fields (optional) * @param $criteria criteria (TCriteria object) to filter the model (optional) */ public function __construct($name, $database, $model, $key, $value, $ordercolumn = NULL, TCriteria $criteria = NULL) { // executes the parent class constructor parent::__construct($name); // carrega objetos do banco de dados TTransaction::open($database); // instancia um repositório de Estado $repository = new TRepository($model); if (is_null($criteria)) { $criteria = new TCriteria(); } $criteria->setProperty('order', isset($ordercolumn) ? $ordercolumn : $key); // carrega todos objetos $collection = $repository->load($criteria, FALSE); // adiciona objetos na combo if ($collection) { $items = array(); foreach ($collection as $object) { $items[$object->{$key}] = $object->{$value}; } parent::addItems($items); } TTransaction::close(); }
/** * Class constructor * Creates the page */ function __construct() { parent::__construct(); // create the form $this->form = new TForm(); $this->form->class = 'tform'; // creates the form field container $table = new TTable(); $table->width = '100%'; $this->form->add($table); // title row $table->addRowSet(new TLabel('Manual selections'), '')->class = 'tformtitle'; // create the form fields $radio = new TRadioGroup('radio'); $check = new TCheckGroup('check'); $combo = new TCombo('combo'); $select = new TSelect('select'); $search = new TMultiSearch('search'); $autocomp = new TEntry('autocomplete'); $search->setMinLength(3); $radio->setLayout('horizontal'); $check->setLayout('horizontal'); $combo->setSize(160); $select->setSize(200, 70); // open database transaction TTransaction::open('samples'); // items repository $repository = new TRepository('Category'); // load all objects $collection = $repository->load(new TCriteria()); // add the combo items $items = array(); foreach ($collection as $object) { $items[$object->id] = $object->name; } $radio->addItems($items); $check->addItems($items); $combo->addItems($items); $select->addItems($items); $search->addItems($items); $autocomp->setCompletion(array_values($items)); TTransaction::close(); // add the fields to the table $table->addRowSet(new TLabel('TRadioGroup:'), $radio); $table->addRowSet(new TLabel('TCheckGroup:'), $check); $table->addRowSet(new TLabel('TCombo:'), $combo); $table->addRowSet(new TLabel('TSelect:'), $select); $table->addRowSet(new TLabel('TMultiSearch:'), $search); $table->addRowSet(new TLabel('Autocomplete:'), $autocomp); // creates the action button $button1 = new TButton('action1'); $button1->setAction(new TAction(array($this, 'onSave')), 'Save'); $button1->setImage('ico_save.png'); $table->addRowSet($button1, '')->class = 'tformaction'; // define wich are the form fields $this->form->setFields(array($radio, $check, $combo, $select, $search, $autocomp, $button1)); // wrap the page content using vertical box $vbox = new TVBox(); $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__)); $vbox->add($this->form); parent::add($vbox); }
/** * */ public function makeTSelect($properties) { $widget = new TSelect((string) $properties->{'name'}); $pieces = explode("\n", (string) $properties->{'items'}); $items = array(); if ($pieces) { foreach ($pieces as $line) { $part = explode(':', $line); $items[$part[0]] = $part[1]; } } $widget->addItems($items); if (isset($properties->{'value'})) { $widget->setValue((string) $properties->{'value'}); } if (isset($properties->{'tip'})) { $widget->setTip((string) $properties->{'tip'}); } $widget->setSize((int) $properties->{'width'}, (int) $properties->{'height'}); $this->fields[] = $widget; $this->fieldsByName[(string) $properties->{'name'}] = $widget; return $widget; }
/** * Class constructor * Creates the page */ function __construct() { parent::__construct(); // create the form $this->form = new TForm(); $this->form->class = 'tform'; // creates the form field container $table = new TTable(); $table->width = '100%'; $this->form->add($table); // title row $table->addRowSet(new TLabel('Static selections'), '')->class = 'tformtitle'; // create the form fields $radio = new TRadioGroup('radio'); $check = new TCheckGroup('check'); $combo = new TCombo('combo'); $select = new TSelect('select'); $search = new TMultiSearch('search'); $autocomp = new TEntry('autocomplete'); $radio->setLayout('horizontal'); $check->setLayout('horizontal'); $combo->setSize(100); $select->setSize(200, 70); $search->setSize(300, 70); $items = array(); $items['a'] = 'Item a'; $items['b'] = 'Item b'; $items['c'] = 'Item c'; $radio->addItems($items); $check->addItems($items); $combo->addItems($items); $select->addItems($items); $search->addItems($items); $autocomp->setCompletion(array_values($items)); foreach ($radio->getLabels() as $key => $label) { $label->setTip("Radio {$key}"); } foreach ($check->getLabels() as $key => $label) { $label->setTip("Check {$key}"); } // define default values $search->setMinLength(3); $radio->setValue('a'); $check->setValue(array('a', 'c')); $combo->setValue('b'); $select->setValue(array('b', 'c')); $search->setValue(array('b' => 'Item b')); // add the fields to the table $table->addRowSet(new TLabel('TRadioGroup:'), $radio); $table->addRowSet(new TLabel('TCheckGroup:'), $check); $table->addRowSet(new TLabel('TCombo:'), $combo); $table->addRowSet(new TLabel('TSelect:'), $select); $table->addRowSet(new TLabel('TMultiSearch:'), $search); $table->addRowSet(new TLabel('Autocomplete:'), $autocomp); // creates the action button $button1 = new TButton('action1'); $button1->setAction(new TAction(array($this, 'onSave')), 'Save'); $button1->setImage('ico_save.png'); $table->addRowSet($button1, '')->class = 'tformaction'; // define wich are the form fields $this->form->setFields(array($radio, $check, $combo, $select, $search, $autocomp, $button1)); // wrap the page content using vertical box $vbox = new TVBox(); $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__)); $vbox->add($this->form); parent::add($vbox); }