mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 04:41:36 +08:00
Merge pull request #1361 from NativeScript/nnikolov/TabViewExportsIssue
Added parent view for views inside TabView.
This commit is contained in:
@ -392,41 +392,4 @@ export class TabViewTest extends testModule.UITest<tabViewModule.TabView> {
|
|||||||
|
|
||||||
export function createTestCase(): TabViewTest {
|
export function createTestCase(): TabViewTest {
|
||||||
return new TabViewTest();
|
return new TabViewTest();
|
||||||
}
|
|
||||||
|
|
||||||
export function test__tabview_selectedindex_will_work_from_xml() {
|
|
||||||
var p = <pageModule.Page>builder.parse(
|
|
||||||
'<Page>' +
|
|
||||||
'<TabView selectedIndex= "1">' +
|
|
||||||
'<TabView.items>'+
|
|
||||||
'<TabViewItem title="First">' +
|
|
||||||
'<TabViewItem.view>' +
|
|
||||||
'<Label text="First View" />' +
|
|
||||||
'</TabViewItem.view>' +
|
|
||||||
'</TabViewItem>' +
|
|
||||||
'<TabViewItem title= "Second">' +
|
|
||||||
'<TabViewItem.view>' +
|
|
||||||
'<Label text="Second View" />' +
|
|
||||||
'</TabViewItem.view>' +
|
|
||||||
'</TabViewItem>' +
|
|
||||||
'</TabView.items>' +
|
|
||||||
'</TabView>' +
|
|
||||||
'</Page>');
|
|
||||||
|
|
||||||
function testAction(views: Array<viewModule.View>) {
|
|
||||||
var tab: tabViewModule.TabView = <tabViewModule.TabView>p.content;
|
|
||||||
|
|
||||||
TKUnit.wait(0.2);
|
|
||||||
|
|
||||||
TKUnit.assertEqual(tab.selectedIndex, 1);
|
|
||||||
};
|
|
||||||
|
|
||||||
helper.navigate(function () { return p; });
|
|
||||||
|
|
||||||
try {
|
|
||||||
testAction([p.content, p]);
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
helper.goBack();
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
import {Label} from "ui/label";
|
||||||
|
import {Observable} from "data/observable";
|
||||||
|
import {Page} from "ui/page";
|
||||||
|
|
||||||
|
export function loaded(args) {
|
||||||
|
(<Observable>(<Label>args.object).page.bindingContext).set("testPassed", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function onNavigatingTo(args) {
|
||||||
|
(<Page>args.object).bindingContext = args.context;
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
<Page navigatingTo="onNavigatingTo">
|
||||||
|
<TabView selectedIndex= "1">
|
||||||
|
<TabView.items>
|
||||||
|
<TabViewItem title="First">
|
||||||
|
<TabViewItem.view>
|
||||||
|
<Label text="First View" loaded="loaded"/>
|
||||||
|
</TabViewItem.view>
|
||||||
|
</TabViewItem>
|
||||||
|
<TabViewItem title= "Second">
|
||||||
|
<TabViewItem.view>
|
||||||
|
<Label text="Second View" />
|
||||||
|
</TabViewItem.view>
|
||||||
|
</TabViewItem>
|
||||||
|
</TabView.items>
|
||||||
|
</TabView>
|
||||||
|
</Page>
|
@ -15,6 +15,8 @@ import {Label} from "ui/label";
|
|||||||
import {Page} from "ui/page";
|
import {Page} from "ui/page";
|
||||||
import {Button} from "ui/button";
|
import {Button} from "ui/button";
|
||||||
import {View} from "ui/core/view";
|
import {View} from "ui/core/view";
|
||||||
|
import {TabView} from "ui/tab-view";
|
||||||
|
import {Observable} from "data/observable";
|
||||||
import {TemplateView} from "./template-builder-tests/template-view";
|
import {TemplateView} from "./template-builder-tests/template-view";
|
||||||
import myCustomControlWithoutXml = require("./mymodule/MyControl");
|
import myCustomControlWithoutXml = require("./mymodule/MyControl");
|
||||||
import listViewModule = require("ui/list-view");
|
import listViewModule = require("ui/list-view");
|
||||||
@ -920,4 +922,51 @@ export function test_EventInCodelessFragment() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
TKUnit.assert(notified, "Expected the child to raise the test event.");
|
TKUnit.assert(notified, "Expected the child to raise the test event.");
|
||||||
|
}
|
||||||
|
|
||||||
|
export function test_tabview_selectedindex_will_work_from_xml() {
|
||||||
|
var p = <Page>builder.parse(
|
||||||
|
'<Page>' +
|
||||||
|
'<TabView selectedIndex= "1">' +
|
||||||
|
'<TabView.items>'+
|
||||||
|
'<TabViewItem title="First">' +
|
||||||
|
'<TabViewItem.view>' +
|
||||||
|
'<Label text="First View" />' +
|
||||||
|
'</TabViewItem.view>' +
|
||||||
|
'</TabViewItem>' +
|
||||||
|
'<TabViewItem title= "Second">' +
|
||||||
|
'<TabViewItem.view>' +
|
||||||
|
'<Label text="Second View" />' +
|
||||||
|
'</TabViewItem.view>' +
|
||||||
|
'</TabViewItem>' +
|
||||||
|
'</TabView.items>' +
|
||||||
|
'</TabView>' +
|
||||||
|
'</Page>');
|
||||||
|
|
||||||
|
function testAction(views: Array<viewModule.View>) {
|
||||||
|
var tab: TabView = <TabView>p.content;
|
||||||
|
|
||||||
|
TKUnit.wait(0.2);
|
||||||
|
|
||||||
|
TKUnit.assertEqual(tab.selectedIndex, 1);
|
||||||
|
};
|
||||||
|
|
||||||
|
helper.navigate(function () { return p; });
|
||||||
|
|
||||||
|
try {
|
||||||
|
testAction([p.content, p]);
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
helper.goBack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function test_TabViewHasCorrectParentChain() {
|
||||||
|
var testFunc = function(page: Page) {
|
||||||
|
TKUnit.assert(page.bindingContext.get("testPassed"));
|
||||||
|
}
|
||||||
|
var moduleName = __dirname.substr(fs.knownFolders.currentApp().path.length);
|
||||||
|
var model = new Observable();
|
||||||
|
model.set("testPassed", false);
|
||||||
|
helper.navigateToModuleAndRunTest(("." + moduleName + "/mymodulewithxml/TabViewParentChain"), model, testFunc);
|
||||||
}
|
}
|
@ -322,6 +322,7 @@
|
|||||||
"apps/tests/xml-declaration/mainPage.ts",
|
"apps/tests/xml-declaration/mainPage.ts",
|
||||||
"apps/tests/xml-declaration/mymodule/MyControl.ts",
|
"apps/tests/xml-declaration/mymodule/MyControl.ts",
|
||||||
"apps/tests/xml-declaration/mymodulewithxml/MyControl.ts",
|
"apps/tests/xml-declaration/mymodulewithxml/MyControl.ts",
|
||||||
|
"apps/tests/xml-declaration/mymodulewithxml/TabViewParentChain.ts",
|
||||||
"apps/tests/xml-declaration/template-builder-tests/event-in-codeless-fragment.ts",
|
"apps/tests/xml-declaration/template-builder-tests/event-in-codeless-fragment.ts",
|
||||||
"apps/tests/xml-declaration/template-builder-tests/event-in-template.ts",
|
"apps/tests/xml-declaration/template-builder-tests/event-in-template.ts",
|
||||||
"apps/tests/xml-declaration/template-builder-tests/template-view.ts",
|
"apps/tests/xml-declaration/template-builder-tests/template-view.ts",
|
||||||
|
@ -168,6 +168,7 @@ export class TabView extends view.View implements definition.TabView, view.AddAr
|
|||||||
if (!newItem.view) {
|
if (!newItem.view) {
|
||||||
throw new Error("TabViewItem at index " + i + " does not have a view.");
|
throw new Error("TabViewItem at index " + i + " does not have a view.");
|
||||||
}
|
}
|
||||||
|
this._addView(newItem.view, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,6 +241,7 @@ export class TabView extends common.TabView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
item._parent = this;
|
item._parent = this;
|
||||||
|
this._addView(item.view, idx);
|
||||||
tabItems.push(this.createTabItem(item));
|
tabItems.push(this.createTabItem(item));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -194,8 +194,6 @@ export class TabView extends common.TabView {
|
|||||||
for (i = 0; i < length; i++) {
|
for (i = 0; i < length; i++) {
|
||||||
item = <TabViewItem>newItems[i];
|
item = <TabViewItem>newItems[i];
|
||||||
|
|
||||||
this._addView(item.view);
|
|
||||||
|
|
||||||
if (item.view.ios instanceof UIViewController) {
|
if (item.view.ios instanceof UIViewController) {
|
||||||
newController = <UIViewController>item.view.ios;
|
newController = <UIViewController>item.view.ios;
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user