Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,65 @@ package org.apache.royale.html.util
if (data is String) return "" + data;
if(!data) return "";

if (obj["labelField"]) return "" + data[obj["labelField"]];
if (obj["dataField"]) return "" + data[obj["dataField"]];
var label:String = data["label"];
if(label != null){
return label;
var labelField:String;
var value:String;

if (obj["labelField"])
{
labelField = obj["labelField"];
value = "" + data[labelField];
COMPILE::JS
{
// support XML data in JS (in libraries without access to XML class)
if (value == "undefined")
{
if (labelField.charAt(0) == '@')
{
var fal:* = data["attribute"];
if (fal && typeof(fal) === "function")
value = fal.call(data, labelField);
}
else
{
var fcl:* = data["child"];
if (fcl && typeof(fcl) === "function")
value = fcl.call(data, labelField).toString();
}
}
}
return value;
}
return "" + data;

if (obj["dataField"])
{
labelField = obj["dataField"];
value = "" + data[labelField];
COMPILE::JS
{
// support XML data in JS (in libraries without access to XML class)
if (value == "undefined")
{
if (labelField.charAt(0) == '@')
{
var fad:* = data["attribute"];
if (fad && typeof(fad) === "function")
value = fad.call(data, labelField);
}
else
{
var fcd:* = data["child"];
if (fcd && typeof(fcd) === "function")
value = fcd.call(data, labelField).toString();
}
}
}
return value;
}

value = data["label"];
if (value != null)
return value;

return "" + data;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -512,11 +512,36 @@ package org.apache.royale.utils
return sorted;
}

private static function getValue(obj:Object, n:String):*
{
var value:* = obj[n];
COMPILE::JS
{
// support XML data in JS (in libraries without access to XML class)
if (value == null)
{
if (n.charAt(0) == '@')
{
var fa:* = obj["attribute"];
if (fa && typeof(fa) === "function")
value = fa.call(obj, n);
}
else
{
var fc:* = obj["child"];
if (fc && typeof(fc) === "function")
value = fc.call(obj, n).toString();
}
}
}
return value;
}

private static function compareStringCaseinsensitive(a:Object, b:Object):int
{
for each(var n:String in sortNames)
{
var v:int = (a[n] || zeroStr).toString().toLowerCase().localeCompare((b[n] || zeroStr).toString().toLowerCase());
var v:int = (getValue(a, n) || zeroStr).toString().toLowerCase().localeCompare((getValue(b, n) || zeroStr).toString().toLowerCase());
if (v != 0)
{
return v * muler;
Expand All @@ -529,7 +554,7 @@ package org.apache.royale.utils
{
for each(var n:String in sortNames)
{
var v:int = (a[n] || zeroStr).toString().localeCompare((b[n] || zeroStr).toString());
var v:int = (getValue(a, n) || zeroStr).toString().localeCompare((getValue(b, n) || zeroStr).toString());
if (v != 0)
{
return v * muler;
Expand All @@ -542,10 +567,10 @@ package org.apache.royale.utils
{
for each(var n:String in sortNames)
{
if (Number(a[n]) > Number(b[n]))
if (Number(getValue(a, n)) > Number(getValue(b, n)))
{
return muler;
} else if (Number(a[n]) < Number(b[n]))
} else if (Number(getValue(a, n)) < Number(getValue(b, n)))
{
return -muler;
}
Expand Down