Gen2 Components
From OpenLaszlo
Goals
Data-only
each component has its own self-contained data - not necessarily XML
name/value
attributes
text area, checkbox, radio button, etc..
name/value
list
array of data, managed by replicator
combobox
list of name/value pairs, selection
data grid
list of rows
list of lists
(maybe) dataset
hierarchy (tree, menubar/menus)
local dataset
Fresh Look
Common architecture for both, or two directions?
Clean, light, fast
css sprites/tiling/bitmap only?
Rich, heavier
drawviews?
Platform improvements
Runtime CSS
True CSS
Mixins
Composable
goes together
placement is key
Validation
presentation, e.g. animate/make room
data/type, e.g. number, date, text, empty, length
Skinnable (css)
vector descriptions invoked via CSS
written as methods
called in discreet order
background
foreground
border
highlight
can override procedural steps
Parameters
attributes
corner offsets for 3 piece, 9 piece
At least 2 skins
Fast/light
Richer
Ideally, can change CSS at runtime
Separate click region layer
Designer workflow
Illustrator -> SVG -> drawview?
Create high-level layers (background, outline)
Each layer is a list of drawing procedures
moveto, drawto, curveto, bezierto
relative/absolute
Define control points (3up, 9up)
Styling
Accessible (screen readers)
name
value
description
keyboard shortcut
tab order
state change notification
Auto-labeling
Modular
comes apart
Data-only
Built around mixins, replicator
Mixin/behavior-oriented
instead of superclasses where possible, e.g. with drawable, focusable, etc.
Rich base class
high-level events bound to visual cues
select
focus
accessibility
keyboard
Parametric
Attach behaviors to events
E.g. bounce
Size
color
highlight
little bits of code for styling
Hierarchical selection
Focus
Ordered tabbing
Directional navigation
Mousewheel
'soft' focus
Multitouch
Gestures
flash-only features exposed to DHTML
play audio/video
Set clipboard
Flash Super-cookie
Fuller component set
Flex 3 - from http://examples.adobe.com/flex3/componentexplorer/explorer.html Visual General Alert ColorPicker Combobox DataGrid HorizontalList HRule HScrollbar HSlider List NumericStepper ProgressBar Spacer TabBar TileList Tree VRule VScrollbar VSlider Button Button ButtonBar CheckBox LinkBar LinkButton PopupButton RadioButton RadioButtonGroup ToggleButtonBar Date DateChooser DateField Loader Image SWFLoader VideoDisplay Menu Menu MenuBar PopUpMenuButton Text Label RichTextEditor Text TextArea TextInput Containers Application Accordion ApplicationControlBar Box Canvas ControlBar DividedBox Form, FormHeading, FormItem Grid, GridItem, GridRow HBox HDividedBox Panel TabNavigator Tile TitleWindow VBox VDividedBox ViewStack Repeater Repeater Print Controls FlexPrintJob, PrintDataGrid Validators CreditCardValidator CurrencyValidator DateValidator EmailValidator NumberValidator PhoneNumberValidator RegExpValidator SocialSecurityValidator StringValidator Validator ZipCodeValidator Formatters CurrencyFormatter DateFormatter Formatter NumberFormatter PhoneFormatter SwitchSymbolFormatter ZipCodeFormatter Effects *AddItemActionEffect AnimateProperty Blur Dissolve Effect Fade Glow Iris Move Parallel Pause *RemoveItemActionEffect Resize Rotate Sequence SoundEffect WipeDown WipeLeft WipeRight WipeUp Zoom View States State Transitions Transition Chart controls AreaChart AxisRenderer BarChart BubbleChart CandlestickChart CategoryAxis ColumnChart DateTimeAxis GridLines HLOCChart Legend LinearAxis LineChart LogAxis PieChart PlotChart Chart Series AreaSeries BarSeries BubbleSeries CandlestickSeries ColumnSeries HLOCSeries LineSeries PieSeries PlotSeries Chart Effects SeriesInterpolate SeriesSlide SeriesZoom 'Adanced' Data Grid Tree with columns OLAPDataGrid CRUD grid List TBD Standard Button ... Extended Charting Timeline Map Calendar
Forms
As easy/easier than HTML
See http://maxcarlson.com/js/NS4_Obj.pdf for an API reference
Multistage processes
series of steps
IDE
Visual editing
Attributes exposed by importance/class
Avoid overwhelming devs with 1000 attributes with no way to know which are the most important
CSS
Color
lists
bitmaps
procedures?
Aspects - see http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html Application Background image background color background gradient colors background gradient alphas theme color text color Button Corner radius text indent text spacing padding highlight for off, over, down, up alphas, colors fill for off, over, down, up alphas, colors colors alternating highlight gridlines borders headers overall text rollover selected border theme font family size formatting
Combobox
background list view
APIs
Styling
Based on CSS
Javascript
Based on HTML forms
Name/value
List of name/value pairs with selection
Animators
Multiple tweens, dimensions
Easing function, a.k.a. motion
e.g. bounce, dampen
<mx:Sequence id="movePauseMove">
<mx:Move xBy="150" duration="2000" easingFunction="Bounce.easeOut"/>
<mx:Pause duration="2000"/>
<mx:Move xBy="-150" duration="2000" easingFunction="Bounce.easeIn"/>
</mx:Sequence>
Global manager
pause/play
maximum number of simultaneous animations
scaling factor
overall time
Parameters
Rate
Same feeling independent of distance
Duration
Same amount of time
Callbacks
on percent/time
Point generator
Used for animation and layouts
Use case
Physics layout
Mixins
drawable clickable trackable focusable accessible selectable
Containers/groups
what are the common features?
list
container of list items
layout, selection (toggle/multi), highlight
tab
row of tabs
layout, selection, highlight
h/vbox
layout
tree
container item
leaf item
radio
checkbox
buttongroup
Community
biggest gripes

