mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 21:01:34 +08:00
Additional refactoring and code cleanup
This commit is contained in:
@ -302,14 +302,9 @@ export var test_WhenFormattedTextPropertyChanges_TextIsUpdated_Button = function
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash() {
|
||||||
let view = new buttonModule.Button();
|
let view = new buttonModule.Button();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
|
||||||
TKUnit.assertEqual(view.style.textTransform, enums.TextTransform.none, "TextTransform");
|
|
||||||
TKUnit.assertEqual(view.style.textDecoration, enums.TextDecoration.none, "TextDecoration");
|
|
||||||
TKUnit.assertTrue(isNaN(view.style.letterSpacing), "LetterSpacing");
|
|
||||||
|
|
||||||
view.text = "NormalText";
|
view.text = "NormalText";
|
||||||
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
||||||
|
|
||||||
@ -319,15 +314,10 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedTex
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash() {
|
||||||
let view = new buttonModule.Button();
|
let view = new buttonModule.Button();
|
||||||
let formattedString = _generateFormattedString();
|
let formattedString = helper._generateFormattedString();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
|
||||||
TKUnit.assertEqual(view.style.textTransform, enums.TextTransform.none, "TextTransform");
|
|
||||||
TKUnit.assertEqual(view.style.textDecoration, enums.TextDecoration.none, "TextDecoration");
|
|
||||||
TKUnit.assertTrue(isNaN(view.style.letterSpacing), "LetterSpacing");
|
|
||||||
|
|
||||||
view.formattedText = formattedString;
|
view.formattedText = formattedString;
|
||||||
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
||||||
|
|
||||||
@ -336,32 +326,3 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_D
|
|||||||
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function _generateFormattedString(): formattedStringModule.FormattedString{
|
|
||||||
let formattedString = new formattedStringModule.FormattedString();
|
|
||||||
let span: spanModule.Span;
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "serif";
|
|
||||||
span.fontSize = 10;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Bold;
|
|
||||||
span.foregroundColor = new colorModule.Color("red");
|
|
||||||
span.backgroundColor = new colorModule.Color("blue");
|
|
||||||
span.underline = 0;
|
|
||||||
span.strikethrough = 1;
|
|
||||||
span.text = "Formatted";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "sans-serif";
|
|
||||||
span.fontSize = 20;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Italic;
|
|
||||||
span.foregroundColor = new colorModule.Color("green");
|
|
||||||
span.backgroundColor = new colorModule.Color("yellow");
|
|
||||||
span.underline = 1;
|
|
||||||
span.strikethrough = 0;
|
|
||||||
span.text = "Text";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
return formattedString;
|
|
||||||
}
|
|
||||||
|
@ -8,6 +8,10 @@ import utils = require("utils/utils");
|
|||||||
import types = require("utils/types");
|
import types = require("utils/types");
|
||||||
import styling = require("ui/styling");
|
import styling = require("ui/styling");
|
||||||
import platform = require("platform");
|
import platform = require("platform");
|
||||||
|
import colorModule = require("color");
|
||||||
|
import formattedStringModule = require("text/formatted-string");
|
||||||
|
import spanModule = require("text/span");
|
||||||
|
import enums = require("ui/enums");
|
||||||
|
|
||||||
var DELTA = 0.1;
|
var DELTA = 0.1;
|
||||||
|
|
||||||
@ -202,3 +206,32 @@ export function forceGC() {
|
|||||||
|
|
||||||
utils.GC();
|
utils.GC();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function _generateFormattedString(): formattedStringModule.FormattedString{
|
||||||
|
let formattedString = new formattedStringModule.FormattedString();
|
||||||
|
let span: spanModule.Span;
|
||||||
|
|
||||||
|
span = new spanModule.Span();
|
||||||
|
span.fontFamily = "serif";
|
||||||
|
span.fontSize = 10;
|
||||||
|
span.fontAttributes = enums.FontAttributes.Bold;
|
||||||
|
span.foregroundColor = new colorModule.Color("red");
|
||||||
|
span.backgroundColor = new colorModule.Color("blue");
|
||||||
|
span.underline = 0;
|
||||||
|
span.strikethrough = 1;
|
||||||
|
span.text = "Formatted";
|
||||||
|
formattedString.spans.push(span);
|
||||||
|
|
||||||
|
span = new spanModule.Span();
|
||||||
|
span.fontFamily = "sans-serif";
|
||||||
|
span.fontSize = 20;
|
||||||
|
span.fontAttributes = enums.FontAttributes.Italic;
|
||||||
|
span.foregroundColor = new colorModule.Color("green");
|
||||||
|
span.backgroundColor = new colorModule.Color("yellow");
|
||||||
|
span.underline = 1;
|
||||||
|
span.strikethrough = 0;
|
||||||
|
span.text = "Text";
|
||||||
|
formattedString.spans.push(span);
|
||||||
|
|
||||||
|
return formattedString;
|
||||||
|
}
|
@ -23,8 +23,6 @@ import {Label} from "ui/label";
|
|||||||
import {LayoutBase} from "ui/layouts/layout-base";
|
import {LayoutBase} from "ui/layouts/layout-base";
|
||||||
import * as helper from "../helper";
|
import * as helper from "../helper";
|
||||||
import viewModule = require("ui/core/view");
|
import viewModule = require("ui/core/view");
|
||||||
import formattedStringModule = require("text/formatted-string");
|
|
||||||
import spanModule = require("text/span");
|
|
||||||
|
|
||||||
export class LabelTest extends testModule.UITest<LabelModule.Label> {
|
export class LabelTest extends testModule.UITest<LabelModule.Label> {
|
||||||
|
|
||||||
@ -599,14 +597,9 @@ export function createTestCase(): LabelTest {
|
|||||||
return new LabelTest();
|
return new LabelTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash() {
|
||||||
let view = new LabelModule.Label();
|
let view = new LabelModule.Label();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
|
||||||
TKUnit.assertEqual(view.style.textTransform, enums.TextTransform.none, "TextTransform");
|
|
||||||
TKUnit.assertEqual(view.style.textDecoration, enums.TextDecoration.none, "TextDecoration");
|
|
||||||
TKUnit.assertTrue(isNaN(view.style.letterSpacing), "LetterSpacing");
|
|
||||||
|
|
||||||
view.text = "NormalText";
|
view.text = "NormalText";
|
||||||
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
||||||
|
|
||||||
@ -616,15 +609,10 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedTex
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash() {
|
||||||
let view = new LabelModule.Label();
|
let view = new LabelModule.Label();
|
||||||
let formattedString = _generateFormattedString();
|
let formattedString = helper._generateFormattedString();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
|
||||||
TKUnit.assertEqual(view.style.textTransform, enums.TextTransform.none, "TextTransform");
|
|
||||||
TKUnit.assertEqual(view.style.textDecoration, enums.TextDecoration.none, "TextDecoration");
|
|
||||||
TKUnit.assertTrue(isNaN(view.style.letterSpacing), "LetterSpacing");
|
|
||||||
|
|
||||||
view.formattedText = formattedString;
|
view.formattedText = formattedString;
|
||||||
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
||||||
|
|
||||||
@ -633,32 +621,3 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_D
|
|||||||
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function _generateFormattedString(): formattedStringModule.FormattedString{
|
|
||||||
let formattedString = new formattedStringModule.FormattedString();
|
|
||||||
let span: spanModule.Span;
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "serif";
|
|
||||||
span.fontSize = 10;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Bold;
|
|
||||||
span.foregroundColor = new colorModule.Color("red");
|
|
||||||
span.backgroundColor = new colorModule.Color("blue");
|
|
||||||
span.underline = 0;
|
|
||||||
span.strikethrough = 1;
|
|
||||||
span.text = "Formatted";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "sans-serif";
|
|
||||||
span.fontSize = 20;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Italic;
|
|
||||||
span.foregroundColor = new colorModule.Color("green");
|
|
||||||
span.backgroundColor = new colorModule.Color("yellow");
|
|
||||||
span.underline = 1;
|
|
||||||
span.strikethrough = 0;
|
|
||||||
span.text = "Text";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
return formattedString;
|
|
||||||
}
|
|
||||||
|
@ -536,7 +536,7 @@ export var test_WhenFormattedTextPropertyChanges_TextIsUpdated_TextBase = functi
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash() {
|
||||||
let view = new textFieldModule.TextField();
|
let view = new textFieldModule.TextField();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
TKUnit.assertEqual(view.text, "", "Text");
|
||||||
@ -553,15 +553,10 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedTex
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash() {
|
||||||
let view = new textFieldModule.TextField();
|
let view = new textFieldModule.TextField();
|
||||||
let formattedString = _generateFormattedString();
|
let formattedString = helper._generateFormattedString();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
|
||||||
TKUnit.assertEqual(view.style.textTransform, enums.TextTransform.none, "TextTransform");
|
|
||||||
TKUnit.assertEqual(view.style.textDecoration, enums.TextDecoration.none, "TextDecoration");
|
|
||||||
TKUnit.assertTrue(isNaN(view.style.letterSpacing), "LetterSpacing");
|
|
||||||
|
|
||||||
view.formattedText = formattedString;
|
view.formattedText = formattedString;
|
||||||
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
||||||
|
|
||||||
@ -570,32 +565,3 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_D
|
|||||||
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function _generateFormattedString(): formattedStringModule.FormattedString{
|
|
||||||
let formattedString = new formattedStringModule.FormattedString();
|
|
||||||
let span: spanModule.Span;
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "serif";
|
|
||||||
span.fontSize = 10;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Bold;
|
|
||||||
span.foregroundColor = new colorModule.Color("red");
|
|
||||||
span.backgroundColor = new colorModule.Color("blue");
|
|
||||||
span.underline = 0;
|
|
||||||
span.strikethrough = 1;
|
|
||||||
span.text = "Formatted";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "sans-serif";
|
|
||||||
span.fontSize = 20;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Italic;
|
|
||||||
span.foregroundColor = new colorModule.Color("green");
|
|
||||||
span.backgroundColor = new colorModule.Color("yellow");
|
|
||||||
span.underline = 1;
|
|
||||||
span.strikethrough = 0;
|
|
||||||
span.text = "Text";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
return formattedString;
|
|
||||||
}
|
|
||||||
|
@ -6,8 +6,6 @@ import textViewTestsNative = require("./text-view-tests-native");
|
|||||||
import colorModule = require("color");
|
import colorModule = require("color");
|
||||||
import enums = require("ui/enums");
|
import enums = require("ui/enums");
|
||||||
import platform = require("platform");
|
import platform = require("platform");
|
||||||
import formattedStringModule = require("text/formatted-string");
|
|
||||||
import spanModule = require("text/span");
|
|
||||||
|
|
||||||
// >> require-textmodules
|
// >> require-textmodules
|
||||||
import textViewModule = require("ui/text-view");
|
import textViewModule = require("ui/text-view");
|
||||||
@ -497,14 +495,9 @@ export function test_watch_listerer_is_removed_at_onDetach() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedText_DoesNotCrash() {
|
||||||
let view = new textViewModule.TextView();
|
let view = new textViewModule.TextView();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
|
||||||
TKUnit.assertEqual(view.style.textTransform, enums.TextTransform.none, "TextTransform");
|
|
||||||
TKUnit.assertEqual(view.style.textDecoration, enums.TextDecoration.none, "TextDecoration");
|
|
||||||
TKUnit.assertTrue(isNaN(view.style.letterSpacing), "LetterSpacing");
|
|
||||||
|
|
||||||
view.text = "NormalText";
|
view.text = "NormalText";
|
||||||
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
||||||
|
|
||||||
@ -514,15 +507,10 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithoutFormattedTex
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash = function () {
|
export function test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_DoesNotCrash() {
|
||||||
let view = new textViewModule.TextView();
|
let view = new textViewModule.TextView();
|
||||||
let formattedString = _generateFormattedString();
|
let formattedString = helper._generateFormattedString();
|
||||||
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
helper.buildUIAndRunTest(view, function (views: Array<viewModule.View>) {
|
||||||
TKUnit.assertEqual(view.text, "", "Text");
|
|
||||||
TKUnit.assertEqual(view.style.textTransform, enums.TextTransform.none, "TextTransform");
|
|
||||||
TKUnit.assertEqual(view.style.textDecoration, enums.TextDecoration.none, "TextDecoration");
|
|
||||||
TKUnit.assertTrue(isNaN(view.style.letterSpacing), "LetterSpacing");
|
|
||||||
|
|
||||||
view.formattedText = formattedString;
|
view.formattedText = formattedString;
|
||||||
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
view.setInlineStyle("text-transform: uppercase; text-decoration: underline; letter-spacing: 10;");
|
||||||
|
|
||||||
@ -531,32 +519,3 @@ export var test_IntegrationTest_Transform_Decoration_Spacing_WithFormattedText_D
|
|||||||
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
TKUnit.assertEqual(view.style.letterSpacing, 10, "LetterSpacing");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function _generateFormattedString(): formattedStringModule.FormattedString{
|
|
||||||
let formattedString = new formattedStringModule.FormattedString();
|
|
||||||
let span: spanModule.Span;
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "serif";
|
|
||||||
span.fontSize = 10;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Bold;
|
|
||||||
span.foregroundColor = new colorModule.Color("red");
|
|
||||||
span.backgroundColor = new colorModule.Color("blue");
|
|
||||||
span.underline = 0;
|
|
||||||
span.strikethrough = 1;
|
|
||||||
span.text = "Formatted";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
span = new spanModule.Span();
|
|
||||||
span.fontFamily = "sans-serif";
|
|
||||||
span.fontSize = 20;
|
|
||||||
span.fontAttributes = enums.FontAttributes.Italic;
|
|
||||||
span.foregroundColor = new colorModule.Color("green");
|
|
||||||
span.backgroundColor = new colorModule.Color("yellow");
|
|
||||||
span.underline = 1;
|
|
||||||
span.strikethrough = 0;
|
|
||||||
span.text = "Text";
|
|
||||||
formattedString.spans.push(span);
|
|
||||||
|
|
||||||
return formattedString;
|
|
||||||
}
|
|
||||||
|
@ -6,22 +6,20 @@ global.moduleMerge(formattedStringCommon, exports);
|
|||||||
|
|
||||||
export class FormattedString extends formattedStringCommon.FormattedString {
|
export class FormattedString extends formattedStringCommon.FormattedString {
|
||||||
public createFormattedStringCore() {
|
public createFormattedStringCore() {
|
||||||
var mas = NSMutableAttributedString.alloc().init();
|
let mas = NSMutableAttributedString.alloc().init();
|
||||||
var i;
|
let spanStart = 0;
|
||||||
var spanStart = 0;
|
let spanLength = 0;
|
||||||
var spanLength = 0;
|
let spanText = "";
|
||||||
var spanText = "";
|
for (let i = 0; i < this.spans.length; i++) {
|
||||||
for (i = 0; i < this.spans.length; i++) {
|
let span = <spanModule.Span>this.spans.getItem(i);
|
||||||
var span = <spanModule.Span>this.spans.getItem(i);
|
|
||||||
spanText = types.toUIString(span.text);
|
spanText = types.toUIString(span.text);
|
||||||
spanLength = spanText.length;
|
spanLength = spanText.length;
|
||||||
span.updateSpanModifiers(this);
|
span.updateSpanModifiers(this);
|
||||||
var attrDict = NSMutableDictionary.alloc().init();
|
let attrDict = NSMutableDictionary.alloc().init();
|
||||||
var p;
|
for (let p = 0; p < span.spanModifiers.length; p++) {
|
||||||
for (p = 0; p < span.spanModifiers.length; p++) {
|
|
||||||
attrDict.setObjectForKey(span.spanModifiers[p].value, span.spanModifiers[p].key);
|
attrDict.setObjectForKey(span.spanModifiers[p].value, span.spanModifiers[p].key);
|
||||||
}
|
}
|
||||||
var nsAttributedString = NSMutableAttributedString.alloc().initWithStringAttributes(String(spanText), attrDict);
|
let nsAttributedString = NSMutableAttributedString.alloc().initWithStringAttributes(String(spanText), attrDict);
|
||||||
mas.insertAttributedStringAtIndex(nsAttributedString, spanStart);
|
mas.insertAttributedStringAtIndex(nsAttributedString, spanStart);
|
||||||
spanStart += spanLength;
|
spanStart += spanLength;
|
||||||
}
|
}
|
||||||
@ -34,7 +32,8 @@ export class FormattedString extends formattedStringCommon.FormattedString {
|
|||||||
for (let i = 0; i < this.spans.length; i++) {
|
for (let i = 0; i < this.spans.length; i++) {
|
||||||
let span = <spanModule.Span>this.spans.getItem(i);
|
let span = <spanModule.Span>this.spans.getItem(i);
|
||||||
if (currentLocation <= rangeLocation && rangeLocation < (currentLocation + span.text.length)){
|
if (currentLocation <= rangeLocation && rangeLocation < (currentLocation + span.text.length)){
|
||||||
(<any>span)._text = splice(span.text, rangeLocation - currentLocation, deletingText ? rangeLength : 0, replacementString);
|
let newText = splice(span.text, rangeLocation - currentLocation, deletingText ? rangeLength : 0, replacementString);
|
||||||
|
span._setTextInternal(newText);
|
||||||
//console.log(`>>> ${span.text}`);
|
//console.log(`>>> ${span.text}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -140,11 +140,15 @@ export class Span extends bindable.Bindable implements definition.Span, view.App
|
|||||||
|
|
||||||
set text(value: string) {
|
set text(value: string) {
|
||||||
if (this._text !== value) {
|
if (this._text !== value) {
|
||||||
this._text = value;
|
this._setTextInternal(value);
|
||||||
this.updateAndNotify();
|
this.updateAndNotify();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_setTextInternal(value: string): void {
|
||||||
|
this._text = value;
|
||||||
|
}
|
||||||
|
|
||||||
get parentFormattedString(): formattedString.FormattedString {
|
get parentFormattedString(): formattedString.FormattedString {
|
||||||
return this._parentFormattedString;
|
return this._parentFormattedString;
|
||||||
}
|
}
|
||||||
|
5
tns-core-modules/text/span.d.ts
vendored
5
tns-core-modules/text/span.d.ts
vendored
@ -72,5 +72,10 @@
|
|||||||
* Ends the process previously initiated by beginEdit and updates the span modifiers collection.
|
* Ends the process previously initiated by beginEdit and updates the span modifiers collection.
|
||||||
*/
|
*/
|
||||||
public endEdit(): void;
|
public endEdit(): void;
|
||||||
|
|
||||||
|
//@private
|
||||||
|
_setTextInternal(value: string): void;
|
||||||
|
//@endprivate
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user