package com.idega.idegaweb.presentation; //import com.idega.presentation.ui.*; import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; import com.idega.core.localisation.business.ICLocaleBusiness; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.text.Link; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: idega.is * @author 2000 - idega team - <br><a href="mailto:aron@idega.is">Aron Birkir</a><br> * @version 1.0 */ public class LocaleChanger extends Block { public static String localesParameter="iw_localeswitcher_locale"; private static String action = "iw_localeswitcher_sub_action"; private Map ImageLocalizationMap ; protected boolean showLinks = false; public void main(IWContext iwc){ make(iwc); } public void make(IWContext iwc){ doLinkView(iwc); } protected void doLinkView(IWContext iwc){ Table T = new Table(); T.setCellpadding(0); T.setCellspacing(0); int row = 1; int col = 1; Iterator iter = ICLocaleBusiness.getListOfLocalesJAVA().iterator(); Locale locale; Locale currentLocale = iwc.getCurrentLocale(); if(this.ImageLocalizationMap !=null){ while(iter.hasNext()){ locale = (Locale) iter.next(); if(!locale.equals(currentLocale)){ Integer imageId = (Integer)this.ImageLocalizationMap.get(locale); if(imageId !=null){ try{ Image image = new Image(imageId.intValue()); T.add(getSwitcherLink(image,locale),col,row++); } catch(Exception ex){ ex.printStackTrace(); } } } } } add(T); } private Link getSwitcherLink(PresentationObject object,Locale locale){ Link L = new Link(object); L.addParameter(com.idega.core.localisation.business.LocaleSwitcher.languageParameterString,locale.toString()); L.setEventListener(com.idega.core.localisation.business.LocaleSwitcher.class.getName()); return L; } public void setLocalizedImage(String localeString,int imageID){ setLocalizedImage(ICLocaleBusiness.getLocaleFromLocaleString(localeString),imageID); } public void setLocalizedImage(Locale locale,int imageID){ this.showLinks = true; getImageLocalizationMap().put(locale,new Integer(imageID)); } private Map getImageLocalizationMap(){ if(this.ImageLocalizationMap==null){ this.ImageLocalizationMap=new HashMap(); } return this.ImageLocalizationMap; } public void setUseImageView(boolean view){ this.showLinks = view; } }