Convert Carbide 2.x source mappings to 3.x mappings
/** 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: **/// This file has routines which initialize component implementations// according to patterns.include ("messageLibrary.js")implLibraryStrings = getLocalizedStrings("implLibrary");/** * Set up direct label editing implementation for a component with * one editable label * @param prototype the impl prototype to update * @param property the name of the edited property * @param areafunction a function, taking an instance and laf, which returns the * editable area of the label (or null). If null, the default behavior is * to use the entire rendered area. * @param fontfunction a function, taking an instance and laf, which returns the * IFont to edit with (or null). If null, the default behavior is to return * null, indicating a default system font. */function setupCommonDirectLabelEditing(prototype, property, areafunction, fontfunction) { prototype.getPropertyPaths = function(instance) { return [ property ]; } prototype.getLabelBounds = function(instance, propertyPath, laf) { if (areafunction) return areafunction(instance, laf); var size = instance.properties.size; return new Rectangle(0, 0, size.width, size.height); } prototype.getLabelFont = function(instance, propertyPath, laf) { if (fontfunction) return fontfunction(instance, laf) return null; }}// Set up direct image editing implementation for a component// with one image property. //// @param prototype the impl prototype to update// @param property the name of the edited property// @param areafunction a function, taking an instance, laf, and propertyPath, or null.// If not null, the function which returns a rectangle for the clickable area // of the rendered area of the component to respond to.// If null, the default behavior is to use the entire rendered area.function setupCommonDirectImageEditing(prototype, property, areafunction, sizefunction, isScalingFunction) { // implementation for IDirectImageEdit prototype.getImagePropertyPaths = function(instance) { return [ property ]; } // implementation for IDirectImageEdit prototype.getImageBounds = function(instance, propertyPath, laf) { //println( "image: " + instance.properties[propertyPath].bmpfile + "/" // +instance.properties[propertyPath].bmpid + "/" // +instance.properties[propertyPath].bmpmask ); if (areafunction) return areafunction(instance, laf, property); else { var size = instance.properties.size; return new Rectangle(0, 0, size.width, size.height); } }}/** Create a simple IModelMessage that refers to an error on a property. */function createSimpleModelError(instance, propertyId, messageFormat, argList) { var modelMessage = newModelMessage(IStatus.ERROR, formatString(messageFormat, argList), instance, propertyId, null); return modelMessage;}/** * Set up common IComponentValidator script for an editor that has * minimum, maximum, and current value properties. * @param prototype to modify * @param noun localized string for the unit being edited (i.e. "duration") * @param nouns localized string for the plural unit being edited (i.e. "durations") * @param minProperty, maxProperty, valueProperty properties to check * @param converter a function taking a property value used to convert a property to a comparable value; * if null, the property is treated as an integer */function setupCommonRangeCheckingValidation(prototype, noun, nouns, minProperty, maxProperty, valueProperty, converter) { if (converter == null) converter = function(value) { return value; }; // note that laf will be null if a display model was not created prototype.validate = function(instance, laf) { var properties = instance.properties; var min = converter(properties[minProperty]); var max = converter(properties[maxProperty]); var value = converter(properties[valueProperty]); var messages = new java.util.ArrayList(); if (min > max) { messages.add(createSimpleModelError(instance, minProperty, implLibraryStrings.getString("minMaxValueError"), [ noun, nouns, instance.name, min, max ])); } if (value < min || value > max) { messages.add(createSimpleModelError(instance, valueProperty, implLibraryStrings.getString("valueRangeError"), [ noun, nouns, instance.name, min, max, value ])); } return messages; } // note that laf will be null if a display model was not created prototype.queryPropertyChange = function(instance, propertyPath, newVal, laf) { var properties = instance.properties; var message = null; newValue = converter(newVal); if (propertyPath == minProperty) { if (newValue > converter(properties[valueProperty]) || newValue >= converter(properties[maxProperty])) { message = formatString(implLibraryStrings.getString("minValueConstraint"), noun, nouns ); } } else if (propertyPath == valueProperty) { if (newValue < converter(properties[minProperty]) || newValue > converter(properties[maxProperty])) { message = formatString(implLibraryStrings.getString("valueConstraint"), noun, nouns ); } } else if (propertyPath == maxProperty) { if (newValue <= converter(properties[minProperty]) || newValue < converter(properties[valueProperty])) message = formatString(implLibraryStrings.getString("maxValueConstraint"), noun, nouns ); } return message; }}