/*
 *******************************************************************************
 * Copyright (C) 2004-2010, International Business Machines Corporation and    *
 * others. All Rights Reserved.                                                *
 *******************************************************************************
 */

package com.ibm.icu.dev.tool.ime.translit;

import java.awt.Image;
import java.awt.im.spi.InputMethod;
import java.awt.im.spi.InputMethodDescriptor;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

/**
* The TransliteratorInputMethodDescriptor class is used to identify this package
* as an input method editor.
*/

public class TransliteratorInputMethodDescriptor implements InputMethodDescriptor {

    private ResourceBundle rb = null;

    /**
    * Creates the Transliterator IME this is automatically callled by the
    * JVM when the Transliterator IME is selected from the input method list.
    *
    * @return InputMethod The Transliterator IME object.
    */
    public InputMethod createInputMethod() throws Exception {
        return new TransliteratorInputMethod();
    }
  
    /**
    * Get the list of locales that this IME supports.
    *
    * @return Locale[] This will always have one locale. By default
    *                  we just return the current locale. Therefore
    *                  the Transliterator IME works in all locales.
    */
    // use the current active locale
    public Locale[] getAvailableLocales() {
        return new Locale[] {Locale.getDefault()};
    }

    /**
    * The Transliterator IME does not support dynamic locales. The Transliterator
    * IME's functionality does not depend upon any locale.
    *
    * @return boolean This will always be false.
    */
    public boolean hasDynamicLocaleList() {
        return false;
    }

    /**
    * Obtain the localized name of the Transliterator IME
    *
    * @param inputLocale the requested input method locale
    * @param displayLanguage The requested translation of the Transliterator IME
    * @return the localized name for the Transliterator IME
    */
    public String getInputMethodDisplayName(Locale inputLocale,
                                            Locale displayLanguage) {
        String name = null;

        try {
            rb = ResourceBundle.getBundle("com.ibm.icu.dev.tool.ime.translit.Transliterator", displayLanguage);
            name = rb.getString("name");
        }
        catch (MissingResourceException m) {
            // use a hardcoded value
            name = "Transliterator";
        }
        return name;
    }

    /**
    * Get the icon for the Transliterator IME. This is not supported.
    *
    * @param inputLocale (This is ignored).
    *
    * @return Image This will always be null.
    */
    public Image getInputMethodIcon(Locale inputLocale) {
       return null;
    }
}

