uidesigner/com.nokia.sdt.series60.componentlibrary/components/transient/MultiLineDataQuery.component
changeset 0 fb279309251b
equal deleted inserted replaced
-1:000000000000 0:fb279309251b
       
     1 <?xml version="1.0" encoding="UTF-8"?>
       
     2 <!-- Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -->
       
     3 <!-- All rights reserved. -->
       
     4 <!-- This component and the accompanying materials are made available -->
       
     5 <!-- under the terms of the License "Eclipse Public License v1.0" -->
       
     6 <!-- which accompanies this distribution, and is available -->
       
     7 <!-- at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     8 
       
     9 <componentDefinition xmlns="http://www.nokia.com/sdt/emf/component" 
       
    10 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       
    11 	
       
    12 	<enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.MultiLineDataQuery.type1">
       
    13 		<enumElement value="EMultiDataFirstEdwin"/>
       
    14 		<enumElement value="EMultiDataFirstSecEd"/>
       
    15 		<enumElement value="EMultiDataFirstTimeEd"/>
       
    16 		<enumElement value="EMultiDataFirstDateEd"/>
       
    17 		<!-- <enumElement value="EMultiDataFirstDurEd"/> 
       
    18 			Duration can't be used as the first type due to restrictions in C++ class -->
       
    19 		<enumElement value="EMultiDataFirstPhoneEd"/>
       
    20 		<enumElement value="EMultiDataFirstNumEd"/>
       
    21 		<enumElement value="EMultiDataFirstPinEd"/>
       
    22 		<enumElement value="EMultiDataFirstIpEd"/>
       
    23 	</enumPropertyDeclaration>
       
    24 
       
    25 	<enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.MultiLineDataQuery.type2">
       
    26 		<enumElement value="EMultiDataSecondEdwin"/>
       
    27 		<enumElement value="EMultiDataSecondSecEd"/>
       
    28 		<enumElement value="EMultiDataSecondTimeEd"/>
       
    29 		<enumElement value="EMultiDataSecondDateEd"/>
       
    30 		<enumElement value="EMultiDataSecondDurEd"/>
       
    31 		<enumElement value="EMultiDataSecondPhoneEd"/>
       
    32 		<enumElement value="EMultiDataSecondNumEd"/>
       
    33 		<enumElement value="EMultiDataSecondPinEd"/>
       
    34 		<enumElement value="EMultiDataSecondIpEd"/>
       
    35 	</enumPropertyDeclaration>
       
    36 
       
    37 	<component baseComponent="com.nokia.sdt.series60.NonLayoutBase" 
       
    38 		friendlyName="%friendlyName" 
       
    39 		qualifiedName="com.nokia.sdt.series60.MultiLineDataQuery" 
       
    40 		category="NotesDialogs"
       
    41 		instanceNameRoot="multiQuery"
       
    42 		version="1.0">
       
    43 		<documentation>
       
    44 			<information>%information</information>
       
    45 		</documentation>
       
    46 		<symbian sdkName="com.nokia.series60" minSDKVersion="2.0" 
       
    47 			className="CAknMultiLineDataQueryDialog" classHelpTopic=""
       
    48 			resourceType="AVKON_DATA_QUERY" resourceHelpTopic="" />
       
    49 		<designerImages smallIconFile="MultiLineDataQuery_sm.png" 
       
    50 			largeIconFile="MultiLineDataQuery.png"/>
       
    51 		<attributes>
       
    52 			<attribute key="is-transient-object">true</attribute>
       
    53 			<attribute key="is-non-resizable-or-moveable-layout-object">true</attribute>
       
    54 			<attribute key="is-layout-container">true</attribute>
       
    55 			<attribute key="layout-type">ordered</attribute>
       
    56 		</attributes>
       
    57 		<properties>
       
    58 			<compoundProperty category="Hidden" name="location" type="com.nokia.sdt.series60.locationProperty"
       
    59 				editorClass="com.nokia.sdt.symbian.ui.editors.ReadOnlySummaryEditorFactory"/>
       
    60 			<compoundProperty category="Hidden" name="size" type="com.nokia.sdt.series60.sizeProperty"
       
    61 				editorClass="com.nokia.sdt.symbian.ui.editors.ReadOnlySummaryEditorFactory"/>
       
    62 			<property category="Data" name="text" type="localizedString" default="Enter data:"
       
    63 				descriptionKey="textDescription"
       
    64 				editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
       
    65 			<property category="Data" name="text2" type="localizedString" default="Enter data:"
       
    66 				descriptionKey="text2Description"
       
    67 				editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
       
    68 			<enumProperty category="Behavior" name="type" type="com.nokia.sdt.series60.MultiLineDataQuery.type1" 
       
    69 				default="EMultiDataFirstEdwin"
       
    70 				editorClass="com.nokia.sdt.series60.component.MultiLineQueryTypeEditorFactory" 
       
    71 				descriptionKey="typeDescription" />
       
    72 			<enumProperty category="Behavior" name="type2" type="com.nokia.sdt.series60.MultiLineDataQuery.type2" 
       
    73 				default="EMultiDataSecondEdwin"
       
    74 				editorClass="com.nokia.sdt.series60.component.MultiLineQueryTypeEditorFactory" 
       
    75 				descriptionKey="type2Description" />
       
    76 			<enumProperty category="Data" name="tone" type="com.nokia.sdt.series60.Query.tone" 
       
    77 				descriptionKey="toneDescription" />
       
    78 		</properties>
       
    79 		<implementations>
       
    80 			<implementation>
       
    81 				<interface id="com.nokia.sdt.datamodel.adapter.IVisualAppearance"/>
       
    82 				<interface id="com.nokia.sdt.datamodel.adapter.IDirectLabelEdit"/>
       
    83 				<interface id="com.nokia.sdt.datamodel.adapter.ILayout"/>
       
    84 				<code class="com.nokia.sdt.series60.component.DataQueryVisualAndLayoutImplFactory"/>
       
    85 			</implementation>
       
    86 			<implementation>
       
    87 				<interface id="com.nokia.sdt.datamodel.adapter.IQueryContainment"/>
       
    88 				<interface id="com.nokia.sdt.datamodel.adapter.IComponentInstancePropertyListener"/>
       
    89 				<script file="MultiLineDataQuery.js" prototype="MultiLineDataQueryContainment"/>
       
    90 			</implementation>
       
    91 			<implementation>
       
    92 				<interface id="com.nokia.sdt.datamodel.adapter.IInitializer"/>
       
    93 				<interface id="com.nokia.sdt.datamodel.adapter.ISetValueCommandExtender"/>
       
    94 				<code class="com.nokia.sdt.series60.component.MultiLineDataQueryCodeImplFactory"/>
       
    95 			</implementation>
       
    96 		</implementations>
       
    97 		
       
    98 	<sourceMapping>
       
    99 		<mapResource struct="DIALOG" headers="avkon.rh avkon.rsg eikon.rh">
       
   100 			<mapBitmaskMember property="." member="flags" includedProperties="" >
       
   101 				<!-- initial blank entry forces bits on -->
       
   102 				<mapBitmaskValue properties="" value="EAknGeneralQueryFlags" />
       
   103 			</mapBitmaskMember>
       
   104 			<mapFixedMember member="buttons" value="R_AVKON_SOFTKEYS_OK_CANCEL" />			
       
   105 	        <mapArrayMember property="." member="items">
       
   106 				<mapResourceElement struct="DLG_LINE" headers="avkon.rh" instanceIdentifyingMember="id">
       
   107 					<select property="#(arrayIndex)">
       
   108 						<choice value="0">
       
   109 							<select property="[parent].type">
       
   110 								<choice value="EMultiDataFirstIpEd">
       
   111 									<mapFixedMember member="type" value="EAknExtCtMultilineQuery" />
       
   112 								</choice>
       
   113 								<choice>
       
   114 									<mapFixedMember member="type" value="EAknCtMultilineQuery" />
       
   115 								</choice>
       
   116 							</select>
       
   117 						</choice>
       
   118 						<choice value="1">
       
   119 							<select property="[parent].type2">
       
   120 								<choice value="EMultiDataSecondIpEd">
       
   121 									<mapFixedMember member="type" value="EAknExtCtMultilineQuery" />
       
   122 								</choice>
       
   123 								<choice>
       
   124 									<mapFixedMember member="type" value="EAknCtMultilineQuery" />
       
   125 								</choice>
       
   126 							</select>
       
   127 						</choice>
       
   128 					</select>
       
   129 					<mapEnumMember property="." member="id" uniqueValue="*"
       
   130 						nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_DIALOG_LINE_ID" />
       
   131 		        	<mapResourceMember property="." member="control" id="queryControl" 
       
   132 		        									struct="AVKON_DATA_QUERY" headers="avkon.rh">
       
   133 						<select property="#(arrayIndex)">
       
   134 							<choice value="0">
       
   135 								<mapEnumMember property="[parent].type" member="layout"/>
       
   136 								<mapSimpleMember property="[parent].text" member="label"/>
       
   137 							</choice>
       
   138 							<choice value="1">
       
   139 								<mapEnumMember property="[parent].type2" member="layout"/>
       
   140 								<mapSimpleMember property="[parent].text2" member="label"/>
       
   141 							</choice>
       
   142 						</select>
       
   143 						<mapResourceMember property="." member="control" id="control" />
       
   144 			        </mapResourceMember>
       
   145 		        </mapResourceElement>
       
   146 	        </mapArrayMember>
       
   147 		</mapResource>
       
   148 	</sourceMapping>
       
   149 		
       
   150 		<sourceGen>
       
   151 
       
   152 			<inline scope="prototype">
       
   153 include("popupDialogLibrary.js");
       
   154 ${jsObject}.prototype.getStrings = function(instance) {
       
   155 	if (instance.componentId == "com.nokia.sdt.series60.MultiIpDataQuery")
       
   156 		this.dialogClassName = "CAknMultiLineIpQueryDialog"; 
       
   157 	else
       
   158 		this.dialogClassName = "CAknMultiLineDataQueryDialog"; 
       
   159 	this.methodType1 = getChildAttribute(instance, 0, "data-model-cpp-type");
       
   160 	this.methodType2 = getChildAttribute(instance, 1, "data-model-cpp-type");
       
   161 }
       
   162 			</inline>
       
   163 			
       
   164 			<inline>
       
   165 this.getStrings(instance);			
       
   166 			</inline>
       
   167 			
       
   168 		<templateGroup id="MULTI_LINE_QUERY">
       
   169 
       
   170 			<template id="DeclareMethod" phase="ClassMethods"><![CDATA[
       
   171 static TInt Run${instanceName$title}L( 
       
   172 		${this.methodType1}& aData1, 
       
   173 		${this.methodType2}& aData2, 
       
   174 		TBool aUseDefaults = ETrue, 
       
   175 		const TDesC* aOverridePrompt1 = NULL, 
       
   176 		const TDesC* aOverridePrompt2 = NULL );
       
   177 ]]>			</template>
       
   178 
       
   179 			<defineLocation id="METHOD_LOCATION" baseLocation="MAIN_FILE" 
       
   180 				owned="true"
       
   181 				location="function(${className}::Run${instanceName$title}L(...))">
       
   182 				<template><![CDATA[
       
   183 /**
       
   184  * Show the popup dialog for ${instanceName}
       
   185  * @param aData1 in-out ${this.methodType1} data for first editor
       
   186  * @param aData2 in-out ${this.methodType2} data for second editor
       
   187  * @param aUseDefaults TBool uses designer default editor data if ETrue
       
   188  * @param aOverridePrompt1 optional override first prompt text
       
   189  * @param aOverridePrompt2 optional override second prompt text
       
   190  * @return EAknSoftkeyOk (left soft key id) or 0
       
   191  */
       
   192 TInt ${className}::Run${instanceName$title}L( 
       
   193 		${this.methodType1}& aData1, 
       
   194 		${this.methodType2}& aData2, 
       
   195 		TBool aUseDefaults, 
       
   196 		const TDesC* aOverridePrompt1, 
       
   197 		const TDesC* aOverridePrompt2 )
       
   198 	{
       
   199 	}
       
   200 ]]>				</template>
       
   201 			</defineLocation>
       
   202 			
       
   203 			<template id="DefineMethod" location="METHOD_LOCATION"><![CDATA[
       
   204 if ( aUseDefaults )
       
   205 	{
       
   206 <%	if (children.length < 2) {
       
   207 		error(formatString(lookupString("invalidChildrenState"), instanceName, children.length));
       
   208 	}
       
   209 	else {
       
   210 		var setDataContribs = Engine.generateChildContributions(instance.children[0], "AknDataQuerySetData1");
       
   211 		// resolve the contents to this method
       
   212 		Engine.assignLocationsForPhase(setDataContribs, "SetData", "METHOD_LOCATION")
       
   213 		contribs.addAll(setDataContribs);
       
   214 		setDataContribs = Engine.generateChildContributions(instance.children[1], "AknDataQuerySetData2");
       
   215 		// resolve the contents to this method
       
   216 		Engine.assignLocationsForPhase(setDataContribs, "SetData", "METHOD_LOCATION")
       
   217 		contribs.addAll(setDataContribs);
       
   218 	}
       
   219 %>	}
       
   220 <% // EFixedPointLayout case added because CAknFixedPointQueryDialog::NewL does not have default argument
       
   221 if (properties.tone != "ENoTone") { %>
       
   222 ${this.dialogClassName}* queryDialog = ${this.dialogClassName}::NewL( 
       
   223 		aData1, 
       
   224 		aData2, 
       
   225 		CAknQueryDialog::${properties.tone} );	
       
   226 <% } else { %>			
       
   227 ${this.dialogClassName}* queryDialog = ${this.dialogClassName}::NewL( 
       
   228 		aData1, 
       
   229 		aData2 );
       
   230 <% } %>
       
   231 // To override the prompts, both must be non-NULL
       
   232 if ( aOverridePrompt1 != NULL && aOverridePrompt2 != NULL )
       
   233 	{
       
   234 	CleanupStack::PushL( queryDialog );
       
   235 	queryDialog->SetPromptL( *aOverridePrompt1, *aOverridePrompt2 );
       
   236 	CleanupStack::Pop(); // queryDialog
       
   237 	}
       
   238 
       
   239 return queryDialog->ExecuteLD( ${resourceName$upper} );
       
   240 ]]>			</template>
       
   241 
       
   242 			<template id="AddIncludes" phase="MainSystemIncludes"><![CDATA[
       
   243 #include <aknquerydialog.h>
       
   244 ]]>			</template>
       
   245 	
       
   246 		</templateGroup>
       
   247 	
       
   248 	<inline>
       
   249 		if (Engine.formMatches(form, [""]))
       
   250 			contribs.addAll(Engine.generateChildContributions("AknDataQuery"))
       
   251 	</inline>	
       
   252 	
       
   253 		</sourceGen>
       
   254 	</component>
       
   255 	
       
   256 </componentDefinition>