package com.uwsoft.editor.renderer.components;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import com.badlogic.ashley.core.Component;
import com.uwsoft.editor.renderer.data.LayerItemVO;
public class LayerMapComponent implements Component {
public boolean autoIndexing = true;
private ArrayList<LayerItemVO> layers = new ArrayList<LayerItemVO>();
private HashMap<String, LayerItemVO> layerMap = new HashMap<String, LayerItemVO>();
public void setLayers(ArrayList<LayerItemVO> layers) {
this.layers = layers;
layerMap.clear();
for (LayerItemVO vo : layers) {
layerMap.put(vo.layerName, vo);
}
}
public LayerItemVO getLayer(String name) {
return layerMap.get(name);
}
public int getIndexByName(String name) {
if(layerMap.containsKey(name)) {
return layers.indexOf(layerMap.get(name));
}
return 0;
}
public boolean isVisible(String name) {
LayerItemVO vo = getLayer(name);
if (vo != null) {
return vo.isVisible;
}
return true;
}
public void addLayer(int index, LayerItemVO layerVo) {
layers.add(index, layerVo);
layerMap.put(layerVo.layerName, layerVo);
}
public void addLayer(LayerItemVO layerVo) {
layers.add(layerVo);
layerMap.put(layerVo.layerName, layerVo);
}
public ArrayList<LayerItemVO> getLayers() {
return layers;
}
public void deleteLayer(String layerName) {
layers.remove(getIndexByName(layerName));
layerMap.remove(layerName);
}
public void rename(String prevName, String newName) {
LayerItemVO vo = layerMap.get(prevName);
vo.layerName = newName;
layerMap.remove(prevName);
layerMap.put(newName, vo);
}
public void swap(String source, String target) {
LayerItemVO sourceVO = getLayer(source);
LayerItemVO targetVO = getLayer(target);
Collections.swap(layers, layers.indexOf(sourceVO), layers.indexOf(targetVO));
}
}