sproutcore 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest.txt CHANGED
@@ -14,8 +14,10 @@ clients/sc_docs/english.lproj/no_docs.rhtml
14
14
  clients/sc_docs/english.lproj/strings.js
15
15
  clients/sc_docs/english.lproj/tabs.rhtml
16
16
  clients/sc_docs/fixtures/doc.js
17
+ clients/sc_docs/HISTORY
17
18
  clients/sc_docs/main.js
18
19
  clients/sc_docs/models/doc.js
20
+ clients/sc_docs/README
19
21
  clients/sc_docs/tests/controllers/docs.rhtml
20
22
  clients/sc_docs/tests/models/doc.rhtml
21
23
  clients/sc_docs/tests/views/doc_frame.rhtml
@@ -35,14 +37,22 @@ clients/sc_test_runner/english.lproj/images/toolbar.png
35
37
  clients/sc_test_runner/english.lproj/no_tests.rhtml
36
38
  clients/sc_test_runner/english.lproj/strings.js
37
39
  clients/sc_test_runner/fixtures/test.js
40
+ clients/sc_test_runner/HISTORY
38
41
  clients/sc_test_runner/main.js
39
42
  clients/sc_test_runner/models/test.js
43
+ clients/sc_test_runner/README
40
44
  clients/sc_test_runner/views/runner_frame.js
41
45
  clients/sc_test_runner/views/test_label.js
46
+ clients/view_builder/core.js
47
+ clients/view_builder/english.lproj/body.css
48
+ clients/view_builder/english.lproj/body.rhtml
49
+ clients/view_builder/english.lproj/strings.js
50
+ clients/view_builder/main.js
42
51
  config/hoe.rb
43
52
  config/requirements.rb
53
+ frameworks/prototype/HISTORY
44
54
  frameworks/prototype/prototype.js
45
- frameworks/sproutcore/animation/animation.js
55
+ frameworks/prototype/README
46
56
  frameworks/sproutcore/controllers/array.js
47
57
  frameworks/sproutcore/controllers/collection.js
48
58
  frameworks/sproutcore/controllers/controller.js
@@ -98,7 +108,6 @@ frameworks/sproutcore/foundation/routes.js
98
108
  frameworks/sproutcore/foundation/run_loop.js
99
109
  frameworks/sproutcore/foundation/server.js
100
110
  frameworks/sproutcore/foundation/set.js
101
- frameworks/sproutcore/foundation/sorted_set.js
102
111
  frameworks/sproutcore/foundation/string.js
103
112
  frameworks/sproutcore/foundation/timer.js
104
113
  frameworks/sproutcore/foundation/undo_manager.js
@@ -107,6 +116,7 @@ frameworks/sproutcore/foundation/utils.js
107
116
  frameworks/sproutcore/globals/panels.js
108
117
  frameworks/sproutcore/globals/popups.js
109
118
  frameworks/sproutcore/globals/window.js
119
+ frameworks/sproutcore/HISTORY
110
120
  frameworks/sproutcore/lib/button_views.rb
111
121
  frameworks/sproutcore/lib/collection_view.rb
112
122
  frameworks/sproutcore/lib/core_views.rb
data/bin/sc-build CHANGED
@@ -14,6 +14,9 @@ APP_ROOT = File.expand_path(Dir.pwd)
14
14
  SC_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
15
15
  $:.unshift File.join(SC_ROOT,'lib') ;
16
16
 
17
+ # Set String encoding to Unicode
18
+ $KCODE = 'u'
19
+
17
20
  # Require SproutCore
18
21
  require 'rubygems'
19
22
  require 'rubigen'
data/bin/sc-gen CHANGED
@@ -11,6 +11,9 @@ SC_ROOT = APP_ROOT
11
11
 
12
12
  $:.unshift File.join(SC_ROOT,'lib') ;
13
13
 
14
+ # Set String encoding to Unicode
15
+ $KCODE = 'u'
16
+
14
17
  # Require SproutCore
15
18
  require 'rubygems'
16
19
  require 'rubigen'
data/bin/sc-server CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Set String encoding to Unicode
4
+ $KCODE = 'u'
5
+
3
6
  APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
4
7
  $:.unshift File.join(APP_ROOT,'lib') ;
5
8
 
data/bin/sproutcore CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Set String encoding to Unicode
4
+ $KCODE = 'u'
5
+
3
6
  require 'rubygems'
4
7
  require 'rubigen'
5
8
 
@@ -0,0 +1,3 @@
1
+ == sproutcore-doctool
2
+
3
+ * Initial Commit to Git
@@ -0,0 +1,6 @@
1
+ SproutCore Doc Tool
2
+
3
+ The SproutCore build tools include built in support for inline documentation.
4
+ You can use this client application to browse the documentation generated for your clients and frameworks.
5
+
6
+ To access this tool, just visit http://localhost:4020/your-app-name/-docs
@@ -0,0 +1,3 @@
1
+ === 5-21-2008
2
+
3
+ Initial commit to Git.
@@ -0,0 +1,4 @@
1
+ SproutCore has built-in support for unit testing. You use this client application to run tests in your application by visiting:
2
+
3
+ http://localhost:4020/your-app-name/-tests
4
+
@@ -0,0 +1,19 @@
1
+ // ==========================================================================
2
+ // ViewBuilder
3
+ // ==========================================================================
4
+
5
+ ViewBuilder = SC.Object.create({
6
+
7
+ // This will create the server for your application. Add any namespaces
8
+ // your model objects are defined in to the prefix array.
9
+ server: SC.Server.create({ prefix: ['ViewBuilder'] }),
10
+
11
+ // When you are in development mode, this array will be populated with
12
+ // any fixtures you create for testing and loaded automatically in your
13
+ // main method. When in production, this will be an empty array.
14
+ FIXTURES: [],
15
+
16
+ // Any keys in this array will be instantiated automatically from main.
17
+ controllers: []
18
+
19
+ }) ;
@@ -0,0 +1,149 @@
1
+ /* Default CSS for welcome page. Delete this styling and replace it with your own. */
2
+
3
+ .sc-welcome {
4
+ position: absolute ;
5
+ top: 0px;
6
+ left: 0px;
7
+ right: 0px;
8
+ bottom: 0px;
9
+ background-color: white ;
10
+ }
11
+
12
+ .sc-welcome img.logo {
13
+ position: absolute ;
14
+ bottom: 80px;
15
+ left: 50%;
16
+ margin-left: -20px;
17
+ }
18
+
19
+ /* @group Message */
20
+
21
+
22
+
23
+ .sc-welcome .message {
24
+ max-width: 800px;
25
+ margin-left: auto ;
26
+ margin-right: auto;
27
+ margin-top: 100px;
28
+ position: relative;
29
+ }
30
+
31
+ .sc-welcome h1 {
32
+ border: none ;
33
+ padding: 0;
34
+ margin: 0;
35
+ letter-spacing: -3px;
36
+ font: normal 6.4em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
37
+ }
38
+
39
+ .sc-welcome h3 {
40
+ margin: 8px 12px;
41
+ padding: 0;
42
+ font: 1.5em "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
43
+ color: #808080;
44
+ }
45
+
46
+ /* @end */
47
+
48
+ /* @group Sticky Note */
49
+
50
+ .sc-welcome .sticky-note {
51
+ position: absolute ;
52
+ right: 0;
53
+ top: -70px;
54
+ width: 320px;
55
+ height: 300px;
56
+ padding: 60px;
57
+ padding-right: 20px;
58
+ background: static_url('sticky-note') no-repeat center center;
59
+ font: 1.3em "Comic Sans MS", "Comic Sans", Arial, Helvetica, Geneva, sans-serif;
60
+ color: #5f4700;
61
+ }
62
+
63
+ .sc-welcome .sticky-note p {
64
+ font-weight: bold ;
65
+ }
66
+
67
+ .sc-welcome .sticky-note ul {
68
+ padding: 0 10px ;
69
+ }
70
+
71
+ .sc-welcome .sticky-note li {
72
+ margin: 8px 0 ;
73
+ }
74
+
75
+ /* @end */
76
+
77
+ /* @group For Tutorial */
78
+
79
+ body {
80
+ position: absolute ;
81
+ left: 0;
82
+ right: 0;
83
+ top: 0;
84
+ bottom: 0;
85
+ padding: 0;
86
+ margin: 0;
87
+ overflow: hidden ;
88
+ }
89
+
90
+ .workspace .sidebar {
91
+ position: absolute;
92
+ left: 0;
93
+ top: 0;
94
+ width: 200px;
95
+ bottom: 0;
96
+ }
97
+
98
+ .workspace .sidebar .master_list {
99
+ position: absolute;
100
+ left: 0;
101
+ top: 0;
102
+ right: 0;
103
+ bottom: 0;
104
+ }
105
+
106
+ .workspace .sc-split-divider-view {
107
+ position: absolute;
108
+ left: 200px;
109
+ top: 0;
110
+ bottom: 0;
111
+ }
112
+
113
+ .workspace .detail_view {
114
+ position: absolute;
115
+ left: 205px;
116
+ right: 0;
117
+ top: 0;
118
+ bottom: 0;
119
+ border: none ;
120
+ background-color: #aaa;
121
+ }
122
+
123
+ .workspace .detail_view .card-detail {
124
+ margin-left: auto;
125
+ margin-right: auto;
126
+ top: 100px;
127
+ position: relative;
128
+ border: 4px #888 solid;
129
+ background: #f0f0f0;
130
+ padding-top: 10px;
131
+ padding-bottom: 10px;
132
+ }
133
+
134
+ .workspace .detail_view .card-detail td {
135
+ padding: 0 10px;
136
+ }
137
+
138
+ .workspace .detail_view .card-detail .buttons {
139
+ text-align: right;
140
+ padding-top: 10px;
141
+ }
142
+
143
+ .workspace .detail_view .card-detail input {
144
+ font-size: 14px;
145
+ width: 300px;
146
+ }
147
+
148
+ /* @end */
149
+
@@ -0,0 +1,18 @@
1
+ <% content_for('body') do %>
2
+ <div class="sc-welcome">
3
+ <img class="logo" src="<%= static_url('images/sproutcore-logo') %>" />
4
+ <div class="message">
5
+ <h1>Welcome!</h1>
6
+ <h3>You are now running SproutCore.</h3>
7
+ <div class="sticky-note">
8
+ <p>Things to do:</p>
9
+ <ul>
10
+ <li>Add a model:<br/>sc-gen model contacts/my_model</li>
11
+ <li>Add a controller:<br/>sc-gen controller contacts/my_controller</li>
12
+ <li>Edit english.lproj/body.rhtml</li>
13
+ <li>Build for deployment:<br />sc-build</li>
14
+ </ul>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ <% end %>
@@ -0,0 +1,14 @@
1
+ // ==========================================================================
2
+ // ViewBuilder English Strings
3
+ // ==========================================================================
4
+
5
+ // Place strings you want to localize here. In your app, use the key and
6
+ // localize it using "key string".loc(). HINT: For your key names, use the
7
+ // english string with an underscore in front. This way you can still see
8
+ // how your UI will look and you'll notice right away when something needs a
9
+ // localized string added to this file!
10
+ //
11
+ Object.extend(String.English,{
12
+ // "_String Key": "Localized String"
13
+ }) ;
14
+
@@ -0,0 +1,37 @@
1
+ // ==========================================================================
2
+ // ViewBuilder
3
+ // ==========================================================================
4
+
5
+ // This is the function that will start your app running. The default
6
+ // implementation will load any fixtures you have created then instantiate
7
+ // your controllers and awake the elements on your page.
8
+ //
9
+ // As you develop your application you will probably want to override this.
10
+ // See comments for some pointers on what to do next.
11
+ //
12
+ function main() {
13
+
14
+ // Step 1: Load Your Model Data
15
+ // The default code here will load the fixtures you have defined.
16
+ // Comment out the preload line and add something to refresh from the server
17
+ // when you are ready to pull data from your server.
18
+ ViewBuilder.server.preload(ViewBuilder.FIXTURES) ;
19
+
20
+ // TODO: refresh() any collections you have created to get their records.
21
+ // ex: ViewBuilder.contacts.refresh() ;
22
+
23
+ // Step 2: Instantiate Your Views
24
+ // The default code just activates all the views you have on the page. If
25
+ // your app gets any level of complexity, you should just get the views you
26
+ // need to show the app in the first place, to speed things up.
27
+ SC.page.awake() ;
28
+
29
+ // Step 3. Set the content property on your primary controller.
30
+ // This will make your app come alive!
31
+
32
+ // TODO: Set the content property on your primary controller
33
+ // ex: ViewBuilder.contactsController.set('content',ViewBuilder.contacts);
34
+
35
+ } ;
36
+
37
+
@@ -0,0 +1,3 @@
1
+ === 5-22-2008
2
+
3
+ * Initial commit to Git
@@ -0,0 +1,2 @@
1
+ The SproutCore framework currently relies on Prototype to provide basic cross compatibility functions. This project packages the prototype library in a framework format that can be included in the build tools.
2
+
@@ -0,0 +1,345 @@
1
+ == SVN HEAD
2
+
3
+ * [IE] offsetParent and viewportOffset() are now IE compliant.
4
+
5
+ * [IE] innerFrame now returns the correct value for elements without hasLayout.
6
+
7
+ * [IE] get styleWidth & styleHeight on a view will now return the same value
8
+ on all platforms. The IE version would previously include padding and borders
9
+ even though it should include only the core width.
10
+
11
+ * [FIX] Unit tests could fail to execute in IE if they ended in a comment, fixed unittest.js to avoid this problem.
12
+
13
+ * [FIX] TextFieldView could blank out content when you tabbed out of in.
14
+
15
+ == SproutCore 0.9.5
16
+
17
+ * Collection View now supports selectOnMouseDown which can be turned off to provide better drag and drop behavior on SourceList. SC.SourceListView now turns this off by default.
18
+
19
+ * Requesting a resource that should be available in production mode while
20
+ running your server in dev mode will now work. Bundles now build one manifest per language/build_mode combination.
21
+
22
+ * Initial changes to SampleControls to add a form-view demo. None of the controls are wired up yet.
23
+
24
+ * Added mongrel as a required dependency of SproutCore. If you have something
25
+ like thin installed this is technically not required, but several people were
26
+ experiencing trouble installing the gem.
27
+
28
+ * Lots of Safari-specific features for Photos just to demo some of its capabilities. Client-side storage support is also provided but currently does not save changes you make.
29
+
30
+ * SC.CollectionView now supports selectAll (Ctrl+A)
31
+
32
+ * SC.CollectionView now supports the delete key to remove items. Also added delegate methods to the collection view delegate to give you control over how deletions happen.
33
+
34
+ * SC.window can now properly capture the backspace key in Firefox. To
35
+ activate this feature you must declare SC.CAPTURE_BACKSPACE_KEY = YES in your
36
+ core.js file. Capturing the backspace key will prevent the browser from going to previous page when the user hits backspace, which can lead to data loss. To capture this key, SC.window will directly set the document.onkeypress handler.
37
+
38
+ * SC.GridView now supports dropping ON items.
39
+
40
+ * SC.ListView now supports dropping ON items.
41
+
42
+ * Removed the try/catch() that was placed around property notifiers. This is not only faster but it will make it easier to debug these exceptions in Firebug and IE.
43
+
44
+ * [FIX] SC.InlineTextFieldView was using the _frame property even though that
45
+ is used by a parent class. Changed to _optframe
46
+
47
+ * Improved some documentation here and there.
48
+
49
+ * [FIX] SC.View will recache its frames when isVisibleInWindow changes. This will help to ensure we always have the correct dimensions when bringing views on and offscreen. -- All unit tests now pass again.
50
+
51
+ * Improves Photos sample to include support for adding/deleting albums and drag and drop into albums.
52
+
53
+ * Collection View now supports dropping items ON item views as well as between
54
+ them.
55
+
56
+ * Collection Views now support a delegate object that can be used to control
57
+ drag and drop and selection behavior. See mixins/collection_view_delegate.js
58
+ for a complete description of the new methods.
59
+
60
+ * SC.ArrayController now supports the useControllersForContent property. If
61
+ set to YES, then getting an objectAt() will return a controller for the value
62
+ instead of the value itself. This is useful for those times you are using an
63
+ array controller to manage a set of objects you want to control. Previously
64
+ this feature was always used by array controllers and could not be disabled.
65
+ This is now off by default.
66
+
67
+ * [FIX] SC.ArrayController and SC.ObjectController now will properly observe
68
+ their own content, even when the content is set on init.
69
+
70
+ == SproutCore 0.9.4
71
+
72
+ * [FIX] Build system now generates index.html files for client bundles, even
73
+ if they do not include .rhtml resources.
74
+
75
+ * [FIX] Typos in the readme docs for the client generator.
76
+
77
+ * Added automaticOutletFor() that will cause a view to be configured
78
+ automatically instead of forcing you to use an outlets array. Useful for when
79
+ you are manually constructing your views.
80
+
81
+ * Initial changes required to eventually implement improved observer
82
+ notification system.
83
+
84
+ * Improved documentation for a variety of classes
85
+
86
+ * [FIX] Only fixtures ending in ".js" will now be loaded. This allows you to include fixtures named .json or whatever and actually load them via XHR.
87
+
88
+ == SproutCore 0.9.3
89
+
90
+ * Basic changes to get IE working. All non-view tests now pass and the doc app and test runner both load and run in IE7. Lots of visual fixes are still required for the sc-theme as well as IE-specific perf optimization and bug fixes.
91
+
92
+ * [BUG] Default template for both client and template included a stray comma in their core.js file that breaks IE and Safari 2. This is fixed in the templates and in the clients included with the framework, though you will need to make this change manually in your own apps.
93
+
94
+ * beginInlineEdit() and endInlineEdit() on SC.LabelView were renamed to comply
95
+ with the SC.Editable protocol. Use beginEditing() and commitEditing() or
96
+ discardEditing() instead.
97
+
98
+ * Added SC.Editable mixin. This provides a standard protocol for begining
99
+ and ending keyboard editing sessions on views. SC.Editable is now used
100
+ by SC.LabelView, SC.ListItemView, SC.TextFieldView, and SC.TextareaFieldView.
101
+
102
+ * Collection view now supports the default behavior to begin editing when you
103
+ click on a selected item for a second time. If you hit return it will also
104
+ begin editing. To support this, you must set contentValueIsEditable to YES
105
+ and implement beginEditing() on your item view.
106
+
107
+ * Inline editor is now supported in both SC.ListItemView and SC.LabelView.
108
+
109
+ * Improved inline editor (now renamed SC.InlineTextFieldView for consistancy).
110
+ The new editor can be used with basically any view now in addition to just the
111
+ label view. It also automatically inherits the font size and style of any
112
+ underlying DOM element that you hand it. To work with an inline editor you
113
+ will need to implement the InlineEditorDelegate (see documentation).
114
+
115
+ * Inline editor now displays with a fixed width and grows downward as you type instead of stretching out to the end.
116
+
117
+ * Added hello world sample app.
118
+
119
+ * Updated contacts sample app. It is much nicer now.
120
+
121
+ * Add sproutcore freeze:gems command to freeze latest SproutCore in your local project.
122
+
123
+ * Updated copyright to 2008.
124
+
125
+ * Converted all uses of setTimeout() in the framework to use run loop instead.
126
+
127
+ * Added invokeLater() methods to both SC.Object and Function. These
128
+ convenience methods will create a timer to execute a method or function at a
129
+ later time. If you need to execute code later, instead of setTimeout,
130
+ consider using myObject.invokeLater(0, 'methodName') ;
131
+
132
+ * New SC.Timer class provides more efficient triggers for timeouts, etc. The
133
+ timer class now also has unit tests and really awesome docs.
134
+
135
+ * [FIX] offsetParent, frame, clippingFrame, and innerFrame would all sometimes
136
+ return the wrong values in Firefox because of a bug that returns the wrong
137
+ offsetLeft and offsetTop when a parent element has a border.
138
+
139
+ * Fixed all SC unit tests that were failing (now that I can run them again).
140
+
141
+ * Test Runner now has a "Rerun Current Test" button that will rerun the
142
+ current test.
143
+
144
+ * Added convenience method $I() (or SC.inspect()) - converts an object to a
145
+ hash and then displays its key/value pairs. Useful for debugging.
146
+
147
+ * Fixed up test templates in generators so that they check for the presence
148
+ of main() before trying to fix it up. This was causing errors on new tests when added to frameworks.
149
+
150
+ * [FIX] invokeWhile() was implemented on real Array objects but not on
151
+ SC.Array mixin. This caused the controllers/controller test to fail. Now
152
+ fixed.
153
+
154
+ * Updated test runner to use new SproutCore.
155
+
156
+ * [FIX] The JSDoc template will now try to group items based on their full path, rather than just the top-most directory. This means views stored under views/buttons, for example, now appear in the group VIEWS/BUTTONS in the UI.
157
+
158
+ * Moved the base class for collections, buttons, and fields into their respective folders. This will appear them to appear under the correct location in the Doc viewer.
159
+
160
+ * [FIX] Grouped views in the source list without a visible header will
161
+ overlapping the following group, absorbing their clicks. Now they render
162
+ the proper size.
163
+
164
+ * SC.SliderView provides a horizontal slider. No vertical slider is currently
165
+ planned since those controls are so rare. If someone really needs one, please
166
+ enhance SC.SliderView to support it!
167
+
168
+ * slider_view helper creates a slider view + html
169
+
170
+ * Add example to sample_controls
171
+
172
+ * Converted docs for drag modules to JSDoc format.
173
+
174
+ * SourceListGroupViews now automatically collapse their group title if the
175
+ group value is null. Items will still be shown; they will just appear to be
176
+ "top level"
177
+
178
+ * JSDocs template was cutting the first sentance from a class description. This is now fixed.
179
+
180
+ * Updated sc_docs to work with updated SproutCore. Also adopts new look and feel and includes support for live search on all symbols defined in the
181
+ library (try it; it's cool - visit: http://localhost:4020/sproutcore/-docs)
182
+
183
+ * JSDoc template no longer generated highlighted JS source along with ref
184
+ docs. This was slowing things down and the output wasn't really that great
185
+ anyway.
186
+
187
+ * Tweaked JSdoc's Textile support to accept '-' as a bullet characters. Since
188
+ jsdoc strips all * at the beginning of lines you could not do bulletted lists
189
+ before. Now you can using -.
190
+
191
+ * Updated design of jsdoc documentation to make it easier to read.
192
+
193
+ * Renamed buttons-sprite.png to sc-theme-sprite.png. Added
194
+ sc-theme-ysprite.png. One is now used to hold all repeat-x and non-repeating
195
+ sprites while the other is used for repeat-y sprites only.
196
+
197
+ * SC.SplitView & SC.SplitDividerView provide support for draggable and
198
+ collapsable split views.
199
+
200
+ * SC.ListView now uses SC.ListItemView as its default example view instead of
201
+ SC.LabelView (or the old SC.TextCellView)
202
+
203
+
204
+ * The Source List now provides support for the disclosure triangle. A disclosure is automatically shown if you have grouping enabled and you set the
205
+ groupVisibleKey property to anything other an null. The disclosure does not
206
+ yet auto-reveal during a drag.
207
+
208
+ * SC.DisclosureView - Shows a disclosure triangle button.
209
+
210
+ * [FIX] Left over calls to SC.TextCellView. Replaced with SC.LabelView.
211
+
212
+ * SC.WorkspaceView is now removed from the framework. It was always intended
213
+ for use in Sproutit applications and it is really too specific for such a generic framework.
214
+
215
+ * SC.LabelView gets a new API! Now in line with other SC.Control based
216
+ classes. Set value for the value, content/contentValueKey to display part
217
+ of some content.
218
+
219
+ * You can add view helpers to your own projects just by dropping them into
220
+ a lib directory inside your framework or client. If you need to load your
221
+ view helpers in a certain order, use the view_helper() method. See the view helpers in SproutCore for an example usage.
222
+
223
+ * SproutCore view helpers are now stored in the framework itself along with
224
+ the JavaScript. This will make it easier to include the latest version of
225
+ the SproutCore framework in you app without having to install a new set of
226
+ build tools. This should basically eliminate the only frequently changing
227
+ part of the build tools.
228
+
229
+ * SC.SourceList and SC.ListItemView properties now use "content..Key"
230
+ convention for naming properties. If you have built code with the old
231
+ "content..Property" conventions, you will need to update your code.
232
+
233
+ * Added hint property to text_area_view helper that is required to display ghost text.
234
+
235
+ * added new SC.CheckboxView and SC.RadioView for creating simulated checkbox
236
+ and radio buttons. These buttons have more functions than their platform
237
+ native counterparts including mixed style and full styling support.
238
+
239
+ * Moved field view subclasses to views/field directory.
240
+
241
+ * Added SC.Validatable mixin that can be applied to any view to make it work
242
+ with validators. SC.FieldView now incorporates this mixin.
243
+
244
+ * Now if you add initMixin() to a mixin, it will be called automatically
245
+ whenever an object that includes the mixin is instantiated. You can use this
246
+ to perform any setup necessary for the mixin.
247
+
248
+ * Renamed SC.Control.contentValueProperty to SC.Control.contentValueKey to
249
+ be consistent with the rest of the API.
250
+
251
+ * Added updateContentWithValueObserver to SC.Control that will relay changes
252
+ to the value property back to the content object if you use the default
253
+ implementation.
254
+
255
+ * Changed SC.Control observers for various states that were once private to
256
+ public methods. This way you can override them in your subclasses if you need
257
+ to perform some extra processing and you want to make sure you do them in the
258
+ right order. You can also just add more observers as well.
259
+
260
+ * Added JSDoc info for Validators, SC.FieldView, SC.CheckboxFieldView
261
+
262
+ * Switched some Sc Theme CSS to use sc-button-view classname instead of more
263
+ generic a.button or a.regular.
264
+
265
+ * Added new addClassName, removeClassName, setClassName and hasClassName
266
+ methods on SC.View that are 7x faster than prototype's version.
267
+
268
+ * Integrated SC.Control into SC.ButtonView
269
+
270
+ * Changed SC.ButtonView.labelText and SC.ButtonView.labelSelector to
271
+ SC.ButtonView.title and SC.ButtonView.titleSelector to be more consistant with current naming conventions.
272
+
273
+ * [FIX] Some doc tags were wrong in SC.ScrollView and others.
274
+
275
+ * Improved documentations on SC.ImageView.
276
+
277
+ * SC.ImageView now includes the SC.Control mixin and can accept either a
278
+ CSS class name or a URL as its value. This makes it easy to switch an image
279
+ from using a sprite to use a custom-generated image and back again.
280
+
281
+ * SproutCore now includes some shared standard icons that you can use in your
282
+ own application, courtesy of IconDrawer (http://www.icondrawer.com).
283
+
284
+ * Generalized SC.Control's observer so that you can now use it to observe
285
+ changes to multiple properties on content. This should capture a very common pattern requires by collection item views. Most control-list SC.Views will
286
+ eventually adopt this mixin.
287
+
288
+ * Added ListItemView which will be used for rendering content in list views
289
+ and source list views. ListViewItem can render a name, icon, and optional
290
+ unread count.
291
+
292
+ * Changed displayProperty in SC.CollectionView to contentValueKey to match the new SC.Control pattern.
293
+
294
+ * SC.Control now has built in support for a value and content property. The value property is typically the value the control displays, while content is an object that you might pull a content value from. You can determine the proeprty of the content object to use as a value by setting the 'contentValueKey'. The contentValueKey can also be provided by the displayDelegate.
295
+
296
+ * Added SC.DelegateSupport mixin that can be used to support the delegate pattern.
297
+
298
+ * [FIX] Selection management would throw exception after a drag and drop.
299
+
300
+ * [FIX] Optimization in fmt() would through an exception if you passed it a
301
+ value that did not support toString().
302
+
303
+ * Moved selection management methods from CollectionController in independent
304
+ SC.SelectionSupport mixin. This mixin is now used by both
305
+ SC.CollectionController and SC.ArrayController so you can use either one to
306
+ manage a selection state. You can also apply this mixin to your own
307
+ controllers to manage selection state if you like (though this is not required
308
+ to manage selections.)
309
+
310
+ * Began to separate CSS rules into a core.css and a theme.css. The core.css
311
+ styles are generally required by SproutCore and should apply even if you build
312
+ your own theme. The theme.css rules apply to the SproutCore theme only and
313
+ can be overriden by your own CSS.
314
+
315
+ * Added SC.SourceListView and sc-theme styles for source lists. Source lists
316
+ support grouping if you enable this feature. See the new Collections2 tab in
317
+ the SampleControls app for an example source list.
318
+
319
+ * Added SC.TableView. This feature is in progress. See the new
320
+ Collections2 tab in the SampleControls app for an example table view.
321
+
322
+ * Changed asHTML and asText properties to innerHTML and innerText to match
323
+ their DOM equivalents.
324
+
325
+ * Renamed SC.CollectionItem mixin to SC.Control mixin. SC.Control mixin now
326
+ provides some standard functionality for all interactive controls such as
327
+ handling selection states, enabled and focus states.
328
+
329
+ * Removed support for :resize_options property in view helper, since
330
+ auto-resizing is no longer supported in SC.View (it never worked right anyway
331
+ and was not functionally very usable.)
332
+
333
+ * innerText property now uses TextNodes, making it about 50% faster than
334
+ innerHTML on FireFox.
335
+
336
+ * Added view helpers for list_view, scroll_view, grid_view, source_list_view,
337
+ and table_view. Also refactored collection view helpers into their own file.
338
+
339
+ * [FIX] CollectionView is now able to render items in groups.
340
+
341
+ * [FIX] SC.ObjectController: Avoid unwanted commit when oldValue == null && newValue == ''.
342
+
343
+
344
+ == 0.9.0 2008-03-08
345
+