Home Page Icon
Home Page
Table of Contents for
Index
Close
Index
by Tyler Keating
SproutCore Web Application Development
SproutCore Web Application Development
Table of Contents
SproutCore Web Application Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Introducing SproutCore
Understanding the SproutCore approach
Knowing when SproutCore is the right choice
Building your first SproutCore application
Installing SproutCore
Installing Ruby
Installing the SproutCore gem
Creating a project
Adding an app to the project
Designing your user interface
Modeling your data
Connecting it all together
Working with user input
Summary
2. The Runtime Environment
Building on SproutCore's object model
Using mixins to share functionality
Working with properties and computed properties
Observing properties for instant updates
Binding properties for error-free consistency
Working with enumerables
SC.Array
SC.Set
Observing enumerables
Observing properties on enumerable items
Understanding the run loop
Summary
3. The View Layer
MVC in SproutCore
Understanding the View layer
Becoming familiar with SC.View and SC.Pane
Organizing panes using SC.Page
Laying out views
Adjusting the layout
Animating the layout
Styling views
Rendering custom views
Updating custom views
Responding to user events in custom views
Summary
4. The Model Layer
Understanding the Model and Data Interface layers
Introducing the data store
Defining your data model
Creating custom attribute properties
Defining record relationships
Following the life cycle of SC.Record
Loaded records (READY_CLEAN)
Unloaded records (EMPTY)
To be read records (BUSY_LOADING and BUSY_REFRESH)
To be created records (READY_NEW)
To be updated records (READY_DIRTY)
To be destroyed records (DESTROYED_DIRTY)
Querying the store
Synchronizing data with a remote data source
Implementing remote data source adaptors
Reading records
Creating, updating, and destroying records
Summary
5. The Controller Layer
Understanding the Controller and Application State layers
Working with SproutCore's controllers
SC.ArrayController
SC.TreeController
Designing with statecharts
Avoiding pitfalls with statecharts
Coding with statecharts
Summary
6. Testing, Building, and Deploying
Unit testing SproutCore apps
Viewing unit test results
Using frameworks and modules
Building and deploying apps
Additional configuration options
Summary
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
Summary
Index
A
ace class /
Styling views
addContact action /
Working with user input
addGroup function /
Working with user input
adjust method /
Adjusting the layout
animate method /
Animating the layout
app
adding, to project /
Adding an app to the project
application
Loading state /
Designing with statecharts
Ready state /
Designing with statecharts
Edit state /
Designing with statecharts
Saving state /
Designing with statecharts
Application State layer
about /
Understanding the Controller and Application State layers
apps
building /
Building and deploying apps
deploying /
Building and deploying apps
apps/ directory /
Adding an app to the project
arrangedObjects property /
SC.ArrayController
,
SC.TreeController
B
$build_number option /
Additional configuration options
bar object /
Binding properties for error-free consistency
BlackPlays /
Designing with statecharts
bool() /
Binding properties for error-free consistency
border attribute /
Laying out views
borderLeft attribute /
Laying out views
borderRight attribute /
Laying out views
Buildfile /
Adding an app to the project
,
Using frameworks and modules
BUSY_LOADING state /
To be read records (BUSY_LOADING and BUSY_REFRESH)
BUSY_REFRESH state /
To be read records (BUSY_LOADING and BUSY_REFRESH)
C
cacheable() function /
Working with properties and computed properties
Cascading Style Sheets (CSS) /
Understanding the View layer
childViews array /
Becoming familiar with SC.View and SC.Pane
childViews property /
Becoming familiar with SC.View and SC.Pane
class attribute /
Styling views
classNames property /
Styling views
commitRecord method /
Synchronizing data with a remote data source
Compass framework
URL /
Styling views
computed properties
working with /
Working with properties and computed properties
configuration options /
Additional configuration options
contacts/ directory /
Adding an app to the project
contacts attribute /
Modeling your data
content object /
Observing properties for instant updates
Controller layer
about /
Understanding the Controller and Application State layers
controlSize property /
Designing your user interface
core.js /
Adding an app to the project
Create-Read-Update-Destroy (CRUD) /
Synchronizing data with a remote data source
Create Account button /
Organizing panes using SC.Page
create method /
Building on SproutCore's object model
custom attribute properties
creating /
Creating custom attribute properties
custom views
rendering /
Rendering custom views
updating /
Updating custom views
user events, responding to /
Responding to user events in custom views
D
data
modeling /
Modeling your data
synchronizing, with remote data source /
Synchronizing data with a remote data source
Data Interface layer
about /
Understanding the Model and Data Interface layers
data model
about /
Defining your data model
dataSource property /
Implementing remote data source adaptors
data store
about /
Introducing the data store
defaultValue option /
Defining your data model
Deferred module /
Using frameworks and modules
design method /
Becoming familiar with SC.View and SC.Pane
DESTROYED_DIRTY state /
To be destroyed records (DESTROYED_DIRTY)
destroy method /
Building on SproutCore's object model
destroyMixin function /
Using mixins to share functionality
destroyRecord method /
To be destroyed records (DESTROYED_DIRTY)
destroyRecords method /
To be destroyed records (DESTROYED_DIRTY)
didLoad event /
Designing with statecharts
displayOrder value /
Working with SproutCore's controllers
displayPrice property /
To be created records (READY_NEW)
display_price attribute /
To be created records (READY_NEW)
E
Edit state /
Designing with statecharts
employees attribute /
SC.TreeController
EMPTY state /
Unloaded records (EMPTY)
enumerables
working with /
Working with enumerables
SC.Array /
SC.Array
SC.Set /
SC.Set
observing /
Observing enumerables
properties, observing on /
Observing properties on enumerable items
error-free consistency
properties, binding for /
Binding properties for error-free consistency
example code
downloading /
Designing your user interface
extend method /
Building on SproutCore's object model
F
find method /
To be read records (BUSY_LOADING and BUSY_REFRESH)
fixtures directory /
Modeling your data
foo object /
Binding properties for error-free consistency
frameworks
using /
Using frameworks and modules
fullName property /
Working with properties and computed properties
,
Observing properties for instant updates
,
Working with SproutCore's controllers
,
Viewing unit test results
functionality
sharing, mixins used /
Using mixins to share functionality
G
get instance /
Working with properties and computed properties
guid attribute /
Modeling your data
H
helper method /
Defining your data model
Hubbub /
Binding properties for error-free consistency
I
IDE /
Becoming familiar with SC.View and SC.Pane
includeAddress property /
Querying the store
initialSubstate property /
Coding with statecharts
init method /
Building on SproutCore's object model
initMixin function /
Using mixins to share functionality
Inlined module /
Using frameworks and modules
inverse option /
Defining record relationships
invokeLast(func) method /
Understanding the run loop
invokeLater /
Understanding the run loop
invokeLater(func, interval) method /
Understanding the run loop
invokeNext(func) method /
Understanding the run loop
invokeOnce(func) method /
Understanding the run loop
isBorrowed property /
Binding properties for error-free consistency
isMaster option /
Defining record relationships
isNull() /
Binding properties for error-free consistency
isSaving flag /
Designing with statecharts
Item class /
Observing properties for instant updates
K
key option /
Defining your data model
KVO
about /
Working with enumerables
L
lastName property /
Working with properties and computed properties
layerId property /
Styling views
layout
adjusting /
Adjusting the layout
animating /
Animating the layout
layout property /
Laying out views
Loading state /
Designing with statecharts
loadRecord method /
Loaded records (READY_CLEAN)
LogIn state /
Designing with statecharts
M
main.js file /
Adding an app to the project
mainPane property /
Organizing panes using SC.Page
Match state /
Designing with statecharts
mixins
used, to share functionality /
Using mixins to share functionality
Model-View-Controller (MVC) /
Knowing when SproutCore is the right choice
Model layer
about /
Understanding the Model and Data Interface layers
models directory /
Modeling your data
module() /
Unit testing SproutCore apps
modules
using /
Using frameworks and modules
Inlined module /
Using frameworks and modules
Prefetched module /
Using frameworks and modules
Deferred module /
Using frameworks and modules
multiple() /
Binding properties for error-free consistency
MVC
used, in SproutCore /
MVC in SproutCore
MVVM
about /
MVC in SproutCore
my-app class /
Styling views
MyApp.Calendar record /
Defining your data model
MyApp.userController.content object /
Observing properties for instant updates
MyApp.Vehicle class /
Building on SproutCore's object model
,
Using mixins to share functionality
myObject.invokeLast() /
Understanding the run loop
N
name property /
Updating custom views
name value /
Querying the store
not() /
Binding properties for error-free consistency
notEmpty() /
Binding properties for error-free consistency
notNull() /
Binding properties for error-free consistency
O
observes() function /
Observing properties for instant updates
observes function /
Observing properties for instant updates
opacity attribute /
Laying out views
orderBy property /
Querying the store
orderBy value /
SC.ArrayController
P
panes
organizing, SC.Page used /
Organizing panes using SC.Page
parameters object /
Querying the store
parentView property /
Becoming familiar with SC.View and SC.Pane
pitfalls
avoiding, with statecharts /
Avoiding pitfalls with statecharts
plugin method /
Coding with statecharts
Prefetched module /
Using frameworks and modules
primaryKey property /
Defining your data model
primaryKey value /
Defining your data model
project
creating /
Creating a project
app, adding to /
Adding an app to the project
properties
working with /
Working with properties and computed properties
observing, for instant updates /
Observing properties for instant updates
binding, for error-free consistency /
Binding properties for error-free consistency
observing, on enumerable items /
Observing properties on enumerable items
property() /
Working with properties and computed properties
property() function /
Working with properties and computed properties
Q
QUnit
URL /
Unit testing SproutCore apps
R
ReadyNoSession state /
Avoiding pitfalls with statecharts
ReadySession state /
Avoiding pitfalls with statecharts
Ready state /
Designing with statecharts
READY_CLEAN state /
Loaded records (READY_CLEAN)
READY_DIRTY state /
To be updated records (READY_DIRTY)
READY_NEW state /
To be created records (READY_NEW)
record class /
Defining your data model
recordDidChange method /
To be updated records (READY_DIRTY)
record relationships
about /
Defining record relationships
records
loading /
Loaded records (READY_CLEAN)
unloading /
Unloaded records (EMPTY)
creating /
To be created records (READY_NEW)
,
Creating, updating, and destroying records
updating /
To be updated records (READY_DIRTY)
,
Creating, updating, and destroying records
destroying /
To be destroyed records (DESTROYED_DIRTY)
,
Creating, updating, and destroying records
reading /
Reading records
refreshQuery method /
Querying the store
refreshRecord method /
To be read records (BUSY_LOADING and BUSY_REFRESH)
Reload button /
Viewing unit test results
remote data source
data, synchronizing with /
Synchronizing data with a remote data source
adaptors, implementing /
Implementing remote data source adaptors
render function /
Rendering custom views
,
Updating custom views
render method /
Rendering custom views
resources/ directory /
Adding an app to the project
resources/loading.rhtml file /
Adding an app to the project
resources/main_page.css style sheet /
Adding an app to the project
resources/main_page.js file /
Adding an app to the project
resources/theme.js file /
Adding an app to the project
resources/_theme.css style sheet /
Adding an app to the project
Resources directory /
Organizing panes using SC.Page
resumeMatch action /
Coding with statecharts
retrieveRecords method /
Reading records
rootState property /
Coding with statecharts
Ruby
installing /
Installing Ruby
URL /
Installing Ruby
run loop
about /
Understanding the run loop
invokeOnce(func) method /
Understanding the run loop
invokeLast(func) method /
Understanding the run loop
invokeNext(func) method /
Understanding the run loop
invokeLater(func, interval) method /
Understanding the run loop
S
Sass
URL /
Styling views
saved event /
Designing with statecharts
Saving state /
Designing with statecharts
sc-view class /
Styling views
SC.AceTheme instance /
Adding an app to the project
SC.Application instance /
Adding an app to the project
SC.Array /
SC.Array
SC.ArrayController /
SC.ArrayController
SC.Array instance /
SC.Array
SC.Color object /
Creating custom attribute properties
SC.Controller class /
Working with SproutCore's controllers
SC.DateTime object /
Defining your data model
SC.Enumerable interface /
Working with enumerables
SC.MainPane class /
Organizing panes using SC.Page
SC.Object class /
Working with SproutCore's controllers
SC.Object instance /
Building on SproutCore's object model
,
Understanding the run loop
SC.Page
used, for organizing panes /
Organizing panes using SC.Page
SC.Pane
about /
Becoming familiar with SC.View and SC.Pane
SC.Query.remote helper method /
Querying the store
SC.Record
life cycle /
Following the life cycle of SC.Record
records, loading /
Loaded records (READY_CLEAN)
records, unloading /
Unloaded records (EMPTY)
to be read records /
To be read records (BUSY_LOADING and BUSY_REFRESH)
records, creating /
To be created records (READY_NEW)
records, updating /
To be updated records (READY_DIRTY)
records, destroying /
To be destroyed records (DESTROYED_DIRTY)
SC.run() /
Understanding the run loop
SC.Set /
SC.Set
SC.Set instance /
SC.Set
SC.State function /
Coding with statecharts
SC.Theme instance /
Adding an app to the project
SC.TreeController /
SC.TreeController
SC.View
about /
Becoming familiar with SC.View and SC.Pane
scores property /
Building on SproutCore's object model
SCQL
about /
Querying the store
sc_static() /
Designing your user interface
sc_super() function /
Building on SproutCore's object model
showLogIn pane action /
Avoiding pitfalls with statecharts
showMainPane action /
Avoiding pitfalls with statecharts
single() /
Binding properties for error-free consistency
SproutCore
about /
Understanding the SproutCore approach
using /
Knowing when SproutCore is the right choice
installing /
Installing SproutCore
Ruby, installing /
Installing Ruby
gem, installing /
Installing the SproutCore gem
project, creating /
Creating a project
app, adding to project /
Adding an app to the project
user interface, designing /
Designing your user interface
data, modeling /
Modeling your data
user input /
Working with user input
MVC, using /
MVC in SproutCore
SproutCore's object model
building on /
Building on SproutCore's object model
SproutCore application
layers /
MVC in SproutCore
SproutCore apps
unit testing, using /
Unit testing SproutCore apps
SproutCore controllers
working with /
Working with SproutCore's controllers
SC.ArrayController /
SC.ArrayController
SC.TreeController /
SC.TreeController
SproutCore demos
URL /
SC.TreeController
SproutCore gem
installing /
Installing the SproutCore gem
sproutcore gen command /
Creating a project
,
Adding an app to the project
SproutCore Guides
URL /
Additional configuration options
SproutCore Showcase page
URL /
Designing your user interface
startAt property /
Defining your data model
statecharts
designing with /
Designing with statecharts
pitfalls, avoiding with /
Avoiding pitfalls with statecharts
coding with /
Coding with statecharts
states directory /
Coding with statecharts
static directory /
Building and deploying apps
store
querying /
Querying the store
storeKey value /
Loaded records (READY_CLEAN)
String attribute /
Defining your data model
T
$theme variable /
Adding an app to the project
$title option /
Additional configuration options
<title> element /
Additional configuration options
tagName property /
Styling views
targetObject.logInModuleDidLoad() function /
Using frameworks and modules
test() function /
Unit testing SproutCore apps
Test Runner app /
Viewing unit test results
tests directory /
Modeling your data
title attribute /
Defining your data model
tmp directory /
Building and deploying apps
to be read records /
To be read records (BUSY_LOADING and BUSY_REFRESH)
topSpeed property /
Using mixins to share functionality
toString() /
Modeling your data
,
Connecting it all together
toString method /
Defining record relationships
trace property /
Coding with statecharts
transform function /
Binding properties for error-free consistency
U
unit testing
used, for SproutCore apps /
Unit testing SproutCore apps
unit test results
viewing /
Viewing unit test results
unloadRecord method /
To be destroyed records (DESTROYED_DIRTY)
unloadRecords method /
To be destroyed records (DESTROYED_DIRTY)
update method /
Updating custom views
updates
properties, observing for /
Observing properties for instant updates
updateServer() function /
Observing properties for instant updates
userController object /
Observing properties for instant updates
user input
working with /
Working with user input
user interface
designing /
Designing your user interface
User Interface (UI) /
Understanding the View layer
V
View layer
about /
Understanding the View layer
views
laying out /
Laying out views
layout, adjusting /
Adjusting the layout
layout, animating /
Animating the layout
styling /
Styling views
W
WhitePlays /
Designing with statecharts
Z
zIndex attribute /
Laying out views
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset