feat(renderer): add a setElementStyles method

This commit is contained in:
Matias Niemelä
2016-04-29 15:18:53 -07:00
parent 982fad0c45
commit 1ac38bd69a
7 changed files with 37 additions and 1 deletions

View File

@ -20,6 +20,8 @@ import {
isString
} from '../../src/facade/lang';
import {StringMapWrapper} from '../../src/facade/collection';
import {BaseException} from '../../src/facade/exceptions';
import {DomSharedStylesHost} from './shared_styles_host';
import {EventManager} from './events/event_manager';
@ -219,6 +221,11 @@ export class DomRenderer implements Renderer {
}
}
setElementStyles(renderElement: any, styles: {[key: string]: string}) {
StringMapWrapper.forEach(styles,
(value, prop) => this.setElementStyle(renderElement, prop, value));
}
setElementStyle(renderElement: any, styleName: string, styleValue: string): void {
if (isPresent(styleValue)) {
getDOM().setStyle(renderElement, styleName, stringify(styleValue));

View File

@ -59,6 +59,9 @@ export class MessageBasedRenderer {
broker.registerMethod("setElementStyle",
[RenderStoreObject, RenderStoreObject, PRIMITIVE, PRIMITIVE],
FunctionWrapper.bind(this._setElementStyle, this));
broker.registerMethod("setElementStyles",
[RenderStoreObject, RenderStoreObject, PRIMITIVE],
FunctionWrapper.bind(this._setElementStyles, this));
broker.registerMethod("invokeElementMethod",
[RenderStoreObject, RenderStoreObject, PRIMITIVE, PRIMITIVE],
FunctionWrapper.bind(this._invokeElementMethod, this));
@ -144,6 +147,11 @@ export class MessageBasedRenderer {
renderer.setElementStyle(renderElement, styleName, styleValue);
}
private _setElementStyles(renderer: Renderer, renderElement: any,
styles: {[key: string]: string}) {
renderer.setElementStyles(renderElement, styles);
}
private _invokeElementMethod(renderer: Renderer, renderElement: any, methodName: string,
args: any[]) {
renderer.invokeElementMethod(renderElement, methodName, args);

View File

@ -190,6 +190,11 @@ export class WebWorkerRenderer implements Renderer, RenderStoreObject {
]);
}
setElementStyles(renderElement: any, styles: {[key: string]: string}) {
this._runOnService('setElementStyles',
[new FnArg(renderElement, RenderStoreObject), new FnArg(styles, null)]);
}
setElementStyle(renderElement: any, styleName: string, styleValue: string) {
this._runOnService('setElementStyle', [
new FnArg(renderElement, RenderStoreObject),