You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2020/01/09 09:13:08 UTC
[royale-asjs.wiki] branch master updated: Updated Emulation
Components (markdown)
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/royale-asjs.wiki.git
The following commit(s) were added to refs/heads/master by this push:
new 0aae07e Updated Emulation Components (markdown)
0aae07e is described below
commit 0aae07eb42622fb9702848d5d92969026dfcf529
Author: aharui <ah...@apache.org>
AuthorDate: Thu Jan 9 01:13:03 2020 -0800
Updated Emulation Components (markdown)
---
Emulation-Components.md | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Emulation-Components.md b/Emulation-Components.md
index c48576b..0ad976c 100644
--- a/Emulation-Components.md
+++ b/Emulation-Components.md
@@ -8,8 +8,14 @@ This document has the following sections:
## Creating An Emulation Component
+There are two approaches to creating an emulation component. Which approach to choose depends on what the Flex code for the component looked like and whether there are existing HTML-based components or HTMLElements that can better implement the component than migrating all of that Flex code. For example, simple controls like Button and TextInput are better implemented as thin wrappers on HTMLElements. Even Panel and much of DataGrid and AdvancedDataGrid are better implemented on top o [...]
+
+But other components are "higher-level". They subclass or compose these components that wrap HTMLElements. Examples are Charts and Spark Form. There wasn't much Flash dependencies that would be hard to emulate and there weren't HTMLElements that could do the job better.
+
The plan is to quickly create classes with stubs for APIs we know our migrating users are using based on -api-reports sent in by these users. The current list is at the end of this page. The goal is not to try to get every line of code in an existing MX or Spark component to work in Royale. Instead, we just want to get the public APIs that are actually used to work.
+The rest of this document was written back when all we were doing is creating emulation components that wrapped HTMLElements. Lately, more and more components and features are being developed in a different approach. That approach is described in [Creating A High-level Emulation Component](creating-a-high-level-emulation-component)
+
But first, we want to try to get the migrating user's app to compile. So the process is to quickly create a class of the same package name and class name as the Flex component and either copy in Royale APIs (renaming if necessary), copying in the API from the flex-sdk repo (if it will work as is) or copying in the API from the flex-sdk repo and removing all of the code and leaving a TODO.
We have created an emulation of UIComponent and several components already. Emulation components don't have to retain their Flex class hierarchy if the intermediate ancestor classes are not directly used in user code. For example, mx:Application currently just subclasses Container instead of LayoutContainer. Really, the goal is to toss out as much Flex code as we possibly can and use Royale beads instead to implement the API. But we are copying APIs from flex-sdk in order to retain t [...]
@@ -2239,4 +2245,3 @@ We haven't finished any component yet. As we do so and better understand good p
-