I'm trying to implement functionality so the user can change the order of layers. My "move-layer-up" functionality works but I cannot get the "move-layer-down" functionality working and the layer always seems to end up in some random spot. Any pointers would be appreciated.
layerList.on("trigger-action", function (event) {
if (event.action.id === "move-layer-up") {
var layerToMoveName = event.item.title;
var layerToMoveIdx = -1
for (var i = 0; i < layerList.viewModel.operationalItems.length; i++) {
var item = layerList.viewModel.operationalItems.getItemAt(i)
if (item.title === layerToMoveName) {
layerToMoveIdx = i
}
}
if (layerToMoveIdx > 0) {
layerList.viewModel.moveListItem(event.item, null, null, layerToMoveIdx);
}
}
else if (event.action.id === "move-layer-down") {
var layerToMoveName = event.item.title;
var layerToMoveIdx = -1
for (var i = 0; i < layerList.viewModel.operationalItems.length; i++) {
var item = layerList.viewModel.operationalItems.getItemAt(i)
if (item.title === layerToMoveName) {
layerToMoveIdx = i
}
}
if (layerToMoveIdx < layerList.viewModel.operationalItems.length) {
layerList.viewModel.moveListItem(event.item, null, null, layerToMoveIdx + 1);
}
}
}