-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreadme.txt
132 lines (92 loc) · 5.14 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
======================================================================
UIComponent Behaviors - DEVELOPER INSTRUCTIONS
======================================================================
Thanks for checking out UIComponentBehaviors from Git. These instructions
detail how to get started with your freshly checked-out source tree.
These instructions are aimed at experienced developers looking to
participate in the development of UIComponentBehaviors.
If you are new to this project or would like to know more, read the
"GETTING START" note bellow.
======================================================================
ONE-TIME SETUP INSTRUCTIONS
======================================================================
We'll assume you typed the following to checkout UIComponentBehaviors
(if not, adjust the paths in the following instructions accordingly):
cd ~
git clone git@github.com:doublefx/UIComponentBehaviors.git
Next double-check you meet the installation requirements:
* A proper installation of a Flex IDE.
* A proper installation of Flex SDK 4.6 or above.
======================================================================
GIT POLICIES
======================================================================
When checking into Git, you must provide a commit message.
You should not commit any IDE file.
Try to avoid "git pull", as it creates lots of commit messages like
"Merge branch 'master'. You can avoid
this with "git pull --rebase". See the "Git Tips" below for advice.
======================================================================
GIT TIPS
======================================================================
Setup Git correctly before you do anything else:
git config --global user.name "My Name"
git config --global user.email myname@myemaildomain.com
Perform the initial checkout with this:
git clone git@github.com:doublefx/UIComponentBehaviors.git
Let's take the simple case where you just want to make a minor change
against master. You don't want a new branch etc, and you only want a
single commit to eventually show up in "git log". The easiest way is
to start your editing session with this:
git pull
That will give you the latest code. Go and edit files. Determine the
changes with:
git status
You can use "git add -A" if you just want to add everything you see.
Next you need to make a commit. Do this via:
git commit -e
The -e will cause an editor to load, allowing you to edit the message.
Every commit message should reflect the "Git Policies" above.
Now if nobody else has made any changes since your original "git
pull", you can simply type this:
git push origin
If the result is '[ok]', you're done. If the result is '[rejected]',
someone else beat you to it. The simplest way to workaround this is:
git pull --rebase
The --rebase option will essentially do a 'git pull', but then it will
reapply your commits again as if they happened after the 'git pull'.
This avoids verbose logs like "Merge branch 'master'".
If you're doing something non-trivial, it's best to create a branch.
Learn more about this at http://sysmonblog.co.uk/misc/git_by_example/.
======================================================================
GETTING START
======================================================================
This project is intended to be used by developpers who like to participate
to effort I started, splitting the Flex UIComponent classe into behaviors.
Before the first commit, I splitted UIComponent in 3 behaviors:
- IAutomationObject (automation)
- IStateClient2 (states, transitions, effects)
- IAdvancedStyleClient (styles)
The goal is to be able to plug behaviors into UIComponent at runtime with the
maximum of behaviors disabled by default, leaving the sub-classes enable it as
needed.
The UIComponent contructor looks like this:
public function UIComponent(statable:Boolean = STATABLE_ENABLED,
stylable:Boolean = STYLABLE_ENABLED, automatable:Boolean = AUTOMATION_ENABLED)
The basic methodology I used to do so, was to create a class per behavior,
implement the corresponding interface, look for the identicals functions
into UIComponents, copy it to the behavior class and use UIComponent as a
proxy (in some cases, there's a bit of refactorisation or optimization to do).
Note: I tried as well to simulate multiple inheritance using Mixins, even using
the Interface/Include technic but in AS3, it is not allowed to add getters/setters
to the prototype and even if, retrieving an entry thru it is 5X slower than
retrieving one using traits.
In order to shorten the build time, I use a monkey patch
technic to implements the features in UIComponent, this implies to set
-static-link-runtime-shared-libraries alias -static-rsls to true in the
compiler setting or, if you use FlashBuilder, to select 'merge into code'
option in the project properties, if you don't do it, the original
UIComponent class will be executed instead of the one of this project.
If you have any questions, thoughts, suggestions, please use the community support
mailing list at flex-dev@incubator.apache.org or my email address webdoublefx@gmail.com
with [UIComponentBehaviors] in the subject.
Thanks for your interest in UIComponentBehaviors!