dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
171 lines (149 loc) • 7.62 kB
HTML
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>TabBar Bidi Tests</title>
<script type="text/javascript" src="../../../deviceTheme.js"></script>
<script type="text/javascript" src="../../../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true, has: {'dojo-bidi': true }"></script>
<script language="JavaScript" type="text/javascript">
require([
"dojo/sniff",
"dojo/_base/array",
"dojo/dom-construct", // dojo.place
"dojo/_base/window",
"dojo/ready", // dojo.ready
"dijit/registry", // dijit.byId
"doh/runner", //doh functions
"dojox/mobile/bidi/common",
"dojox/mobile/TabBar",
"dojox/mobile/TabBarButton",
"dojox/mobile", // This is a mobile app.
"dojox/mobile/compat", // This mobile app supports running on desktop browsers
"dojox/mobile/parser" // This mobile app uses declarative programming with fast mobile parser
], function(has, array, domConst, win, ready, registry, runner, common, TabBar, TabBarButton){
function _createTabBarProgrammatically(){
domConst.create("div", {className:"label", innerHTML:"Segmented Control"}, win.body());
var tabBar = new TabBar({barType:"segmentedControl"});
win.body().appendChild(tabBar.domNode);
tabBar.startup();
var tabBarButton = new TabBarButton({moveTo:"view1", textDir:"rtl", selected:"true", label:"Hello \u05e9\u05dc\u05d5\u05dd\u0021"});
tabBar.addChild(tabBarButton);
tabBarButton = new TabBarButton({moveTo:"view2", textDir:"rtl", label:"\u05e9\u05dc\u05d5\u05dd\ - hello!"});
tabBar.addChild(tabBarButton);
tabBarButton = new TabBarButton({moveTo:"view3", textDir:"rtl", label:"Genius"});
tabBar.addChild(tabBarButton);
tabBar.resize();
return tabBar;
}
ready(function(){
var tabbar = _createTabBarProgrammatically();
var btn;
var lre = common.MARK.LRE;
var rle = common.MARK.RLE;
function getFirstChar(obj){
var node = obj.labelNode;
var text = node.innerHTML;
return text ? text.charAt(0) : "";
};
runner.register("dojox.mobile.test.bidi.doh.HeadingTests", [
function test_LTR_TextDir_tabBarButton(){
btn = registry.byId("tbb13");
runner.assertEqual("ltr", btn.get("textDir"));
runner.assertEqual(lre, getFirstChar(btn));
},
function test_RTL_TextDir_tabBarButton(){
btn = registry.byId("tbb11");
runner.assertEqual("rtl", btn.get("textDir"));
runner.assertEqual(rle, getFirstChar(btn));
btn = registry.byId("tbb12");
},
function test_auto_TextDir_tabBarButton(){
btn = registry.byId("tbb21");
runner.assertEqual("auto", btn.get("textDir"));
runner.assertEqual(rle, getFirstChar(btn));
btn = registry.byId("tbb22");
runner.assertEqual("auto", btn.get("textDir"));
runner.assertEqual(lre, getFirstChar(btn));
btn = registry.byId("tbb23");
runner.assertEqual("auto", btn.get("textDir"));
runner.assertEqual(lre, getFirstChar(btn));
},
function test_TextDir_Badge(){
btn = registry.byId("tbb31");
runner.assertEqual("auto", btn.badgeObj.textDir);
runner.assertEqual(lre, btn.badgeObj.getValue().charAt(0));
btn = registry.byId("tbb32");
runner.assertEqual("auto", btn.badgeObj.textDir);
runner.assertEqual(rle, btn.badgeObj.getValue().charAt(0));
},
function test_change_textDir(){
var tb = registry.byId("tab1");
tb.set("textDir", "rtl");
runner.assertEqual("rtl", tb.get("textDir"));
btn = registry.byId("tbb13");
runner.assertEqual("rtl", btn.get("textDir"));
runner.assertEqual(rle, getFirstChar(btn));
},
function test_change_Label(){
btn = registry.byId("tbb21");
btn.set("label", "New Label!")
runner.assertEqual("auto", btn.get("textDir"));
runner.assertEqual(lre, getFirstChar(btn));
btn = registry.byId("tbb22");
btn.set("label", "\u05e9\u05dc\u05d5\u05dd\u0021\u0021")
runner.assertEqual("auto", btn.get("textDir"));
runner.assertEqual(rle, getFirstChar(btn));
},
function test_program_created_TBButton(){
var children = tabbar.getChildren();
array.forEach(children, function(ch){
runner.assertEqual("rtl", ch.get("textDir"));
runner.assertEqual(rle, getFirstChar(ch));
}, this);
}
]);
runner.run();
});
})
</script>
</head>
<body>
<h3> textDir for TabBarButton </h3>
<ul data-dojo-type="dojox.mobile.TabBar" id="tab1" data-dojo-props='barType:"segmentedControl", textDir:"ltr"'>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb11" data-dojo-props='selected:true, icon1:"../../images/tab-icon-21.png", icon2:"../../images/tab-icon-21h.png",textDir:"rtl"'>New חדש !</li>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb12" data-dojo-props='textDir:"rtl"'>חדש RTL ...</li>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb13" data-dojo-props='textDir:"ltr"'>חדש LTR...</li>
</ul>
<div class="label">textDir RTL in Heading, textDir AUTO in TabBar </div>
<div data-dojo-type="dojox.mobile.Heading" textDir="rtl">
<ul data-dojo-type="dojox.mobile.TabBar" id="tab2" data-dojo-props='barType:"segmentedControl", textDir:"auto"'>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb21" data-dojo-props='selected:true'>חדש Catalog</li>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb22" >Share ...</li>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb23" >Start חדש!! </li>
</ul>
<span data-dojo-type="dojox.mobile.ToolBarButton" data-dojo-props=''>Button...</span>
</div><br>
<h3> TabBar with badge textDir AUTO</h3>
<ul data-dojo-type="dojox.mobile.TabBar" id="tab3" data-dojo-props='barType:"standardTab", textDir:"auto", closable:true, center:false'>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb31" data-dojo-props='selected:true, badge:"New..."'>Dashboard...</li>
<li data-dojo-type="dojox.mobile.TabBarButton" id="tbb32" data-dojo-props='selected:true, badge:"חדש..."'>חדש!</li>
<li data-dojo-type="dojox.mobile.TabBarButton">Today's Main Event</li>
</ul><br>
<h3> textDir for Mirrored TabBarButton </h3>
<ul data-dojo-type="dojox.mobile.TabBar" data-dojo-props='barType:"segmentedControl"'>
<li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props='selected:true, icon1:"../../images/tab-icon-21.png", icon2:"../../images/tab-icon-21h.png",textDir:"auto"'>חדש New</li>
<li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props='textDir:"rtl"'>חדש RTL ...</li>
<li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props='textDir:"ltr"'>חדש LTR...</li>
</ul>
<div data-dojo-type="dojox.mobile.Heading" textDir="rtl">
<ul data-dojo-type="dojox.mobile.TabBar" data-dojo-props='barType:"segmentedControl", textDir:"auto"'>
<li data-dojo-type="dojox.mobile.TabBarButton" data-dojo-props='selected:true'>חדש Catalog</li>
<li data-dojo-type="dojox.mobile.TabBarButton">Share ...</li>
<li data-dojo-type="dojox.mobile.TabBarButton">Start חדש!! </li>
</ul>
<span data-dojo-type="dojox.mobile.ToolBarButton" data-dojo-props=''>Button...</span>
</div><br>
</body>
</html>