Skip to content

Commit ef54629

Browse files
committed
Merge branch 'hdeshev/beta-1-fixes'
2 parents 721c27c + 691fa6e commit ef54629

File tree

6 files changed

+23
-160
lines changed

6 files changed

+23
-160
lines changed

deps/NativeScript

Submodule NativeScript updated 179 files

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nativescript-angular",
3-
"version": "0.0.20",
3+
"version": "0.0.21",
44
"description": "",
55
"homepage": "http://www.telerik.com",
66
"bugs": "http://www.telerik.com",

src/nativescript-angular/element-registry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ registerElement("Slider", () => require("ui/slider").Slider);
6666
registerElement("StackLayout", () => require("ui/layouts/stack-layout").StackLayout);
6767
registerElement("Switch", () => require("ui/switch").Switch);
6868
registerElement("TabView", () => require("ui/tab-view").TabView);
69-
registerElement("TabViewItem", () => require("ui/tab-view").TabViewItem);
7069
registerElement("TextField", () => require("ui/text-field").TextField);
7170
registerElement("TextView", () => require("ui/text-view").TextView);
7271
registerElement("TimePicker", () => require("ui/time-picker").TimePicker);
7372
registerElement("WebView", () => require("ui/web-view").WebView);
7473
registerElement("WrapLayout", () => require("ui/layouts/wrap-layout").WrapLayout);
74+
registerElement("ProxyViewContainer", () => require("ui/proxy-view-container").ProxyViewContainer);

src/nativescript-angular/renderer.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export class NativeScriptRenderer extends Renderer {
5858

5959
attachViewAfter(anchorNode: util.NgView, viewRootNodes: util.NgView[]) {
6060
console.log('NativeScriptRenderer.attachViewAfter: ' + anchorNode.nodeName + ' ' + anchorNode);
61-
const parent = <util.NgView>anchorNode.parent;
61+
const parent = (<util.NgView>anchorNode.parent || anchorNode.templateParent);
6262
const insertPosition = util.getChildIndex(parent, anchorNode);
6363

6464
viewRootNodes.forEach((node, index) => {
@@ -90,12 +90,12 @@ export class NativeScriptRenderer extends Renderer {
9090
}
9191

9292
setElementProperty(renderElement: util.NgView, propertyName: string, propertyValue: any) {
93-
console.log("NativeScriptRenderer.setElementProperty " + renderElement.nodeName + ': ' + propertyName + " = " + propertyValue);
93+
console.log("NativeScriptRenderer.setElementProperty " + renderElement + ': ' + propertyName + " = " + propertyValue);
9494
util.setProperty(renderElement, propertyName, propertyValue);
9595
}
9696

9797
setElementAttribute(renderElement: util.NgView, attributeName: string, attributeValue: string) {
98-
console.log("NativeScriptRenderer.setElementAttribute " + renderElement.nodeName + ': ' + attributeName + " = " + attributeValue);
98+
console.log("NativeScriptRenderer.setElementAttribute " + renderElement + ': ' + attributeName + " = " + attributeValue);
9999
return this.setElementProperty(renderElement, attributeName, attributeValue);
100100
}
101101

@@ -118,7 +118,7 @@ export class NativeScriptRenderer extends Renderer {
118118
* such as <template> placeholders.
119119
*/
120120
setBindingDebugInfo(renderElement: util.NgView, propertyName: string, propertyValue: string): void {
121-
console.log('NativeScriptRenderer.setBindingDebugInfo: ' + renderElement.nodeName + ', ' + propertyName + ' = ' + propertyValue);
121+
console.log('NativeScriptRenderer.setBindingDebugInfo: ' + renderElement + ', ' + propertyName + ' = ' + propertyValue);
122122
}
123123

124124
/**
@@ -144,8 +144,7 @@ export class NativeScriptRenderer extends Renderer {
144144

145145
public createText(value: string): util.NgView {
146146
console.log('NativeScriptRenderer.createText');
147-
//No text nodes in NativeScript
148-
return null;
147+
return util.createText(value);;
149148
}
150149

151150
public listen(renderElement: util.NgView, eventName: string, callback: Function) {

src/nativescript-angular/view-container.ts

Lines changed: 0 additions & 106 deletions
This file was deleted.

src/nativescript-angular/view-util.ts

Lines changed: 15 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import {isString} from "utils/types";
2-
import {View, AddChildFromBuilder} from "ui/core/view";
2+
import {View} from "ui/core/view";
33
import {Placeholder} from "ui/placeholder";
44
import {ContentView} from 'ui/content-view';
55
import {LayoutBase} from 'ui/layouts/layout-base';
66
import {ViewClass, getViewClass, isKnownView} from './element-registry';
7-
import {ViewContainer} from './view-container';
87
import {getSpecialPropertySetter} from "ui/builder/special-properties";
98

109
//var console = {log: function(msg) {}}
@@ -18,83 +17,59 @@ export interface ViewExtensions {
1817
export type NgView = View & ViewExtensions;
1918
export type NgLayoutBase = LayoutBase & ViewExtensions;
2019
export type NgContentView = ContentView & ViewExtensions;
21-
export type NgAddChildFromBuilder = View & AddChildFromBuilder & ViewExtensions;
2220

23-
function isView(view: any): view is NgView {
21+
export function isView(view: any): view is NgView {
2422
return view instanceof View;
2523
}
2624

27-
function isLayout(view: any): view is NgLayoutBase {
25+
export function isLayout(view: any): view is NgLayoutBase {
2826
return view instanceof LayoutBase;
2927
}
3028

31-
function isContentView(view: any): view is NgContentView {
29+
export function isContentView(view: any): view is NgContentView {
3230
return view instanceof ContentView;
3331
}
3432

35-
function hasBuilderHooks(view: any): view is NgAddChildFromBuilder {
36-
return view._addChildFromBuilder !== undefined;
37-
}
38-
39-
function isViewContainer(view: any): view is ViewContainer {
40-
return view instanceof ViewContainer;
41-
}
42-
4333
function isComplexProperty(view: NgView) {
4434
const name = view.nodeName
4535
return isString(name) && name.indexOf(".") !== -1;
4636
}
4737

4838
export function insertChild(parent: any, child: NgView, atIndex = -1) {
49-
if (child.nodeName === 'Switch') {
50-
console.log('inserting switch into: ' + parent);
51-
}
52-
5339
if (isLayout(parent)) {
5440
if (atIndex !== -1) {
5541
parent.insertChild(child, atIndex);
5642
} else {
5743
parent.addChild(child);
5844
}
59-
} else if (isViewContainer(parent)) {
60-
parent.insertChild(child, atIndex);
6145
} else if (isContentView(parent)) {
6246
parent.content = child;
63-
} else if (hasBuilderHooks(parent)) {
64-
parent._addChildFromBuilder(this.viewName, this.nativeView);
6547
} else {
66-
throw new Error("Parent can't contain children: " + parent.nodeName + ', ' + parent);
67-
}
68-
if (child instanceof ViewContainer) {
69-
(<ViewContainer>child).addedToView();
48+
//throw new Error("Parent can't contain children: " + parent.nodeName + ', ' + parent);
7049
}
7150
}
7251

7352
export function removeChild(parent: any, child: NgView) {
7453
if (isLayout(parent)) {
7554
parent.removeChild(child);
76-
} else if (isViewContainer(parent)) {
77-
parent.removeChild(child);
7855
} else if (isContentView(parent)) {
7956
if (parent.content === child) {
8057
parent.content = null;
8158
}
8259
} else if (isView(parent)) {
8360
parent._removeView(child);
8461
} else {
85-
throw new Error('Unknown parent type: ' + parent);
62+
//throw new Error('Unknown parent type: ' + parent);
8663
}
8764
}
8865

8966
export function getChildIndex(parent: any, child: NgView) {
9067
if (isLayout(parent)) {
9168
return parent.getChildIndex(child);
92-
} else if (isViewContainer(parent)) {
93-
return parent.getChildIndex(child);
9469
} else if (isContentView(parent)) {
9570
return child === parent.content ? 0 : -1;
9671
} else {
97-
throw new Error("Parent can't contain children: " + parent.nodeName + ', ' + parent);
72+
//throw new Error("Parent can't contain children: " + parent);
9873
}
9974
}
10075

@@ -112,7 +87,7 @@ export function createView(name: string, parent: NgView): NgView {
11287
const viewClass = getViewClass(name);
11388
return createAndAttach(name, viewClass, parent);
11489
} else {
115-
return createViewContainer(parent);
90+
return createViewContainer(name, parent);
11691
}
11792
}
11893

@@ -123,25 +98,20 @@ export function createText(value: string): NgView {
12398
return text;
12499
}
125100

126-
export function createTemplateContainer(parsedNode: NgView) {
127-
const parent = <NgView> parsedNode.parent;
128-
const templateContainer = createView('StackLayout', parent);
129-
//templateContainer.visibility = "collapse";
130-
return templateContainer;
131-
}
132-
133-
export function createViewContainer(parentElement: NgView) {
101+
export function createViewContainer(name: string, parentElement: NgView) {
134102
//HACK: Using a ContentView here, so that it creates a native View object
135103
console.log('Creating view container in:' + parentElement);
136-
const anchor = createAndAttach('ViewContainer', ViewContainer, parentElement);
137-
anchor.visibility = "collapse";
138-
return anchor;
104+
105+
const layout = createView('ProxyViewContainer', parentElement);
106+
layout.nodeName = 'ProxyViewContainer';
107+
return layout;
139108
}
140109

141110
export function createTemplateAnchor(parentElement: NgView) {
142111
//HACK: Using a ContentView here, so that it creates a native View object
143112
const anchor = createAndAttach('ContentView', ContentView, parentElement);
144113
anchor.visibility = "collapse";
114+
anchor.templateParent = parentElement;
145115
return anchor;
146116
}
147117

@@ -162,7 +132,7 @@ export function setProperty(view: NgView, attributeName: string, value: any): vo
162132
let propMap = getProperties(view);
163133

164134
if (attributeName === "class") {
165-
this.setClasses(value);
135+
setClasses(view, value);
166136
} else if (isXMLAttribute(attributeName)) {
167137
view._applyXmlAttribute(attributeName, value);
168138
} else if (specialSetter) {

0 commit comments

Comments
 (0)