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