Skip to content

Commit

Permalink
Fixed a bug in Array additions from KVO. When I switched from coheren…
Browse files Browse the repository at this point in the history
…t.KVO.adapt to Object.extend, it was stomping on the valueForKey method from Array.
  • Loading branch information
jeffwatkins committed Nov 10, 2010
1 parent b90f05c commit 488c649
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 25 deletions.
129 changes: 110 additions & 19 deletions coherent.tmproj
Expand Up @@ -21,6 +21,20 @@
<integer>270</integer>
<key>metaData</key>
<dict>
<key>coherent.jsproj</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>12</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>0</integer>
</dict>
<key>sandbox/slideshow.html</key>
<dict>
<key>caret</key>
Expand Down Expand Up @@ -51,6 +65,94 @@
<integer>102</integer>
</dict>
</dict>
<key>spec/coherent-spec-runner.html</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>23</integer>
<key>line</key>
<integer>16</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>0</integer>
</dict>
<key>spec/jasmine-dom/jasmine-dom-matchers.js</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>0</integer>
</dict>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>135</integer>
</dict>
<key>spec/kvo-json-spec.js</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>43</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>12</integer>
<key>selectFrom</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>42</integer>
</dict>
<key>selectTo</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>43</integer>
</dict>
</dict>
<key>spec/oop-spec.js</key>
<dict>
<key>caret</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>0</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>0</integer>
<key>selectFrom</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>0</integer>
</dict>
<key>selectTo</key>
<dict>
<key>column</key>
<integer>0</integer>
<key>line</key>
<integer>121</integer>
</dict>
</dict>
<key>spec/views/basic-view-spec.js</key>
<dict>
<key>caret</key>
Expand Down Expand Up @@ -182,30 +284,14 @@
<key>caret</key>
<dict>
<key>column</key>
<integer>18</integer>
<integer>9</integer>
<key>line</key>
<integer>793</integer>
<integer>799</integer>
</dict>
<key>columnSelection</key>
<false/>
<key>firstVisibleColumn</key>
<integer>0</integer>
<key>firstVisibleLine</key>
<integer>781</integer>
<key>selectFrom</key>
<dict>
<key>column</key>
<integer>13</integer>
<key>line</key>
<integer>793</integer>
</dict>
<key>selectTo</key>
<dict>
<key>column</key>
<integer>18</integer>
<key>line</key>
<integer>793</integer>
</dict>
<integer>783</integer>
</dict>
<key>src/foundation/core/local.js</key>
<dict>
Expand Down Expand Up @@ -459,6 +545,11 @@
<string>src/foundation/net/XHR.js</string>
<string>src/foundation/core/Binding.js</string>
<string>src/foundation/core/kvo.js</string>
<string>coherent.jsproj</string>
<string>spec/oop-spec.js</string>
<string>spec/kvo-json-spec.js</string>
<string>spec/coherent-spec-runner.html</string>
<string>spec/jasmine-dom/jasmine-dom-matchers.js</string>
<string>src/ui/controllers/ArrayController.js</string>
<string>src/foundation/core/kvo-array.js</string>
<string>src/foundation/net/Deferred.js</string>
Expand Down
10 changes: 5 additions & 5 deletions src/foundation/core/kvo-array.js
Expand Up @@ -2,6 +2,11 @@
/*jsl:import ../additions/array-additions.js*/
/*jsl:import array-interface.js*/

// Add all KVO methods to Arrays
Class.extend(Array, coherent.KVO.prototype);
// Don't add the toJSON implementation from KVO, because it's unnecessary for arrays
delete Array.prototype.toJSON;

/** Add some methods to the Array prototype to support Key Value functionality.
@implements coherent.Array
*/
Expand Down Expand Up @@ -533,11 +538,6 @@ Class.extend(Array, {

});

// Add all KVO methods to Arrays
Object.extend(Array.prototype, coherent.KVO.prototype);
// Don't add the toJSON implementation from KVO, because it's unnecessary for arrays
delete Array.prototype.toJSON;

/** Find the index at which an object appears. Returns -1 if the object does
not appear in the array.
@type Number
Expand Down
5 changes: 4 additions & 1 deletion src/ui/app/Application.js
Expand Up @@ -49,12 +49,15 @@ coherent.Application= Class.create(coherent.Responder, {
var views= context.__views;
var numberOfViews= views.length;
var view;

for (var i=0; i<numberOfViews; ++i)
{
view= views[i];
if (!view.node.parentNode || view.node.parentNode===coherent.View.__holdingArea)
{
body.appendChild(view.node);
view.setVisible(true);
}
}
}

Expand Down

0 comments on commit 488c649

Please sign in to comment.