[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