package org.chartsy.main.managers;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import org.chartsy.main.chart.Overlay;
import org.openide.util.Lookup;
/**
*
* @author viorel.gheba
*/
public class OverlayManager {
private static OverlayManager instance;
private LinkedHashMap<String, Overlay> overlays;
public static OverlayManager getDefault() {
if (instance == null) instance = new OverlayManager();
return instance;
}
private OverlayManager() {
overlays = new LinkedHashMap<String, Overlay>();
Collection<? extends Overlay> list = Lookup.getDefault().lookupAll(Overlay.class);
for (Overlay o : list) {
overlays.put(o.getName(), o);
}
sort();
}
private void sort()
{
List<String> mapKeys = new ArrayList<String>(overlays.keySet());
Collections.sort(mapKeys);
LinkedHashMap<String, Overlay> someMap = new LinkedHashMap<String, Overlay>();
for (int i = 0; i < mapKeys.size(); i++)
someMap.put(mapKeys.get(i), overlays.get(mapKeys.get(i)));
overlays = someMap;
}
public Overlay getOverlay(String key) {
return overlays.get(key);
}
public List<Overlay> getOverlaysList() {
List<Overlay> list = new ArrayList<Overlay>();
Iterator<String> it = overlays.keySet().iterator();
while (it.hasNext()) {
list.add(overlays.get(it.next()));
}
return list;
}
public List<String> getOverlays()
{
List<String> list = new ArrayList<String>(overlays.keySet());
Collections.sort(list);
return list;
}
}