[Commits] r1223 - apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer

commits at geoext.org commits at geoext.org
Sat Jul 4 08:43:35 CEST 2009


Author: tschaub
Date: 2009-07-04 08:43:35 +0200 (Sat, 04 Jul 2009)
New Revision: 1223

Modified:
   apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js
Log:
fix up ordering when switching groups

Modified: apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js
===================================================================
--- apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js	2009-07-04 04:42:13 UTC (rev 1222)
+++ apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js	2009-07-04 06:43:35 UTC (rev 1223)
@@ -215,12 +215,11 @@
         var count = store.getCount();
         var nodeIndex = -1;
         var layer = this.item(index).layer;
-        var record, l;
+        var record;
         for(var i=count-1; i>=0; --i) {
             record = store.getAt(i);
-            l = record.get("layer");
             if(l.displayInLayerSwitcher &&
-               (record.get("group") == this.group || l === layer)) {
+               (record.get("group") == this.group)) {
                 ++nodeIndex;
                 if(index === nodeIndex) {
                     break;
@@ -251,12 +250,9 @@
             window.setTimeout(function() {
                 var store = container.layerStore;
                 var index = container.indexOf(node);
-                var recIndex = container.nodeIndexToRecordIndex(
-                    container.indexOf(node)
-                );
                 store.remove(record);
                 node.remove();
-
+                
                 // TODO: record.clone()
                 Ext.data.Record.AUTO_ID++;
                 record = record.copy(Ext.data.Record.AUTO_ID);    
@@ -265,7 +261,27 @@
                 record.set("layer", layer);
 
                 record.set("group", container.group);
-                store.insert(recIndex, [record]);
+
+                // TODO: if this is the only record of this group, recIndex is not determined
+                // this is a hack that works for two groups only
+                if (container.childNodes.length == 0) {
+                    if (tree.root.firstChild === container) {
+                        store.add([record]);
+                    } else {
+                        store.insert(0, [record]);
+                    }
+                } else {
+                    var sib = container.childNodes[index];
+                    var offset = 1;
+                    if (!sib) {
+                        offset = 0;
+                        sib = container.lastChild;
+                    }
+                    var recIndex = store.findBy(function(rec) {
+                        return (rec.get("layer") === sib.layer);
+                    }) + offset;
+                    store.insert(recIndex, [record]);
+                }
             }, 0);
             
         }



More information about the Commits mailing list