uidesigner/com.nokia.carbide.cpp.uiq.components/components/controls/ControlBase/LayoutControlBase.component
author timkelly
Thu, 10 Jun 2010 11:33:29 -0500
branchC3_BUILDER_WORK
changeset 1453 bd6bc4d000fd
parent 0 fb279309251b
permissions -rw-r--r--
clean up SDK/Config tree by removing SDK Id from display (it's redundant) and also adding text that SDK location does not exist so users can see the config tree and know it won't work (not have it be hidden and users wonder why it's not there)

<?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>