Changeset 6842


Ignore:
Timestamp:
Sep 2, 2010, 11:06:12 PM (10 years ago)
Author:
mlg
Message:

The connection dialog now allows to choose a locale
(the default one is selected)

Location:
extensions/jiwigo/trunk/src/main
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/transverse/util/Messages.java

    r6821 r6842  
    11package fr.mael.jiwigo.transverse.util;
    22
     3import java.util.Locale;
    34import java.util.ResourceBundle;
    45
     
    3435public class Messages {
    3536
     37    public static Locale usedLocale = Locale.getDefault();
     38
    3639    /**
    3740     * Recuperation d'un message
     
    4043     */
    4144    public static String getMessage(String key) {
    42         return ResourceBundle.getBundle("fr.mael.jiwigo.trad.messages").getString(key);
     45        return ResourceBundle.getBundle("fr.mael.jiwigo.trad.messages", usedLocale).getString(key);
    4346    }
    4447
  • extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/ConnexionDialog.java

    r6821 r6842  
    77import java.awt.event.ActionEvent;
    88import java.awt.event.ActionListener;
    9 
     9import java.awt.event.ItemEvent;
     10import java.awt.event.ItemListener;
     11import java.awt.event.KeyEvent;
     12import java.awt.event.KeyListener;
     13import java.text.SimpleDateFormat;
     14import java.util.Arrays;
     15import java.util.Locale;
     16
     17import javax.swing.AbstractListModel;
     18import javax.swing.ComboBoxModel;
    1019import javax.swing.JButton;
    1120import javax.swing.JCheckBox;
     21import javax.swing.JComboBox;
    1222import javax.swing.JDialog;
    1323import javax.swing.JLabel;
     
    5161 * Dialog de connexion au site
    5262 */
    53 public class ConnexionDialog extends JDialog implements ActionListener {
     63public class ConnexionDialog extends JDialog implements ActionListener, ItemListener, KeyListener {
    5464    /**
    5565     * Logger
     
    92102
    93103    /**
     104     * Combo containing all locales
     105     */
     106    private JComboBox comboLocales;
     107
     108    /**
    94109     * Constructeur
    95110     */
    96111    public ConnexionDialog() {
     112        Locale defautLocale = Messages.usedLocale;
    97113        labelUrl = new JLabel(Messages.getMessage("connexionDialog_urlSite"));
    98114        labelLogin = new JLabel(Messages.getMessage("connexionDialog_login"));
    99115        labelPass = new JLabel(Messages.getMessage("connexionDialog_pass"));
     116        comboLocales = new JComboBox();
    100117        boutonOk = new JButton("Ok");
    101118        String url = PreferencesManagement.getValue(PreferencesEnum.URL_SITE.getLabel());
     
    111128        Dimension fieldDimensions = new Dimension(300, 30);
    112129        fieldUrl.setPreferredSize(fieldDimensions);
     130        fieldUrl.addActionListener(this);
    113131        loginField.setPreferredSize(fieldDimensions);
     132        loginField.addActionListener(this);
    114133        passwordField.setPreferredSize(fieldDimensions);
     134        passwordField.addActionListener(this);
    115135        this.getContentPane().setLayout(new GridBagLayout());
    116136        GridBagConstraints constraints = new GridBagConstraints();
     
    133153        constraints.gridx = 0;
    134154        constraints.gridy++;
     155        this.getContentPane().add(comboLocales, constraints);
     156        constraints.gridx++;
     157        this.getContentPane().add(checkBoxRetenir, constraints);
     158        constraints.gridx = 0;
     159        constraints.gridy++;// 
     160        //      for (Locale locale : SimpleDateFormat.getAvailableLocales()) {
     161        //          comboLocales.addItem(locale.getDisplayName(Locale.ENGLISH));
     162        //      }
     163        comboLocales.setPreferredSize(new Dimension(130, 25));
     164        comboLocales.addItemListener(this);
     165        localeModel model = new localeModel();
     166        comboLocales.setModel(model);
     167        model.setSelectedItem(defautLocale.getDisplayLanguage(Locale.ENGLISH));
    135168        this.getContentPane().add(boutonOk, constraints);
    136         constraints.gridx++;
    137         this.getContentPane().add(checkBoxRetenir, constraints);
    138169        boutonOk.setPreferredSize(new Dimension(80, 30));
    139170        boutonOk.addActionListener(this);
     
    173204                        .getMessage("error"), JOptionPane.ERROR_MESSAGE);
    174205            } else {
     206                //              Locale.setDefault((Locale) comboLocales.getSelectedItem());
    175207                Main.showFrame();
    176208                //on cache le dialog de connexion
     
    179211        }
    180212    }
     213
     214    /**
     215     * @author mael
     216     * Internal class that represents the modal of the combobox that allows
     217     * to choose a locale
     218     */
     219    class localeModel extends AbstractListModel implements ComboBoxModel {
     220        Locale[] locales = SimpleDateFormat.getAvailableLocales();
     221        String[] localesNames;
     222
     223        String selection = null;
     224
     225        public localeModel() {
     226            localesNames = new String[locales.length];
     227            int compteur = 0;
     228            for (Locale locale : locales) {
     229                localesNames[compteur] = locale.getDisplayName(Locale.ENGLISH);
     230                compteur++;
     231            }
     232            Arrays.sort(localesNames);
     233        }
     234
     235        public Object getElementAt(int index) {
     236            return localesNames[index];
     237        }
     238
     239        public int getSize() {
     240            return locales.length;
     241        }
     242
     243        public void setSelectedItem(Object anItem) {
     244            selection = (String) anItem;
     245        }
     246
     247        public Object getSelectedItem() {
     248            if (selection != null)
     249                return selection;
     250            else
     251                return null;
     252        }
     253    }
     254
     255    @Override
     256    public void itemStateChanged(ItemEvent paramItemEvent) {
     257        for (Locale locale : SimpleDateFormat.getAvailableLocales()) {
     258            if (locale.getDisplayName(Locale.ENGLISH).equals(paramItemEvent.getItem())) {
     259                Messages.usedLocale = locale;
     260                dispose();
     261                ConnexionDialog dial = new ConnexionDialog();
     262                dial.showDialog();
     263
     264            }
     265
     266        }
     267    }
     268
     269    @Override
     270    public void keyPressed(KeyEvent arg0) {
     271    }
     272
     273    @Override
     274    public void keyReleased(KeyEvent arg0) {
     275
     276    }
     277
     278    @Override
     279    public void keyTyped(KeyEvent arg0) {
     280    }
    181281}
  • extensions/jiwigo/trunk/src/main/resources/fr/mael/jiwigo/trad/messages.properties

    r6840 r6842  
    6868connexionDialog_emptyField=You must fill all field
    6969connexionDialog_connexionError=<html><center>Error<br/>Check the fields<br/>(The url must contain "http://")</center></html>
    70 connexionDialog_sauvegarder=<html><center>Sauvegarder les informations.<br/> <u>Attention</u> Les informations sont stockées<br/> en clair sur votre ordinateur.</center></html>
     70connexionDialog_sauvegarder=<html><center>Save informations.<br/> <u>Warning</u> This informations <br/>are not encrypted</center></html>
    7171
    7272#####################################################
Note: See TracChangeset for help on using the changeset viewer.