mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Total TextBase refactoring + several bug fixes.
This commit is contained in:
@@ -5,95 +5,6 @@ export * from "./utils-common";
|
||||
|
||||
// We are using "ad" here to avoid namespace collision with the global android object
|
||||
export module ad {
|
||||
|
||||
export function setTextDecoration(view: android.widget.TextView, value: string) {
|
||||
var flags = 0;
|
||||
|
||||
var values = (value + "").split(" ");
|
||||
|
||||
if (values.indexOf("underline") !== -1) {
|
||||
flags = flags | android.graphics.Paint.UNDERLINE_TEXT_FLAG;
|
||||
}
|
||||
|
||||
if (values.indexOf("line-through") !== -1) {
|
||||
flags = flags | android.graphics.Paint.STRIKE_THRU_TEXT_FLAG;
|
||||
}
|
||||
|
||||
if (values.indexOf("none") === -1) {
|
||||
view.setPaintFlags(flags);
|
||||
} else {
|
||||
view.setPaintFlags(0);
|
||||
}
|
||||
}
|
||||
|
||||
export function setTextTransform(v, value: string) {
|
||||
let view = v._nativeView;
|
||||
let str = view.getText() + "";
|
||||
let result = getTransformedString(value, view, str);
|
||||
|
||||
if (v.formattedText) {
|
||||
for (var i = 0; i < v.formattedText.spans.length; i++) {
|
||||
var span = v.formattedText.spans.getItem(i);
|
||||
span.text = getTransformedString(value, view, span.text);
|
||||
}
|
||||
} else {
|
||||
view.setText(result);
|
||||
}
|
||||
}
|
||||
|
||||
export function getTransformedString(textTransform: string, view, stringToTransform: string): string {
|
||||
let result: string;
|
||||
|
||||
switch (textTransform) {
|
||||
case "uppercase":
|
||||
view.setTransformationMethod(null);
|
||||
result = stringToTransform.toUpperCase();
|
||||
break;
|
||||
|
||||
case "lowercase":
|
||||
view.setTransformationMethod(null);
|
||||
result = stringToTransform.toLowerCase();
|
||||
break;
|
||||
|
||||
case "capitalize":
|
||||
view.setTransformationMethod(null);
|
||||
result = getCapitalizedString(stringToTransform);
|
||||
break;
|
||||
|
||||
case "none":
|
||||
default:
|
||||
result = view["originalString"] || stringToTransform;
|
||||
if (view["transformationMethod"]) {
|
||||
view.setTransformationMethod(view["transformationMethod"]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!view["originalString"]) {
|
||||
view["originalString"] = stringToTransform;
|
||||
view["transformationMethod"] = view.getTransformationMethod();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function getCapitalizedString(str: string): string {
|
||||
var words = str.split(" ");
|
||||
var newWords = [];
|
||||
for (let i = 0; i < words.length; i++) {
|
||||
let word = words[i].toLowerCase();
|
||||
newWords.push(word.substr(0, 1).toUpperCase() + word.substring(1));
|
||||
}
|
||||
|
||||
return newWords.join(" ");
|
||||
}
|
||||
|
||||
export function setWhiteSpace(view: android.widget.TextView, value: string) {
|
||||
let nowrap = value === "nowrap";
|
||||
view.setSingleLine(nowrap);
|
||||
view.setEllipsize(nowrap ? android.text.TextUtils.TruncateAt.END : null);
|
||||
}
|
||||
|
||||
let nativeApp: android.app.Application;
|
||||
declare var com;
|
||||
export function getApplication() {
|
||||
|
||||
8
tns-core-modules/utils/utils.d.ts
vendored
8
tns-core-modules/utils/utils.d.ts
vendored
@@ -78,11 +78,6 @@
|
||||
* Module with android specific utilities.
|
||||
*/
|
||||
module ad {
|
||||
export function setTextTransform(view, value: string);
|
||||
export function setWhiteSpace(view, value: string);
|
||||
export function setTextDecoration(view, value: string);
|
||||
export function getTransformedString(textTransform: string, view, stringToTransform: string): string;
|
||||
|
||||
/**
|
||||
* Gets the native Android application instance.
|
||||
*/
|
||||
@@ -163,9 +158,6 @@
|
||||
* Example: getter(NSRunLoop, NSRunLoop.currentRunLoop).runUntilDate(NSDate.dateWithTimeIntervalSinceNow(waitTime));
|
||||
*/
|
||||
export function getter<T>(_this: any, propertyValue: T | {(): T}): T;
|
||||
export function getTransformedText(view, source: string, transform: string): string;
|
||||
export function setWhiteSpace(view, value: string, parentView?: any);
|
||||
export function setTextAlignment(view, value: string);
|
||||
|
||||
// Common properties between UILabel, UITextView and UITextField
|
||||
export interface TextUIView {
|
||||
|
||||
@@ -34,22 +34,6 @@ export module layout {
|
||||
}
|
||||
|
||||
export module ios {
|
||||
export function setTextAlignment(view: dts.ios.TextUIView, value: string) {
|
||||
switch (value) {
|
||||
case "left":
|
||||
view.textAlignment = NSTextAlignment.Left;
|
||||
break;
|
||||
case "center":
|
||||
view.textAlignment = NSTextAlignment.Center;
|
||||
break;
|
||||
case "right":
|
||||
view.textAlignment = NSTextAlignment.Right;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
export function getter<T>(_this: any, property: T | { (): T }): T {
|
||||
if (typeof property === "function") {
|
||||
return (<{ (): T }>property).call(_this);
|
||||
@@ -58,50 +42,6 @@ export module ios {
|
||||
}
|
||||
}
|
||||
|
||||
export function getTransformedText(view, source: string, transform: string): string {
|
||||
let result = source;
|
||||
|
||||
switch (transform) {
|
||||
case "uppercase":
|
||||
result = NSStringFromNSAttributedString(source).uppercaseString;
|
||||
break;
|
||||
|
||||
case "lowercase":
|
||||
result = NSStringFromNSAttributedString(source).lowercaseString;
|
||||
break;
|
||||
|
||||
case "capitalize":
|
||||
result = NSStringFromNSAttributedString(source).capitalizedString;
|
||||
break;
|
||||
|
||||
case "none":
|
||||
default:
|
||||
result = view.text;
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function NSStringFromNSAttributedString(source: NSAttributedString | string): NSString {
|
||||
return NSString.stringWithString(source instanceof NSAttributedString && source.string || <string>source);
|
||||
}
|
||||
|
||||
export function setWhiteSpace(view: dts.ios.TextUIView, value: string, parentView?: UIView) {
|
||||
if (value === "normal") {
|
||||
view.lineBreakMode = NSLineBreakMode.ByWordWrapping;
|
||||
view.numberOfLines = 0;
|
||||
}
|
||||
else {
|
||||
if (parentView) {
|
||||
view.lineBreakMode = NSLineBreakMode.ByTruncatingMiddle;
|
||||
} else {
|
||||
view.lineBreakMode = NSLineBreakMode.ByTruncatingTail;
|
||||
}
|
||||
view.numberOfLines = 1;
|
||||
}
|
||||
}
|
||||
|
||||
export module collections {
|
||||
export function jsArrayToNSArray(str: string[]): NSArray<any> {
|
||||
return NSArray.arrayWithArray(<any>str);
|
||||
|
||||
Reference in New Issue
Block a user