uidesigner/com.nokia.sdt.series60.componentlibrary/components/controls/CAknPopupFieldText.js
changeset 2 d760517a8095
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/controls/CAknPopupFieldText.js	Tue Mar 24 22:20:21 2009 -0500
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2006 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+include("../embeddedControlImplLibrary.js")
+include("editors/editorLibrary.js")
+
+function CAknPopupFieldText() {
+}
+
+CAknPopupFieldText.prototype.getFlags = function(instance, laf) {
+	return Font.ALIGN_LEFT; 
+}
+
+CAknPopupFieldText.prototype.getFont = function(instance, laf) {
+	var fontName = instance.properties.font;
+	return laf.getFont(fontName);
+}
+
+CAknPopupFieldText.prototype.getDisplayText = function(instance) {
+	var text = "";
+	var items = instance.properties.items;
+	if ((items != null) && (items.length > 0)) {
+		var active = instance.properties.active;
+		if (items.length > active) {
+			text = items[active];
+			if (text == null)
+				text = "empty";
+		}
+		else {
+			text = instance.properties.invalidText;
+			if (text == "")
+				text = "(invalid)";
+		}
+	}
+	else {
+		var emptyText = instance.properties.emptyText;
+		if (emptyText != null)
+			text = emptyText;
+	}
+
+	return text;
+}
+
+CAknPopupFieldText.prototype.getDisplayColor = function(instance, laf) {
+	var text = "";
+	var items = instance.properties.items;
+	if ((items != null) && (items.length > 0)) {
+		var active = instance.properties.active;
+		if (active >= items.length) {
+			return laf.getColor("EEikColorControlDimmedText");
+		}
+	}
+	return null;
+}
+
+CAknPopupFieldText.prototype.getMaxLength = function(instance) {
+	var items = instance.properties.items;
+	if ((items != null) && (items.length > 0)) {
+		var active = instance.properties.active;
+		if (items.length > active) {
+			return instance.properties.maxLength;
+		}
+	}
+	return 0;
+}
+
+
+setupEditorRendering(CAknPopupFieldText.prototype);
+
+// no direct label editing, just form prompt editing
+setupCommonEmbeddedDirectLabelEditing(CAknPopupFieldText.prototype,
+	null,
+	null, // areafunction
+	null
+);
+
+setupCommonEmbeddedDirectImageEditing(CAknPopupFieldText.prototype);
+setupEmbeddedImagePropertyInfo(CAknPopupFieldText.prototype);
+
+//////////////////////
+
+		// note that laf will be null if a display model was not created
+CAknPopupFieldText.prototype.validate = function(instance, laf) {
+	var properties = instance.properties;
+
+	var messages = null;
+	if (properties.items.length == 0) {
+		messages = new java.util.ArrayList();	
+		messages.add(createSimpleModelError(instance, 
+			"items", 
+			lookupString("ErrorEmptyList"), 
+				[instance.name]));
+	} 
+	return messages;
+}
+
+	// note that laf will be null if a display model was not created
+CAknPopupFieldText.prototype.queryPropertyChange = function(instance, propertyPath,
+				newVal, laf) {
+				
+	var properties = instance.properties;
+	var message = null;
+
+	// Don't toss away any changes at this point; otherwise,
+	// the user will endure a dialog and have it all thrown away.
+	// Better to let them go back and re-edit.
+
+	return message;		
+}
+
+CAknPopupFieldText.prototype.initialize = function(instance, isConfigured) {
+	if (isConfigured) return;
+	// make at least one text entry
+	instance.properties.items[0] = lookupString("InitialItemText");
+}