uidesigner/com.nokia.carbide.cpp.uiq.components/components/controls/ControlBase/LayoutControlBase.component
changeset 0 fb279309251b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.carbide.cpp.uiq.components/components/controls/ControlBase/LayoutControlBase.component	Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,90 @@
+<?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>