blob: 1c212a8d04d22fe1f0f8bd9e2e91ad69a106216d [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true"
width="100%"
implements="org.apache.flex.runtimelocale.view.IInjectableView"
name="localeItemView">
<s:layout>
<s:HorizontalLayout verticalAlign="top"
gap="20"/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.CloseEvent;
import mx.events.FlexEvent;
import org.apache.flex.runtimelocale.event.LocaleItemEvent;
import org.apache.flex.runtimelocale.model.ApplicationModel;
import org.apache.flex.runtimelocale.model.locale.LocaleItemDataVO;
private var _applicationModel:ApplicationModel;
private var _localeItem:LocaleItemDataVO;
[Bindable(event="applicationModelChanged")]
public function get applicationModel():ApplicationModel {
return _applicationModel;
}
public function set applicationModel(value:ApplicationModel):void {
if (_applicationModel !== value) {
if (_applicationModel) {
_applicationModel.removeEventListener("referenceLocaleChanged", handleReferenceLocaleChanged);
}
_applicationModel = value;
if (_applicationModel) {
_applicationModel.addEventListener("referenceLocaleChanged", handleReferenceLocaleChanged);
}
setRerenceLocale();
dispatchEvent(new Event("applicationModelChanged"));
}
}
override public function set data(value:Object):void {
super.data = value;
localeItem = value as LocaleItemDataVO;
}
public function get localeItem():LocaleItemDataVO {
return _localeItem;
}
public function set localeItem(value:LocaleItemDataVO):void {
if (_localeItem !== value) {
_localeItem = value;
if (_localeItem) {
keyLabel.text = _localeItem.key;
keyLabel.toolTip = _localeItem.key;
itemValue.text = _localeItem.value;
setRerenceLocale();
}
}
}
protected function deleteKeyButton_clearHandler(event:Event):void {
Alert.show("Are you sure you want to remove " + localeItem.key + "?", "Please confirm", Alert.YES | Alert.NO, this, function(closeEvent:CloseEvent):void {
if (closeEvent.detail == Alert.YES) {
dispatchEvent(new LocaleItemEvent(LocaleItemEvent.REMOVE_LOCALE_ITEM_REQUEST, localeItem.key));
}
});
}
private function handleReferenceLocaleChanged(event:Event):void {
setRerenceLocale();
}
private function setRerenceLocale():void {
if ((applicationModel) && (applicationModel.referenceLocale) && (localeItem)) {
var item:LocaleItemDataVO = applicationModel.referenceLocale.getItemByKey(localeItem.key);
itemReference.text = (item) ? item.value : "";
}
}
private function textarea1_valueCommitHandler(event:FlexEvent):void {
if ((localeItem) && (itemValue)) {
localeItem.value = itemValue.text;
}
}
]]>
</fx:Script>
<s:VGroup width="225">
<s:Button id="deleteKeyButton"
width="30"
height="30"
label="X"
toolTip="Remove this translation"
click="deleteKeyButton_clearHandler(event)"/>
<s:Label id="keyLabel"
fontWeight="bold"/>
</s:VGroup>
<s:TextArea id="itemValue"
width="400"
valueCommit="textarea1_valueCommitHandler(event)"/>
<s:TextArea id="itemReference"
width="400"
editable="false"
selectable="true"/>
</s:ItemRenderer>