Index: lams_flash/src/common/flex/org/lamsfoundation/lams/common/dictionary/XMLDictionary.as =================================================================== diff -u -r47e42efa633b929f5732b794b4e308c76de2d0de -r20caa3eb4561d03835bc6a8e0380b02467ebbd73 --- lams_flash/src/common/flex/org/lamsfoundation/lams/common/dictionary/XMLDictionary.as (.../XMLDictionary.as) (revision 47e42efa633b929f5732b794b4e308c76de2d0de) +++ lams_flash/src/common/flex/org/lamsfoundation/lams/common/dictionary/XMLDictionary.as (.../XMLDictionary.as) (revision 20caa3eb4561d03835bc6a8e0380b02467ebbd73) @@ -36,16 +36,19 @@ return null; } - public function getLabelAndReplace(s:String, a:Array):String{ - if(!isEmpty()){ + public function getLabelAndReplace(s:String, a:Array, useKey:Boolean):String{ + if(!isEmpty()) { var label:String = getLabel(s); for(var i:int = 0; i < a.length; i++){ - label = label.replace("{" + String(i) + "}", getLabel(a[i])); + var replaceStr:String = (useKey) ? getLabel(a[i]) : a[i]; + label = label.replace("{" + String(i) + "}", replaceStr); } + + return label; } - return label; + return null; } public function isEmpty():Boolean{ Index: lams_flash/src/common/flex/org/lamsfoundation/lams/common/dictionary/XMLDictionaryRegistry.as =================================================================== diff -u --- lams_flash/src/common/flex/org/lamsfoundation/lams/common/dictionary/XMLDictionaryRegistry.as (revision 0) +++ lams_flash/src/common/flex/org/lamsfoundation/lams/common/dictionary/XMLDictionaryRegistry.as (revision 20caa3eb4561d03835bc6a8e0380b02467ebbd73) @@ -0,0 +1,57 @@ +package org.lamsfoundation.lams.common.dictionary +{ + import flash.events.Event; + import flash.events.EventDispatcher; + + public class XMLDictionaryRegistry extends EventDispatcher + { + public static const UPDATE_LABELS:String = "updatedLabels"; + public static const UPDATE_LABELS_REPLACE:String = "updateLabelsReplace"; + public static const UPDATE_LABELS_CONCATENTATE:String = "updateLabelsConcatenate"; + public static const UPDATE_LABELS_INSERT:String = "updateLabelsInsert"; + + private var _xmlDictionary:XMLDictionary; + private var keyRegistry:Array; + + public function XMLDictionaryRegistry(value:XML) + { + xml = value; + } + + public function set xml(value:XML):void { + _xmlDictionary = new XMLDictionary(value); + + this.dispatchEvent(new Event("updatedLabels")); + this.dispatchEvent(new Event("updatedLabelsReplace")); + this.dispatchEvent(new Event("updatedLabelsConcatentate")); + this.dispatchEvent(new Event("updatedLabelsInsert")); + } + + [Bindable (event="updatedLabels")] + public function getLabel(key:String):String { + return _xmlDictionary.getLabel(key); + } + + [Bindable (event="updatedLabelsReplace")] + public function getLabelAndReplace(key:String, values:Array):String { + return _xmlDictionary.getLabelAndReplace(key, values, true); + } + + [Bindable (event="updatedLabelsConcatentate")] + public function getLabelAndConcatenate(key:String, values:Array):String { + return _xmlDictionary.getLabelAndConcatenate(key, values); + } + + [Bindable (event="updatedLabelsInsert")] + public function getLabelAndInsert(key:String, values:Array):String { + return _xmlDictionary.getLabelAndReplace(key, values, false); + } + + public function dispatchEvents():void { + this.dispatchEvent(new Event("updatedLabels")); + this.dispatchEvent(new Event("updatedLabelsReplace")); + this.dispatchEvent(new Event("updatedLabelsConcatentate")); + this.dispatchEvent(new Event("updatedLabelsInsert")); + } + } +} \ No newline at end of file