/** Add a button for each multi value property except those in whose names 
	 * are in ::getExcludedMultiValuePropButtonKeys.
	 * Each button will hold a javascript from ::getMultiValuePropertyButtonScript, 
	 * whose default implementation is to retrieve an (MtoN)PropertyPage for the property.
	 * @param array $buttons to add the butons to.
	 */
	function addMultiValuePropertyButtons(&$buttons) {
		$excludedPropKeys = $this->getExcludedMultiValuePropButtonKeys();
		$obj = $this->getRequestedObject();
		$ghost = !$obj || !$obj->get('id');
		$sm = $this->controller->getSecurityManager();
		$formTexts = $this->getFormTexts();
		
		$clsDes = PntClassDescriptor::getInstance($this->getType());
		$multiProps = $clsDes->getMultiValuePropertyDescriptors();
		forEach(array_keys($multiProps) as $key)
			if (!isSet($excludedPropKeys[$key]) && $multiProps[$key]->getVisible() ) {
				$edit = isSet($formTexts[$key]);
				if ($edit) $edit = !$sm->checkEditProperty($obj, $multiProps[$key]);
				if (!$sm->checkViewProperty($obj, $multiProps[$key]))
					$buttons[]=$this->getButton(
						ucfirst($multiProps[$key]->getLabel()),
						$this->getMultiValuePropertyButtonScript($key, $edit),
						$ghost
					);
			}
	}