Показать сообщение отдельно
  #1 (permalink)  
Старый 07.11.2013, 10:35
Новичок на форуме
Отправить личное сообщение для Shamandrey Посмотреть профиль Найти все сообщения от Shamandrey
 
Регистрация: 07.11.2013
Сообщений: 2

Как получить порядковый номер узла дерева относительно корня
Имеется вот такой код
Ext.onReady(function() {
	var store, tree, panel;
	var map = new OpenLayers.Map();
	// Создание WMS capabilities хранилища(массива)
	store = new GeoExt.data.WMSCapabilitiesStore({
		url: "http://localhost:8080/geoserver/ows?service=wms&version=1.1.1&request=GetCapabilities",
		autoLoad: true
	});
	// загрузка в массив всех записей и url ссылок на слои из Geoserver
	store.load();
	
	// Создание таблицы и визуализация ее на странице с последующе выгрузкой в нее массива с доступными слоями
	var grid = new Ext.grid.GridPanel({
		title: "WMS Capabilities",
		store: store,
		cm: new Ext.grid.ColumnModel([
			{header: "Name", dataIndex: "name", sortable: true},
			{id: "title", header: "Title", dataIndex: "title", sortable: true}
		]),
		sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
		autoExpandColumn: "title",
		renderTo: "capgrid",
		height: 300,
		width: 350,
		floating: true,
		x: 10,
		y: 0,
		bbar: ["->",
				"-", {
			text: "Add Layer",
			handler: function() {
				var record = grid.getSelectionModel().getSelected();
				if(record) {
					var copy = record.copy();
					
					copy.data["layer"] = record.getLayer();
					copy.getLayer().mergeNewParams({
						format: "image/png",
						transparent: "true"
					});
					panel.layers.add(copy);
					panel.map.zoomToExtent(
						OpenLayers.Bounds.fromArray(copy.get("llbbox"))
					);
				}
			}
		}, "-",
				
			"-",
			"-"]
		
	});
	var ctrl, toolbarItems = [], action, actions = {};
	
	action = new GeoExt.Action({
		control: new OpenLayers.Control.ZoomToMaxExtent(),
		
		text: "max extent",
		tooltip: "zoom to max extent"
	});
	actions["max_extent"] = action;
	toolbarItems.push(action);
	toolbarItems.push("-");
	
	
	
	
	
	
	// Создание окна карты
	panel = new GeoExt.MapPanel({
		renderTo: "mappanel",
		width: 1000,
		height: 700,
		
		floating: true,
		x: 400,
		y: 0,
		tbar: toolbarItems
	
	});
	// Создание дерева слоев
	tree = new Ext.tree.TreePanel({
		renderTo: "tree",
		root: new GeoExt.tree.LayerContainer({
			text: 'Map Layers',
			layerStore: panel.layers,
			leaf: false,
			expanded: true
		}),
		enableDD: true,
		width: 170,
		height: 300,
		floating: true,
		x: 10,
		y: 320,
		//Сдесь создается кнопка удаления слоя
		bbar: ["->",
				"-","-",{
			text: "Remuve Layer",
			handler: function() 
						{
							var selectedNode=tree.getSelectionModel().getSelectedNode( ) ;
							//alert(selectedNode.indexOf() );
							if(selectedNode)
								{
								//Сдесь происходит удаление выбранного узла в дереве слоев
									selectedNode.remove(true);
								// !!!Сдесь ДОЛЖНО происходить удаление слоя карты спорядковым номером выбранного узла в дереве
								//  слоев. Но пока что он удаляет слой с номером 0!!!
									 panel.map.layers[0].destroy();
								}
							 store.load();
						}
				
		},"-"]
		
	});
	

});


Каким образом мне передать номер выделенного узла в panel.map.layers[???].destroy()
Ответить с цитированием