1 4 package com.nightlabs.ipanema.language; 5 6 import java.util.Iterator ; 7 import java.util.LinkedList ; 8 import java.util.List ; 9 10 import org.eclipse.swt.widgets.Composite; 11 12 import com.nightlabs.ipanema.language.Language; 13 import com.nightlabs.rcp.composite.TightWrapperComposite; 14 15 18 public abstract class AbstractLanguageChooser 19 extends TightWrapperComposite 20 implements LanguageChooser 21 { 22 private List languageChangeListeners = new LinkedList (); 23 24 29 public AbstractLanguageChooser(Composite parent, int style, 30 boolean setLayoutData) 31 { 32 super(parent, style, setLayoutData); 33 } 34 35 38 public void addLanguageChangeListener(LanguageChangeListener l) 39 { 40 languageChangeListeners.add(l); 41 } 42 43 46 public void removeLanguageChangeListener(LanguageChangeListener l) 47 { 48 languageChangeListeners.remove(l); 49 } 50 51 private Language oldLanguage = null; 52 53 public void fireLanguageChangeEvent() 54 { 55 if (languageChangeListeners.size() < 1) 56 return; 57 58 LanguageChangeEvent languageChangeEvent = new LanguageChangeEvent(this, oldLanguage, getLanguage()); 59 for (Iterator it = languageChangeListeners.iterator(); it.hasNext(); ) { 60 ((LanguageChangeListener)it.next()).languageChanged(languageChangeEvent); 61 } 62 63 oldLanguage = getLanguage(); 64 } 65 } 66 | Popular Tags |