/* (non-Javadoc) * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == jbValider) { if (federation == null) federation = new Federation(jtfFederatonName.getText(), jtfFederatonSigle.getText()); else { federation.setNomFederation(jtfFederatonName.getText()); federation.setSigleFederation(jtfFederatonSigle.getText()); } federation.setCodeCountry( ((Country) ccbCountryFederation.getSelectedItem()).getCode().toLowerCase()); federation.getCompetitionLevels().clear(); boolean first = true; for (String level : jtfFederationNiveau.getText().split(",")) { // $NON-NLS-1$ CompetitionLevel cl = new CompetitionLevel(); cl.setDefaut(first); first = false; cl.setLang(profile.getConfiguration().getLangue()); cl.setLibelle(level); federation.addCompetitionLevel(cl); } for (Entry<String, JTextField> le : mTraduction.entrySet()) { first = true; for (String level : le.getValue().getText().split(",")) { // $NON-NLS-1$ CompetitionLevel cl = new CompetitionLevel(); cl.setDefaut(first); first = false; cl.setLang(le.getKey()); cl.setLibelle(level); federation.addCompetitionLevel(cl); } } try { federation.save(); } catch (ObjectPersistenceException e1) { federation = null; DisplayableErrorHelper.displayException(e1); e1.printStackTrace(); } setVisible(false); } else if (e.getSource() == jbAnnuler) { setVisible(false); } else if (e.getSource() == jbAddLocale) { Locale loc = (Locale) jcbAvailableLocale.getSelectedItem(); addLocaleLevelField(loc.toString()); mTraduction.get(loc.toString()).setText(jtfFederationNiveau.getText()); jcbAvailableLocale.removeItem(loc); if (jcbAvailableLocale.getItemCount() == 0) { jcbAvailableLocale.setEnabled(false); jbAddLocale.setEnabled(false); } jlAddLocaleInfo.setVisible(true); redimDialog(); } }
/** * Construit un objet CompetitionLevel pour le niveaux fédéral définit à partir de la base de * données. * * <p>Si le niveau n'est pas trouvé pour la langue en parametre, mais disponible pour le français, * alors c'est le libellé français qui est utilisé. * * <p>Si le niveau n'est pas trouvé, le génére en mettant le code comme libellé. * * @param numLevel le code du niveau à retourner * @param federation la fédération associé au niveau * @param lang la langue du libellé. * @return le niveau de compétition généré. * @throws SQLException */ @SuppressWarnings("nls") public static CompetitionLevel getCompetitionLevel( int numLevel, Federation federation, String lang) throws SQLException { String sql = "select * from NIVEAU_COMPETITION where CODENIVEAU=? and NUMFEDERATION=? and LANG=?"; CompetitionLevel competitionLevel = null; PreparedStatement pstmt = ApplicationCore.dbConnection.prepareStatement(sql); try { pstmt.setInt(1, numLevel); pstmt.setInt(2, federation.getNumFederation()); pstmt.setString(3, lang); ResultSet rs = pstmt.executeQuery(); try { boolean enregexists = rs.next(); if (!enregexists) { rs.close(); pstmt.setString(3, "fr"); rs = pstmt.executeQuery(); enregexists = rs.next(); } if (enregexists) { competitionLevel = new CompetitionLevel(); competitionLevel.setFederation(federation); competitionLevel.setNumLevel(rs.getInt("CODENIVEAU")); competitionLevel.setLang(lang); competitionLevel.setLibelle(rs.getString("LIBELLE")); competitionLevel.setDefaut(rs.getBoolean("DEFAUT")); } } finally { rs.close(); } } finally { pstmt.close(); } if (competitionLevel == null) { competitionLevel = new CompetitionLevel(); competitionLevel.setFederation(federation); competitionLevel.setNumLevel(numLevel); competitionLevel.setLang(lang); competitionLevel.setLibelle("Niveau " + numLevel); } return competitionLevel; }