diff -r 000000000000 -r d760517a8095 uidesigner/com.nokia.sdt.series60.componentlibrary/components/controls/CAknPopupFieldText.js --- /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"); +}