Files
2019-09-19 15:40:31 +03:00

50 lines
1.5 KiB
TypeScript

import { Label as LabelDefinition } from ".";
import { TextBase, WhiteSpace, whiteSpaceProperty, booleanConverter, CSSType } from "../text-base";
import { profile } from "../../profiling";
export * from "../text-base";
let TextView: typeof android.widget.TextView;
@CSSType("Label")
export class Label extends TextBase implements LabelDefinition {
nativeViewProtected: android.widget.TextView;
nativeTextViewProtected: android.widget.TextView;
get textWrap(): boolean {
return this.style.whiteSpace === "normal";
}
set textWrap(value: boolean) {
if (typeof value === "string") {
value = booleanConverter(value);
}
this.style.whiteSpace = value ? "normal" : "nowrap";
}
@profile
public createNativeView() {
if (!TextView) {
TextView = android.widget.TextView;
}
return new TextView(this._context);
}
public initNativeView(): void {
super.initNativeView();
const textView = this.nativeTextViewProtected;
textView.setSingleLine(true);
textView.setEllipsize(android.text.TextUtils.TruncateAt.END);
}
[whiteSpaceProperty.setNative](value: WhiteSpace) {
// Label initial value is no-wrap. set in initNativeView
const newValue = value === "initial" ? "nowrap" : value;
super[whiteSpaceProperty.setNative](newValue);
}
}
Label.prototype._isSingleLine = true;
Label.prototype.recycleNativeView = "auto";