http://www.mediawiki.org/wiki/Special:Code/MediaWiki/96572

Revision: 96572
Author:   tparscal
Date:     2011-09-08 14:59:51 +0000 (Thu, 08 Sep 2011)
Log Message:
-----------
Moved some repetitive code into the cleanup method, renamed it recycleItemView

Modified Paths:
--------------
    trunk/parsers/wikidom/lib/synth/bases/es.ViewContainer.js

Modified: trunk/parsers/wikidom/lib/synth/bases/es.ViewContainer.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/bases/es.ViewContainer.js   2011-09-08 
14:56:55 UTC (rev 96571)
+++ trunk/parsers/wikidom/lib/synth/bases/es.ViewContainer.js   2011-09-08 
14:59:51 UTC (rev 96572)
@@ -27,29 +27,26 @@
                .addClass( 'editSurface-' + typeName )
                .data( typeName, this );
        var container = this;
-       function cleanupItemView( itemModel ) {
+       function recycleItemView( itemModel, autoCreate ) {
                var itemView = container.lookupItemView( itemModel );
                if ( itemView ) {
                        container.views.splice( container.views.indexOf( 
itemView ), 1 );
                        itemView.$.detach();
                }
+               if ( autoCreate && itemView === null ) {
+                       itemView = itemModel.createView();
+               }
                return itemView;
        }
        this.containerModel.on( 'prepend', function( itemModel ) {
-               var itemView = cleanupItemView( itemModel );
-               if ( itemView === null ) {
-                       itemView = itemModel.createView();
-               }
+               var itemView = recycleItemView( itemModel, true );
                container.views.unshift( itemView );
                container.$.prepend( itemView.$ );
                container.emit( 'prepend', itemView );
                container.emit( 'update' );
        } );
        this.containerModel.on( 'append', function( itemModel ) {
-               var itemView = cleanupItemView( itemModel );
-               if ( itemView === null ) {
-                       itemView = itemModel.createView();
-               }
+               var itemView = recycleItemView( itemModel, true );
                container.views.push( itemView );
                container.$.append( itemView.$ );
                container.emit( 'append', itemView );
@@ -57,10 +54,7 @@
        } );
        this.containerModel.on( 'insertBefore', function( itemModel, 
beforeModel ) {
                var beforeView = container.lookupItemView( beforeModel ),
-                       itemView = cleanupItemView( itemModel );
-               if ( itemView === null ) {
-                       itemView = itemModel.createView();
-               }
+                       itemView = recycleItemView( itemModel, true );
                if ( beforeView ) {
                        container.views.splice( container.views.indexOf( 
beforeView ), 0, itemView );
                        itemView.$.insertBefore( beforeView.$ );
@@ -73,10 +67,7 @@
        } );
        this.containerModel.on( 'insertAfter', function( itemModel, afterModel 
) {
                var afterView = container.lookupItemView( afterModel ),
-                       itemView = cleanupItemView( itemModel );
-               if ( itemView === null ) {
-                       itemView = itemModel.createView();
-               }
+                       itemView = recycleItemView( itemModel, true );
                if ( afterView ) {
                        container.views.splice( container.views.indexOf( 
afterView ) + 1, 0, itemView );
                        itemView.$.insertAfter( afterView.$ );
@@ -88,7 +79,7 @@
                container.emit( 'update' );
        } );
        this.containerModel.on( 'remove', function( itemModel ) {
-               var itemView = cleanupItemView( itemModel );
+               var itemView = recycleItemView( itemModel );
                container.emit( 'remove', itemView );
                container.emit( 'update' );
        } );


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to