LocaleChoiceUI.java
上传用户:liming6160
上传日期:2022-06-07
资源大小:785k
文件大小:3k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  *    MFRadio - stream radio client for Java 2 Micro Edition
  3.  *    Copyright (C) 2001 - 2006 Mobicom-Kavkaz, Inc
  4.  *    
  5.  *    Visit the project page at: http://mfradio.sourceforge.net
  6.  *
  7.  *    This program is free software; you can redistribute it and/or modify
  8.  *    it under the terms of the GNU General Public License as published by
  9.  *    the Free Software Foundation; either version 2 of the License, or
  10.  *    (at your option) any later version.
  11.  *
  12.  *    This program is distributed in the hope that it will be useful,
  13.  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  *    GNU General Public License for more details.
  16.  *
  17.  *    You should have received a copy of the GNU General Public License
  18.  *    along with this program; if not, write to the Free Software
  19.  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  *
  21.  *    Java (TM) and all Java (TM)-based marks are a trademark or 
  22.  *    registered trademark of Sun Microsystems, Inc, in the United States 
  23.  *    and other countries.
  24.  */
  25. package ru.mobicomk.mfradio.ui;
  26. import javax.microedition.lcdui.Command;
  27. import javax.microedition.lcdui.ChoiceGroup;
  28. import javax.microedition.lcdui.CommandListener;
  29. import javax.microedition.lcdui.Displayable;
  30. import javax.microedition.lcdui.Form;
  31. import ru.mobicomk.mfradio.Constants;
  32. import ru.mobicomk.mfradio.controller.UIController;
  33. import ru.mobicomk.mfradio.util.Locale;
  34. /**
  35.  * Language choice form
  36.  * 
  37.  * @author Alexey Rybalko
  38.  * 
  39.  */
  40. public class LocaleChoiceUI extends Form implements CommandListener {
  41.     private UIController controller;
  42.     private ChoiceGroup localeChoice;
  43.     private Command okCommand;
  44.     private Command cancelCommand;
  45.     private Locale[] locales;
  46.     public LocaleChoiceUI(UIController controller) {
  47.         super(controller.getLocale().getString(Constants.STR_Lang));
  48.         this.controller = controller;
  49.         initCommands();
  50.         initUI();
  51.     }
  52.     private void initUI() {
  53.         localeChoice = new ChoiceGroup("", ChoiceGroup.EXCLUSIVE);
  54.         append(localeChoice);
  55.     }
  56.     private void initCommands() {
  57.         okCommand = new Command(controller.getLocale().getString(Constants.STR_OK), Command.OK, 1);
  58.         cancelCommand = new Command(controller.getLocale().getString(Constants.STR_Cancel), Command.CANCEL, 1);
  59.         addCommand(okCommand);
  60.         addCommand(cancelCommand);
  61.         setCommandListener(this);
  62.     }
  63.     public void init(Locale[] locales) {
  64.         this.locales = locales;
  65.         for (int i = 0; i < locales.length; i++) {
  66.             localeChoice.append(locales[i].getNativeName(), null);
  67.         }
  68.     }
  69.     public void commandAction(Command command, Displayable displayable) {
  70.         Locale newLocale = null;
  71.         if (command == okCommand) {
  72.             newLocale = locales[localeChoice.getSelectedIndex()];
  73.         }
  74.         controller.endLocaleChoiceRequest(newLocale);
  75.     }
  76.     public void setSelectedLocale(Locale selectedLocale) {
  77.         if (locales != null) {
  78.             for (int i = 0; i < locales.length; i++) {
  79.                 if (locales[i].equals(selectedLocale)) {
  80.                     localeChoice.setSelectedIndex(i, true);
  81.                     break;
  82.                 }
  83.             }
  84.         }
  85.     }
  86. }