package com.awdio.web.client.widgets.maps; import java.util.HashMap; import java.util.Map; import com.awdio.web.client.widgets.Logo; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.ui.Image; /** * * @author rabbit * */ public class MapRepository { private static final Maps maps = (Maps) GWT.create(Maps.class); private interface ImageCreator { public Image createImage(); } private static Map/**/ mapsRepository ; static { mapsRepository = new HashMap/**/(); mapsRepository.put("Paris".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapParis().createImage();} }) ; mapsRepository.put("Amsterdam".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapBenelux().createImage();} }) ; mapsRepository.put("Brussels".toLowerCase(),new ImageCreator() { public Image createImage() { return maps.smallmapBenelux().createImage();} }) ; mapsRepository.put("Lausanne".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapLausanne().createImage();} }) ; mapsRepository.put("Bombay".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapBombay().createImage();} }) ; mapsRepository.put("Delhi ".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapDelhi().createImage();} }) ; mapsRepository.put("Bangkok".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapBangkok().createImage();} }) ; mapsRepository.put("Singapore".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapSingapore().createImage();} }) ; mapsRepository.put("Hong-kong".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapHongkong().createImage();} }) ; mapsRepository.put("Melbourne".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapMelbourne().createImage();} }) ; mapsRepository.put("San Fransisco ".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapSanFrancisco().createImage();} }) ; mapsRepository.put("Los Angeles".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapSanFrancisco().createImage();} }) ; mapsRepository.put("Chicago".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapChicago().createImage();} }) ; mapsRepository.put("New York".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapNewYork().createImage();} }) ; mapsRepository.put("Montreal".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapMontreal().createImage();} }) ; mapsRepository.put("Miami".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapMiami().createImage();} }) ; mapsRepository.put("Sao Paulo".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapSaoPaulo().createImage();} }) ; mapsRepository.put("Berlin".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapBerlin().createImage();} }) ; mapsRepository.put("Frankfurt".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapBerlin().createImage();} }) ; mapsRepository.put("Munich".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapMunich().createImage();} }) ; mapsRepository.put("Zurich".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapMunich().createImage();} }) ; mapsRepository.put("Manama".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapManama().createImage();} }) ; mapsRepository.put("Dubai".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapDubai().createImage();} }) ; mapsRepository.put("London".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapLondon().createImage();} }) ; mapsRepository.put("Antwerp".toLowerCase(), new ImageCreator() { public Image createImage() { return maps.smallmapBenelux().createImage();} }) ; } public static Logo createMap(String country) { ImageCreator creator = (ImageCreator)mapsRepository.get(country.toLowerCase()); Image img = null ; if (creator != null) img = creator.createImage(); else img = maps.smallmapDefault().createImage(); Image [] base = new Image [] { maps.smallmapBackground().createImage() }; Image [] enabledLook = new Image [] { img } ; Image [] disabledLook = new Image [0]; Logo countryLogo = new Logo(base,enabledLook,disabledLook); countryLogo.setEnabled(true); return countryLogo; } }