uidesigner/com.nokia.carbide.cpp.uiq.components/components/controls/ControlBase/LayoutControlBase.component
author fturovic <frank.turovich@nokia.com>
Fri, 30 Oct 2009 12:28:58 -0500
branchRCL_2_2
changeset 557 4b531168dbc4
parent 0 fb279309251b
permissions -rw-r--r--
revised update carbide page and images to cover changes in P2 updating

<?xml version="1.0" encoding="UTF-8"?>
<!-- START_USECASES: CU10 END_USECASES -->
<!DOCTYPE componentDefinition [
<!ENTITY common_events SYSTEM "ControlBase_events.inc">
<!ENTITY ControlEventSourcegen SYSTEM "../../ControlEventSourcegen.inc">
<!ENTITY ListBoxEventSourcegen SYSTEM "../../ListBoxEventSourcegen.inc">
] >
<!-- Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -->
<!-- All rights reserved. -->
<!-- This component and the accompanying materials are made available -->
<!-- under the terms of the License "Eclipse Public License v1.0" -->
<!-- which accompanies this distribution, and is available -->
<!-- at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<componentDefinition xmlns="http://www.nokia.com/sdt/emf/component"
					xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
					
	<!-- This component is the abstract base component for
	     UIQ layout reference components
	 -->					
	<component 
			qualifiedName="com.nokia.carbide.uiq.LayoutControlBase"
			baseComponent="com.nokia.carbide.uiq.ControlBase"
			version="1.0"
			abstract="true">
									
		<symbian sdkName="com.uiq" minSDKVersion="3.0"/>
			
		<attributes>
			<attribute key="not-in-toolbox">true</attribute>
		</attributes>
		
		<properties>
			<componentReferenceProperty name="control" scope="model" category="%category.design" 
				constraint="com.nokia.carbide.uiq.ControlCollectionItemBase"
				readOnly="true" promoteReferenceProperties="true"
				displayName="%control"
				descriptionKey="controlDescription"/>
			<!--TODO: temporary until the layout manager is implemented and integrated :
				see DisplayModelUIQ#createLayoutObject and Container -->
			<compoundProperty category="Hidden" name="location" displayName="%location" 
				type="com.nokia.carbide.uiq.locationProperty"
				editorClass="com.nokia.sdt.symbian.ui.editors.ReadOnlySummaryEditorFactory"
				descriptionKey="locationDescription" />
			<compoundProperty category="Hidden" name="size" displayName="%size"
				type="com.nokia.carbide.uiq.sizeProperty"
				editorClass="com.nokia.sdt.symbian.ui.editors.ReadOnlySummaryEditorFactory"
				descriptionKey="sizeDescription"/>
		</properties>
		
		<events defaultEventName="EEventStateChanged">
			&common_events;
		</events>
		
		<implementations>
			<implementation>
				<interface id="com.nokia.sdt.datamodel.adapter.IPropertyExtenders"/>
				<script file="LayoutControlBase_propertyExtenders.js" prototype="LayoutControlBase"/>
			</implementation>
			<implementation>
				<interface id="com.nokia.sdt.datamodel.adapter.IClipboardCommandExtender"/>
				<code class="com.nokia.carbide.cpp.uiq.components.layoutComponents.ClipboardCommandExtenderFactory"/>
			</implementation>
		</implementations>
		
		<sourceGen>
			<templateGroup id="GenerateControlSourceGen">
			<inline scope="prototype">
${jsObject}.prototype.getInstanceMemberName = function(instance) {
	return "i" + TextUtils.titleCase(instance.properties.control);
}			</inline>
				<inline forms="InstanceGen" id="0">
		var targetInstance = lookupInstanceByName(instance.properties.control);
		if (targetInstance) {
			var targetContribs = Engine.generateRedirectedInstanceContributions(
					targetInstance,
					form,
					instance);		
			contribs.addAll(targetContribs);		
		}
				</inline>
			</templateGroup>
			
			&ControlEventSourcegen;
			&ListBoxEventSourcegen;
			
		</sourceGen>

	</component>

</componentDefinition>