/** * Create and setup QListBox lstAttributeOptionsAsMultiple * @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 lstAttributeOptionsAsMultiple_Create($strControlId = null, QQCondition $objCondition = null, $objOptionalClauses = null) { $this->lstAttributeOptionsAsMultiple = new QListBox($this->objParentObject, $strControlId); $this->lstAttributeOptionsAsMultiple->Name = QApplication::Translate('Attribute Options As Multiple'); $this->lstAttributeOptionsAsMultiple->SelectionMode = QSelectionMode::Multiple; // We need to know which items to "Pre-Select" $objAssociatedArray = $this->objAttributeValue->GetAttributeOptionAsMultipleArray(); // Setup and perform the Query if (is_null($objCondition)) { $objCondition = QQ::All(); } $objAttributeOptionCursor = AttributeOption::QueryCursor($objCondition, $objOptionalClauses); // Iterate through the Cursor while ($objAttributeOption = AttributeOption::InstantiateCursor($objAttributeOptionCursor)) { $objListItem = new QListItem($objAttributeOption->__toString(), $objAttributeOption->Id); foreach ($objAssociatedArray as $objAssociated) { if ($objAssociated->Id == $objAttributeOption->Id) { $objListItem->Selected = true; } } $this->lstAttributeOptionsAsMultiple->AddItem($objListItem); } // Return the QListControl return $this->lstAttributeOptionsAsMultiple; }