/** * Create and setup QListBox lstNameItems * @param string $strControlId optional ControlId to use * @param QQCondition $objConditions override the default condition of QQ::All() to the query, itself * @param QQClause[] $objOptionalClauses additional optional QQClause object or array of QQClause objects for the query * @return QListBox */ public function lstNameItems_Create($strControlId = null, QQCondition $objCondition = null, $objOptionalClauses = null) { $this->lstNameItems = new QListBox($this->objParentObject, $strControlId); $this->lstNameItems->Name = QApplication::Translate('Name Items'); $this->lstNameItems->SelectionMode = QSelectionMode::Multiple; // We need to know which items to "Pre-Select" $objAssociatedArray = $this->objPerson->GetNameItemArray(); // Setup and perform the Query if (is_null($objCondition)) { $objCondition = QQ::All(); } $objNameItemCursor = NameItem::QueryCursor($objCondition, $objOptionalClauses); // Iterate through the Cursor while ($objNameItem = NameItem::InstantiateCursor($objNameItemCursor)) { $objListItem = new QListItem($objNameItem->__toString(), $objNameItem->Id); foreach ($objAssociatedArray as $objAssociated) { if ($objAssociated->Id == $objNameItem->Id) { $objListItem->Selected = true; } } $this->lstNameItems->AddItem($objListItem); } // Return the QListControl return $this->lstNameItems; }