You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2015/12/26 19:14:54 UTC
git commit: [flex-tlf] [refs/heads/develop] - Added support for
selection based operations when the selection is in a table cell (we need
test cases for this)
Repository: flex-tlf
Updated Branches:
refs/heads/develop 3c68f9128 -> 601f0977e
Added support for selection based operations when the selection is in a table cell
(we need test cases for this)
Project: http://git-wip-us.apache.org/repos/asf/flex-tlf/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-tlf/commit/601f0977
Tree: http://git-wip-us.apache.org/repos/asf/flex-tlf/tree/601f0977
Diff: http://git-wip-us.apache.org/repos/asf/flex-tlf/diff/601f0977
Branch: refs/heads/develop
Commit: 601f0977e419efcd510b8d7179de1ca291a3a477
Parents: 3c68f91
Author: Harbs <ha...@in-tools.com>
Authored: Sat Dec 26 20:14:48 2015 +0200
Committer: Harbs <ha...@in-tools.com>
Committed: Sat Dec 26 20:14:48 2015 +0200
----------------------------------------------------------------------
.../src/flashx/textLayout/edit/EditManager.as | 107 ++++++++++++++++++-
1 file changed, 102 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/601f0977/textLayout/src/flashx/textLayout/edit/EditManager.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/edit/EditManager.as b/textLayout/src/flashx/textLayout/edit/EditManager.as
index 28a45c6..ba04a61 100644
--- a/textLayout/src/flashx/textLayout/edit/EditManager.as
+++ b/textLayout/src/flashx/textLayout/edit/EditManager.as
@@ -35,7 +35,6 @@ package flashx.textLayout.edit
import flash.ui.Keyboard;
import flash.utils.getQualifiedClassName;
- import flashx.textLayout.tlf_internal;
import flashx.textLayout.compose.IFlowComposer;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.debug.Debugging;
@@ -87,6 +86,7 @@ package flashx.textLayout.edit
import flashx.textLayout.operations.SplitElementOperation;
import flashx.textLayout.operations.SplitParagraphOperation;
import flashx.textLayout.operations.UndoOperation;
+ import flashx.textLayout.tlf_internal;
import flashx.textLayout.utils.CharacterUtil;
import flashx.textLayout.utils.GeometryUtil;
import flashx.textLayout.utils.NavigationUtil;
@@ -1278,7 +1278,12 @@ package flashx.textLayout.edit
*/
public function deleteText(operationState:SelectionState = null):void
{
-
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).deleteText(operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1296,6 +1301,12 @@ package flashx.textLayout.edit
*/
public function deleteNextCharacter(operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).deleteNextCharacter(operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1332,6 +1343,12 @@ package flashx.textLayout.edit
*/
public function deleteNextWord(operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).deleteNextWord(operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if ((!operationState) || ((operationState.anchorPosition == operationState.activePosition) && (operationState.anchorPosition >= textFlow.textLength - 1)))
return;
@@ -1389,6 +1406,12 @@ package flashx.textLayout.edit
*/
public function deletePreviousCharacter(operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).deletePreviousCharacter(operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1476,6 +1499,12 @@ package flashx.textLayout.edit
*/
public function deletePreviousWord(operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).deletePreviousWord(operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1546,6 +1575,12 @@ package flashx.textLayout.edit
public function insertTableElement(table:TableElement, operationState:SelectionState = null):void
{
+ // handle insertions when a table cells is active. (nested tables probably do not work now though...)
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).insertTableElement(table, operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1564,6 +1599,12 @@ package flashx.textLayout.edit
*/
public function insertText(text:String, origOperationState:SelectionState = null):void
{
+ // handle insertions when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).insertText(text, origOperationState);
+ return;
+ }
// if there's another insert operation waiting to be executed,
// just add to it, if possible
if (origOperationState == null && pendingInsert)
@@ -1603,6 +1644,12 @@ package flashx.textLayout.edit
*/
public function overwriteText(text:String, operationState:SelectionState = null):void
{
+ // handle overwrites when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).overwriteText(text, operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1623,6 +1670,10 @@ package flashx.textLayout.edit
*/
public function insertInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):InlineGraphicElement
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ return (subManager as IEditManager).insertInlineGraphic(source, width, height, options, operationState);
+
operationState = defaultOperationState(operationState);
if (!operationState)
return null;
@@ -1642,6 +1693,12 @@ package flashx.textLayout.edit
*/
public function modifyInlineGraphic(source:Object, width:Object, height:Object, options:Object = null, operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).modifyInlineGraphic(source, width, height, options, operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1659,6 +1716,12 @@ package flashx.textLayout.edit
*/
public function applyFormat(leafFormat:ITextLayoutFormat, paragraphFormat:ITextLayoutFormat, containerFormat:ITextLayoutFormat, operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).applyFormat(leafFormat, paragraphFormat, containerFormat, operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1677,6 +1740,12 @@ package flashx.textLayout.edit
*/
public function clearFormat(leafFormat:ITextLayoutFormat, paragraphFormat:ITextLayoutFormat, containerFormat:ITextLayoutFormat, operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).clearFormat(leafFormat, paragraphFormat, containerFormat, operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1695,7 +1764,11 @@ package flashx.textLayout.edit
*/
public function applyLeafFormat(characterFormat:ITextLayoutFormat, operationState:SelectionState = null):void
{
- applyFormat(characterFormat, null, null, operationState);
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ (subManager as IEditManager).applyLeafFormat(characterFormat, operationState);
+ else
+ applyFormat(characterFormat, null, null, operationState);
}
/**
@@ -1709,7 +1782,11 @@ package flashx.textLayout.edit
*/
public function applyParagraphFormat(paragraphFormat:ITextLayoutFormat, operationState:SelectionState = null):void
{
- applyFormat(null, paragraphFormat, null, operationState);
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ (subManager as IEditManager).applyParagraphFormat(paragraphFormat, operationState);
+ else
+ applyFormat(null, paragraphFormat, null, operationState);
}
/**
@@ -1723,7 +1800,11 @@ package flashx.textLayout.edit
*/
public function applyContainerFormat(containerFormat:ITextLayoutFormat, operationState:SelectionState = null):void
{
- applyFormat(null, null, containerFormat, operationState);
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ (subManager as IEditManager).applyContainerFormat(containerFormat, operationState);
+ else
+ applyFormat(null, null, containerFormat, operationState);
}
/**
@@ -1770,6 +1851,10 @@ package flashx.textLayout.edit
*/
public function cutTextScrap(operationState:SelectionState = null):TextScrap
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ return (subManager as IEditManager).cutTextScrap(operationState);
+
operationState = defaultOperationState(operationState);
if (!operationState)
return null;
@@ -1799,6 +1884,12 @@ package flashx.textLayout.edit
*/
public function pasteTextScrap(scrapToPaste:TextScrap, operationState:SelectionState = null):void
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ {
+ (subManager as IEditManager).pasteTextScrap(scrapToPaste, operationState);
+ return;
+ }
operationState = defaultOperationState(operationState);
if (!operationState)
return;
@@ -1817,6 +1908,10 @@ package flashx.textLayout.edit
*/
public function applyTCY(tcyOn:Boolean, operationState:SelectionState = null):TCYElement
{
+ // handle when a table cells is active.
+ if(subManager && subManager is IEditManager)
+ return (subManager as IEditManager).applyTCY(tcyOn, operationState);
+
operationState = defaultOperationState(operationState);
if (!operationState)
return null;
@@ -1926,6 +2021,7 @@ package flashx.textLayout.edit
*/
public function beginCompositeOperation():void
{
+ // not sure if there's issues with composite operations and tables
flushPendingOperations();
if (!parentStack)
@@ -1958,6 +2054,7 @@ package flashx.textLayout.edit
*/
public function endCompositeOperation():void
{
+ // not sure if there's issues with composite operations and tables
CONFIG::debug { assert( parentStack.length > 0 || captureLevel <= 0, "EditManager.endOperation - no composite operation in progress"); }
--captureLevel;