This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new aca40b3 More emulation stubs
new b385ef0 Merge branch 'develop' of
https://github.com/apache/royale-asjs into develop
aca40b3 is described below
commit aca40b3ff4d14ba5a6eb484ea93c719f1e17d660
Author: Yishay Weiss <[email protected]>
AuthorDate: Sun Oct 25 13:31:44 2020 +0000
More emulation stubs
---
.../src/main/royale/mx/controls/DataGrid.as | 149 ++++++++++++++++++++-
.../src/main/royale/mx/managers/FocusManager.as | 24 ++++
.../main/royale/spark/components/NumericStepper.as | 12 ++
.../src/main/royale/spark/components/TextArea.as | 4 +
.../components/supportClasses/ItemRenderer.as | 56 ++++----
.../src/main/royale/spark/effects/Fade.as | 2 +
.../main/royale/spark/events/IndexChangeEvent.as | 2 +-
7 files changed, 219 insertions(+), 30 deletions(-)
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as
index ef62ec5..637e11b 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DataGrid.as
@@ -50,7 +50,6 @@ import mx.controls.dataGridClasses.DataGridHeader;
import mx.controls.dataGridClasses.DataGridItemRenderer;
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.IDropInListItemRenderer;
-import mx.controls.listClasses.IListItemRenderer;
import mx.controls.listClasses.ListBaseContentHolder;
import mx.controls.listClasses.ListBaseSeekPending;
import mx.controls.listClasses.ListRowInfo;
@@ -92,6 +91,7 @@ import mx.utils.StringUtil;
use namespace mx_internal;
*/
+import mx.controls.listClasses.IListItemRenderer;
import mx.core.UIComponent;
import mx.controls.beads.DataGridSortBead;
import mx.controls.dataGridClasses.DataGridColumn;
@@ -801,6 +801,153 @@ public class DataGrid extends
DataGridListBase/*ListBase*/ implements IDataGrid/
*/
public var sortableColumns:Boolean = true;
+
+ /**
+ * Returns the item renderer for a column cell or for a column header.
+ * This method returns the default item renderer if no custom render is
assigned
+ * to the column.
+ *
+ * <p>This method is public so that is can be accessed by the
DataGridHeader class,
+ * and is primarily used in subclasses of the DataGrid control.</p>
+ *
+ * @param c The DataGridColumn instance of the item renderer.
+ *
+ * @param forHeader <code>true</code> to return the header item renderer,
+ * and <code>false</code> to return the item render for the column cells.
+ *
+ * @param data If <code>forHeader</code> is <code>false</code>,
+ * the <code>data</code> Object for the item renderer.
+ * If <code>forHeader</code> is <code>true</code>,
+ * the DataGridColumn instance.
+ *
+ * @return The item renderer.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function createColumnItemRenderer(c:DataGridColumn,
forHeader:Boolean, data:Object):IListItemRenderer // not implemented
+ {
+ //var factory:IFactory;
+//
+ //// get the factory for the data
+ //factory = c.getItemRendererFactory(forHeader, data);
+ //if (!factory)
+ //{
+ //if (data == null)
+ //factory = nullItemRenderer;
+ //if (!factory)
+ //factory = itemRenderer;
+ //}
+//
+ //var renderer:IListItemRenderer;
+//
+ //// if it is the default column factory, see if
+ //// the freeItemRenderersTable has a free one
+ //if (factory == c.itemRenderer)
+ //{
+ //if (freeItemRenderersTable[c] &&
freeItemRenderersTable[c].length)
+ //{
+ //renderer = freeItemRenderersTable[c].pop();
+ //delete c.freeItemRenderersByFactory[factory][renderer];
+ //}
+ //}
+ //else if (c.freeItemRenderersByFactory)
+ //{
+ //// other re-usable renderers are in the FactoryMap
+ //var d:Dictionary = c.freeItemRenderersByFactory[factory];
+ //if (d)
+ //{
+ //for (var p:* in d)
+ //{
+ //renderer = IListItemRenderer(p);
+ //delete d[p];
+ //break;
+ //}
+ //}
+ //}
+//
+ //if (!renderer )
+ //{
+ //renderer = factory.newInstance();
+ //if (renderer)
+ //{
+ //renderer.styleName = c;
+ //factoryMap[renderer] = factory;
+ //}
+ //}
+//
+//
+ //if (renderer)
+ //renderer.owner = this;
+ //return renderer;
+ return null;
+ }
+
+
+ /**
+ * This method closes an item editor currently open on an item renderer.
+ * You typically only call this method from within the event listener
+ * for the <code>itemEditEnd</code> event, after
+ * you have already called the <code>preventDefault()</code> method to
+ * prevent the default event listener from executing.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function destroyItemEditor():void // not implemented
+ {
+ //// trace("destroyItemEditor");
+ //if (itemEditorInstance)
+ //{
+
//DisplayObject(itemEditorInstance).removeEventListener(KeyboardEvent.KEY_DOWN,
editorKeyDownHandler);
+ //if (focusManager)
+ //focusManager.defaultButtonEnabled = true;
+ //systemManager.getSandboxRoot().
+ //removeEventListener(MouseEvent.MOUSE_DOWN,
editorMouseDownHandler, true);
+ //systemManager.getSandboxRoot().
+ //removeEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,
editorMouseDownHandler);
+ //systemManager.removeEventListener(Event.RESIZE,
editorAncestorResizeHandler);
+ //removeEventListener(Event.RESIZE, editorAncestorResizeHandler);
+//
+ //var event:DataGridEvent =
+ //new DataGridEvent(DataGridEvent.ITEM_FOCUS_OUT);
+ //event.columnIndex = _editedItemPosition.columnIndex;
+ //event.rowIndex = _editedItemPosition.rowIndex;
+ //event.itemRenderer = itemEditorInstance;
+ //dispatchEvent(event);
+//
+ //if (! _columns[_editedItemPosition.columnIndex].rendererIsEditor)
+ //{
+ //// FocusManager.removeHandler() does not find
+ //// itemEditors in focusableObjects[] array
+ //// and hence does not remove the focusRectangle
+ //if (itemEditorInstance && itemEditorInstance is UIComponent)
+ //UIComponent(itemEditorInstance).drawFocus(false);
+//
+ //// setfocus back to us so something on stage has focus
+ //// only if focus is null or is in this DG
+ //var focusComp:InteractiveObject = getFocus();
+ //if (focusComp == null || contains(focusComp))
+ //deferFocus();
+ //
+ //// defer focus can cause focusOutHandler to destroy the
editor
+ //// and make itemEditorInstance null
+ //if (itemEditorInstance)
+ //{
+ //// must call removeChild() so FocusManager.lastFocus
becomes null
+
//actualContentHolder.removeChild(DisplayObject(itemEditorInstance));
+ //editedItemRenderer.visible = true;
+ //}
+ //}
+ //itemEditorInstance = null;
+ //_editedItemPosition = null;
+ //}
+ }
+
protected function drawRowBackground(s:UIComponent, rowIndex:int,
y:Number, height:Number, color:uint, dataIndex:int):void
{
// not implemented
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/FocusManager.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/FocusManager.as
index 82e22c8..9358bc9 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/FocusManager.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/FocusManager.as
@@ -2406,6 +2406,30 @@ public class FocusManager extends EventDispatcher
implements IFocusManager
dispatchEvent(new Event("setFocus"));
// trace("FM set focus");
}
+
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function hideFocus():void // not implemented
+ {
+ // trace("FOcusManger " + this + " Hide Focus");
+ /*
+ if (showFocusIndicator)
+ {
+ showFocusIndicator = false;
+ if (_lastFocus)
+ _lastFocus.drawFocus(false);
+ }
+ */
+ // trace("END FOcusManger Hide Focus");
+ }
+
}
}
diff --git
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/NumericStepper.as
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/NumericStepper.as
index 6b9afec..00fa172 100644
---
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/NumericStepper.as
+++
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/NumericStepper.as
@@ -30,6 +30,7 @@ import flash.events.KeyboardEvent; */
import mx.core.mx_internal;
import mx.events.FlexEvent;
import mx.managers.IFocusManagerComponent;
+import spark.components.TextInput;
//import spark.formatters.NumberFormatter;
import spark.components.supportClasses.Range;
@@ -313,6 +314,17 @@ public class NumericStepper extends Range
* @productversion Flex 4
*/
//public var textDisplay:TextInput;
+ private var _textDisplay:TextInput;
+ public function get textDisplay():TextInput
+ {
+ // not implemented - TODO create spark view that has an
accessible text input
+ if (!_textDisplay)
+ {
+ _textDisplay = new TextInput();
+ }
+ return _textDisplay;
+ }
+
//--------------------------------------------------------------------------
//
diff --git
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/TextArea.as
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/TextArea.as
index a2a1a0c..06368ed 100644
---
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/TextArea.as
+++
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/TextArea.as
@@ -763,6 +763,10 @@ package spark.components
// textDisplay.scrollToRange(anchorPosition,
activePosition);
}
+
+ public function set horizontalScrollPolicy(value:String):void
{} // not implemented
+ public function set verticalScrollPolicy(value:String):void {}
// not implemented
+
}
}
diff --git
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ItemRenderer.as
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ItemRenderer.as
index 63e1a42..5861746 100644
---
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ItemRenderer.as
+++
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/ItemRenderer.as
@@ -726,44 +726,44 @@ public class ItemRenderer extends DataRenderer implements
IItemRenderer
* @playerversion AIR 1.5
* @productversion Royale 0.9.4
*/
- /* protected function getCurrentRendererState():String
+ protected function getCurrentRendererState():String // not implemented
{
// this code is pretty confusing without multi-dimensional states, but
it's
// defined in order of precedence.
- if (dragging && hasState("dragging"))
- return "dragging";
-
- if (selected && down && hasState("downAndSelected"))
- return "downAndSelected";
-
- if (selected && showsCaret && hasState("selectedAndShowsCaret"))
- return "selectedAndShowsCaret";
-
- if (hovered && showsCaret && hasState("hoveredAndShowsCaret"))
- return "hoveredAndShowsCaret";
-
- if (showsCaret && hasState("normalAndShowsCaret"))
- return "normalAndShowsCaret";
-
- if (down && hasState("down"))
- return "down";
-
- if (selected && hasState("selected"))
- return "selected";
-
- if (hovered && hasState("hovered"))
- return "hovered";
-
- if (hasState("normal"))
- return "normal";
+ //if (dragging && hasState("dragging"))
+ //return "dragging";
+ //
+ //if (selected && down && hasState("downAndSelected"))
+ //return "downAndSelected";
+ //
+ //if (selected && showsCaret && hasState("selectedAndShowsCaret"))
+ //return "selectedAndShowsCaret";
+ //
+ //if (hovered && showsCaret && hasState("hoveredAndShowsCaret"))
+ //return "hoveredAndShowsCaret";
+ //
+ //if (showsCaret && hasState("normalAndShowsCaret"))
+ //return "normalAndShowsCaret";
+ //
+ //if (down && hasState("down"))
+ //return "down";
+ //
+ //if (selected && hasState("selected"))
+ //return "selected";
+ //
+ //if (hovered && hasState("hovered"))
+ //return "hovered";
+ //
+ //if (hasState("normal"))
+ //return "normal";
// If none of the above states are defined in the item renderer,
// we return currentState, so we don't change the state just
// in case the developer put the item renderer into its
// own custom state.
return currentState;
- } */
+ }
/**
* Marks the renderer's state as invalid so that the new state is set
diff --git
a/frameworks/projects/SparkRoyale/src/main/royale/spark/effects/Fade.as
b/frameworks/projects/SparkRoyale/src/main/royale/spark/effects/Fade.as
index 1e562fe..46cc3cd 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/effects/Fade.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/effects/Fade.as
@@ -27,5 +27,7 @@ import mx.effects.Fade;
public class Fade extends mx.effects.Fade
{
public function set targets(value:Array):void {} // not implemented
+ public function get isPlaying():Boolean {return false} // not
implemented
+ public function get playheadTime():Number {return NaN} // not
implemented
}
}
diff --git
a/frameworks/projects/SparkRoyale/src/main/royale/spark/events/IndexChangeEvent.as
b/frameworks/projects/SparkRoyale/src/main/royale/spark/events/IndexChangeEvent.as
index a20b2a1..5bc4222 100644
---
a/frameworks/projects/SparkRoyale/src/main/royale/spark/events/IndexChangeEvent.as
+++
b/frameworks/projects/SparkRoyale/src/main/royale/spark/events/IndexChangeEvent.as
@@ -114,7 +114,7 @@ public class IndexChangeEvent extends Event
* @playerversion AIR 1.5
* @productversion Royale 0.9.4
*/
- //public static const CHANGING:String = "changing";
+ public static const CHANGING:String = "changing"; // not implemented
/**
* The <code>IndexChangeEvent.CARET_CHANGE</code> constant defines the
value of the