You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2017/08/30 20:37:38 UTC
[26/32] git commit: [flex-asjs] [refs/heads/feature/dragAndDrop] -
Added missing pieces for TextBlock management Fixed bug in
GroupElement.replaceElements()
Added missing pieces for TextBlock management
Fixed bug in GroupElement.replaceElements()
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/f4276e0d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/f4276e0d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/f4276e0d
Branch: refs/heads/feature/dragAndDrop
Commit: f4276e0dd628a0a3a22a33d1890ea3c1e1943b5a
Parents: daca90f
Author: Harbs <ha...@in-tools.com>
Authored: Sun Aug 27 07:46:55 2017 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Sun Aug 27 07:46:55 2017 +0300
----------------------------------------------------------------------
.../apache/flex/text/engine/ContentElement.as | 25 ++++++++++++++++----
.../org/apache/flex/text/engine/GroupElement.as | 21 ++++++++++++++--
.../org/apache/flex/text/engine/ITextBlock.as | 3 +++
.../flex/org/apache/flex/text/html/TextBlock.as | 4 ++++
4 files changed, 47 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4276e0d/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ContentElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ContentElement.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ContentElement.as
index 1b35305..e1358a4 100644
--- a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ContentElement.as
+++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ContentElement.as
@@ -44,10 +44,18 @@ package org.apache.flex.text.engine
/**
* The parent
*/
- public function get groupElement() : GroupElement
+ private var _groupElement:GroupElement;
+ public function get groupElement():GroupElement
{
+ if(_groupElement)
+ return _groupElement.getElementIndex(this) < 0 ? null : _groupElement;
return null;
}
+ public function set groupElement(value:GroupElement):void
+ {
+ _groupElement = value;
+ }
+
public function get rawText() : String
{
return null;
@@ -56,13 +64,22 @@ package org.apache.flex.text.engine
{
return null;
}
- public function get textBlock() : ITextBlock
+
+ private var _textBlock:ITextBlock;
+ public function get textBlock():ITextBlock
{
- return null;
+ if(groupElement)
+ return groupElement.textBlock;
+ return _textBlock;
}
+ public function set textBlock(value:ITextBlock):void
+ {
+ _textBlock = value;
+ }
+
public function get textBlockBeginIndex() : int
{
- return null;
+ return textBlock ? textBlock.getRelativeStart(this) : 0;
}
public var textRotation : String
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4276e0d/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/GroupElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/GroupElement.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/GroupElement.as
index a61c97f..7d5d928 100644
--- a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/GroupElement.as
+++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/GroupElement.as
@@ -20,6 +20,7 @@ package org.apache.flex.text.engine
{
import org.apache.flex.events.EventDispatcher;
import org.apache.flex.text.engine.TextElement;
+ import org.apache.flex.text.engine.GroupElement;
public class GroupElement extends ContentElement
{
@@ -27,7 +28,10 @@ package org.apache.flex.text.engine
{
super(elementFormat, eventMirror, textRotation);
if(elements)
+ {
_elements = elements;
+ setElementsGroup(this);
+ }
else
_elements = new Vector.<ContentElement>();
}
@@ -67,6 +71,7 @@ package org.apache.flex.text.engine
}
public function replaceElements(beginIndex:int, endIndex:int, newElements:Vector.<ContentElement>):Vector.<ContentElement>
{
+ setElementsGroup(null);
COMPILE::SWF
{
var args:Array = [beginIndex, endIndex-beginIndex];
@@ -79,15 +84,25 @@ package org.apache.flex.text.engine
}
COMPILE::JS
{
- var args:Array = [beginIndex, endIndex-beginIndex].concat(newElements);
+ var args:Array = [beginIndex, endIndex-beginIndex];
+ // don't concat null
+ if(newElements)
+ args = args.concat(newElements);
// _elements.splice(beginIndex,endIndex-beginIndex);
}
- _elements.splice.apply(_elements, args);
+ _elements.splice.apply(_elements, args);
+ setElementsGroup(this);
return _elements;
}
public function setElements(value:Vector.<ContentElement>):void
{
_elements = value;
+ setElementsGroup(this);
+ }
+ private function setElementsGroup(group:GroupElement):void
+ {
+ for(var i:int=0; i<_elements.length; i++)
+ _elements[i].groupElement = group;
}
public function splitTextElement(elementIndex:int, splitIndex:int):TextElement
{
@@ -101,7 +116,9 @@ package org.apache.flex.text.engine
var nextText:String = textElem.rawText.substr(splitIndex);
var newElem:TextElement = new TextElement(nextText,textElem.elementFormat,textElem.eventMirror,textElem.textRotation);
textElem.text = firstText;
+ newElem.groupElement = this;
_elements.splice(elementIndex+1,0,newElem);
+
return newElem;
}
public function ungroupElements(groupIndex:int):void
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4276e0d/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ITextBlock.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ITextBlock.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ITextBlock.as
index 7f9be7c..8d51b90 100644
--- a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ITextBlock.as
+++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/ITextBlock.as
@@ -19,6 +19,7 @@
package org.apache.flex.text.engine
{
import org.apache.flex.text.engine.ITextFactory;
+ import org.apache.flex.text.engine.ContentElement;
public interface ITextBlock
{
@@ -64,5 +65,7 @@ package org.apache.flex.text.engine
function releaseLineCreationData():void;
function releaseLines(firstLine:ITextLine, lastLine:ITextLine):void;
+ function getRelativeStart(element:ContentElement):int;
+
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4276e0d/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as
index cb9cd5d..45f461a 100644
--- a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as
+++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as
@@ -279,6 +279,10 @@ package org.apache.flex.text.html
{
lines.length = 0;
}
+ public function getRelativeStart(element:ContentElement):int
+ {
+ return 0;
+ }
}
}
\ No newline at end of file