/* * File : PlayerSettingsDlg.java * Created : 20-jun-2002 13:23 * By : fbusquets * * JClic - Authoring and playing system for educational activities * * Copyright (C) 2000 - 2005 Francesc Busquets & Departament * d'Educacio de la Generalitat de Catalunya * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details (see the LICENSE file). */ package edu.xtec.jclic; import edu.xtec.jclic.project.LibraryManager; import edu.xtec.jclic.report.TCPReporter; import edu.xtec.util.Messages; import edu.xtec.util.Options; import edu.xtec.util.StrUtils; import java.util.HashMap; import java.util.Map; /** * * @author Francesc Busquets (fbusquets@xtec.cat) * @version 13.09.10 */ public class PlayerSettingsDlg extends edu.xtec.util.ExtendedJDialog { PlayerSettings settings; public boolean result; java.awt.Component parent; LibraryManager libraryManager; Messages msg; Map<String, Object> reporterOptions; /** Creates new form SettingsDlg */ public PlayerSettingsDlg(PlayerSettings settings, java.awt.Component parent) { super(parent, "", true); this.parent=parent; this.settings=settings; msg=settings.getMessages(); setTitle(msg.get("settings_title")); try{ libraryManager=LibraryManager.getLibraryManager(settings, settings.libraryManager.getJDomElement()); } catch(Exception ex){ msg.showErrorWarning(this, "library_error_clone", ex); libraryManager=settings.libraryManager; } result=false; reporterOptions=new HashMap<String, Object>(); Options.strToMap(settings.reporterParams, reporterOptions, ";", '=', false); initComponents(); checkEnabled(null); centerOver(parent); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; javax.swing.ButtonGroup reportGroup = new javax.swing.ButtonGroup(); javax.swing.ButtonGroup mediaGroup = new javax.swing.ButtonGroup(); javax.swing.JTabbedPane mainPane = new javax.swing.JTabbedPane(); javax.swing.JPanel securityPane = new javax.swing.JPanel(); pwdCheck = new javax.swing.JCheckBox(); javax.swing.JLabel pwdLb1 = new javax.swing.JLabel(); pwdField1 = new javax.swing.JPasswordField(settings.password, 20); javax.swing.JLabel pwdLb2 = new javax.swing.JLabel(); pwdField2 = new javax.swing.JPasswordField(settings.password, 20); javax.swing.JPanel generalPane = new javax.swing.JPanel(); javax.swing.JLabel lookLb = new javax.swing.JLabel(); lookCombo = new javax.swing.JComboBox(edu.xtec.util.LFUtil.VALUES); javax.swing.JLabel skinLb = new javax.swing.JLabel(); skinCombo = new javax.swing.JComboBox(edu.xtec.jclic.skins.Skin.getSystemSkinList(false)); javax.swing.JLabel langLb = new javax.swing.JLabel(); langCombo = new javax.swing.JComboBox(Messages.getDescriptiveLanguageCodes(msg.getLocale())); javax.swing.JLabel countryLb = new javax.swing.JLabel(); countryField = new javax.swing.JTextField(); javax.swing.JLabel variantLb = new javax.swing.JLabel(); variantField = new javax.swing.JTextField(); javax.swing.JLabel browserLb = new javax.swing.JLabel(); browserField = new javax.swing.JTextField(); javax.swing.JPanel reportPane = new javax.swing.JPanel(); reportChk = new javax.swing.JCheckBox(); javax.swing.JPanel reportOptionsPanel = new javax.swing.JPanel(); tcpBtn = new javax.swing.JRadioButton(); javax.swing.JLabel rpAddressLb = new javax.swing.JLabel(); rpAddressTxt = new javax.swing.JTextField(); jdbcBtn = new javax.swing.JRadioButton(); javax.swing.JLabel rpDriverLb = new javax.swing.JLabel(); rpDriverTxt = new javax.swing.JTextField(); javax.swing.JLabel rpUrlLb = new javax.swing.JLabel(); rpUrlTxt = new javax.swing.JTextField(); javax.swing.JLabel rpUserLb = new javax.swing.JLabel(); rpUserTxt = new javax.swing.JTextField(); javax.swing.JLabel rpPwdLb = new javax.swing.JLabel(); rpPwdTxt = new javax.swing.JPasswordField(); otherBtn = new javax.swing.JRadioButton(); javax.swing.JLabel rpClassLb = new javax.swing.JLabel(); rpClassTxt = new javax.swing.JTextField(); javax.swing.JLabel rpParamsLb = new javax.swing.JLabel(); rpParamsTxt = new javax.swing.JTextField(); javax.swing.JPanel mediaPane = new javax.swing.JPanel(); soundEnabledChk = new javax.swing.JCheckBox(); javax.swing.JPanel mediaSystemPanel = new javax.swing.JPanel(); mDefaultBtn = new javax.swing.JRadioButton(); mJMFbtn = new javax.swing.JRadioButton(); mQTbtn = new javax.swing.JRadioButton(); systemSoundsChk = new javax.swing.JCheckBox(); javax.swing.JPanel libraryPane = new javax.swing.JPanel(); autoRunLibChk = new javax.swing.JCheckBox(); editLibPanel = libraryManager.getLibraryPane(true, true); javax.swing.JPanel btPanel = new javax.swing.JPanel(); javax.swing.JButton okButton = new javax.swing.JButton(); javax.swing.JButton cancelButton = new javax.swing.JButton(); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); mainPane.setToolTipText(msg.get("settings_report_tooltip")); mainPane.setPreferredSize(new java.awt.Dimension(500, 400)); securityPane.setToolTipText(msg.get("settings_security_tooltip")); securityPane.setLayout(new java.awt.GridBagLayout()); pwdCheck.setSelected(settings.password!=null); pwdCheck.setText(msg.get("settings_password_protect")); pwdCheck.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pwdCheckActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); securityPane.add(pwdCheck, gridBagConstraints); pwdLb1.setText(msg.get("settings_new_password")); pwdLb1.setLabelFor(pwdField1); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); securityPane.add(pwdLb1, gridBagConstraints); pwdField1.setEnabled(settings.password!=null); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); securityPane.add(pwdField1, gridBagConstraints); pwdLb2.setText(msg.get("settings_new_password_confirm")); pwdLb2.setLabelFor(pwdField2); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); securityPane.add(pwdLb2, gridBagConstraints); pwdField2.setEnabled(settings.password!=null); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); securityPane.add(pwdField2, gridBagConstraints); mainPane.addTab(msg.get("settings_security"), new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/security.gif")), securityPane, ""); // NOI18N generalPane.setToolTipText(msg.get("settings_general_tooltip")); generalPane.setLayout(new java.awt.GridBagLayout()); lookLb.setLabelFor(lookCombo); lookLb.setText(msg.get("settings_look")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(lookLb, gridBagConstraints); lookCombo.setSelectedItem(settings.lookAndFeel); lookCombo.setToolTipText(msg.get("settings_look_tooltip")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(lookCombo, gridBagConstraints); skinLb.setLabelFor(skinCombo); skinLb.setText(msg.get("settings_skin")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(skinLb, gridBagConstraints); skinCombo.setEditable(true); skinCombo.setSelectedItem(settings.skin); skinCombo.setToolTipText(msg.get("settings_skin_tooltip")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(skinCombo, gridBagConstraints); langLb.setLabelFor(langCombo); langLb.setText(msg.get("settings_language")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(langLb, gridBagConstraints); langCombo.setSelectedItem(Messages.getDescriptiveLanguageCode(settings.language)); langCombo.setToolTipText(msg.get("settings_language_tooltip")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(langCombo, gridBagConstraints); countryLb.setLabelFor(countryField); countryLb.setText(msg.get("settings_country")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(countryLb, gridBagConstraints); countryField.setText(settings.country); countryField.setToolTipText(msg.get("settings_country_tooltip")); countryField.setMinimumSize(new java.awt.Dimension(75, 21)); countryField.setPreferredSize(new java.awt.Dimension(200, 21)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(countryField, gridBagConstraints); variantLb.setLabelFor(variantField); variantLb.setText(msg.get("settings_variant")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(variantLb, gridBagConstraints); variantField.setText(settings.variant); variantField.setToolTipText(msg.get("settings_variant_tooltip")); variantField.setMinimumSize(new java.awt.Dimension(75, 21)); variantField.setPreferredSize(new java.awt.Dimension(200, 21)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(variantField, gridBagConstraints); browserLb.setText(msg.get("settings_browser")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(browserLb, gridBagConstraints); browserField.setText(settings.preferredBrowser); browserField.setToolTipText(msg.get("settings_browser_tooltip")); browserField.setMinimumSize(new java.awt.Dimension(75, 21)); browserField.setPreferredSize(new java.awt.Dimension(200, 21)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); generalPane.add(browserField, gridBagConstraints); mainPane.addTab(msg.get("settings_general"), new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/settings.gif")), generalPane, ""); // NOI18N reportPane.setLayout(new java.awt.GridBagLayout()); reportChk.setToolTipText(msg.get("settings_report_use_tooltip")); reportChk.setSelected(settings.reporterEnabled); reportChk.setText(msg.get("settings_report_use")); reportChk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { reportChkActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportPane.add(reportChk, gridBagConstraints); reportOptionsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(msg.get("settings_report_type"))); reportOptionsPanel.setLayout(new java.awt.GridBagLayout()); reportGroup.add(tcpBtn); tcpBtn.setSelected(settings.reporterClass.equals("TCPReporter") && (settings.reporterParams==null || settings.reporterParams.indexOf(";")<0)); tcpBtn.setText(msg.get("settings_report_tcp")); tcpBtn.setToolTipText(msg.get("settings_report_tcp_tooltip")); tcpBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { tcpBtnActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(tcpBtn, gridBagConstraints); rpAddressLb.setText(msg.get("settings_report_address")); rpAddressLb.setLabelFor(rpAddressTxt); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 8, 3, 3); reportOptionsPanel.add(rpAddressLb, gridBagConstraints); rpAddressTxt.setText(Options.getString(reporterOptions, TCPReporter.SERVER_PATH, TCPReporter.DEFAULT_SERVER_PATH)); rpAddressTxt.setToolTipText(msg.get("settings_report_address_tooltip")); rpAddressTxt.setPreferredSize(new java.awt.Dimension(80, 21)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(rpAddressTxt, gridBagConstraints); reportGroup.add(jdbcBtn); jdbcBtn.setSelected(settings.reporterClass.equals("JDBCReporter")); jdbcBtn.setText(msg.get("settings_report_jdbc")); jdbcBtn.setToolTipText(msg.get("settings_report_jdbc_tooltip")); jdbcBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jdbcBtnActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(jdbcBtn, gridBagConstraints); rpDriverLb.setText(msg.get("settings_report_driver")); rpDriverLb.setLabelFor(rpDriverTxt); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 8, 3, 3); reportOptionsPanel.add(rpDriverLb, gridBagConstraints); rpDriverTxt.setText(Options.getString(reporterOptions, "driver", "sun.jdbc.odbc.JdbcOdbcDriver")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(rpDriverTxt, gridBagConstraints); rpUrlLb.setText(msg.get("settings_report_url")); rpUrlLb.setLabelFor(rpUrlTxt); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 8, 3, 3); reportOptionsPanel.add(rpUrlLb, gridBagConstraints); rpUrlTxt.setText(Options.getString(reporterOptions, "url", "jdbc:odbc:JClic")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(rpUrlTxt, gridBagConstraints); rpUserLb.setText(msg.get("settings_report_user")); rpUserLb.setLabelFor(rpUserTxt); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 8, 3, 3); reportOptionsPanel.add(rpUserLb, gridBagConstraints); rpUserTxt.setText(Options.getString(reporterOptions, "system_user", null)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(rpUserTxt, gridBagConstraints); rpPwdLb.setText(msg.get("settings_report_pwd")); rpPwdLb.setLabelFor(rpPwdTxt); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 8, 3, 3); reportOptionsPanel.add(rpPwdLb, gridBagConstraints); rpPwdTxt.setText(Options.getString(reporterOptions, "system_pwd", null)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 0.5; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(rpPwdTxt, gridBagConstraints); reportGroup.add(otherBtn); otherBtn.setSelected(!tcpBtn.isSelected() && !jdbcBtn.isSelected()); otherBtn.setText(msg.get("settings_report_other")); otherBtn.setToolTipText(msg.get("settings_report_other_tooltip")); otherBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { otherBtnActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(otherBtn, gridBagConstraints); rpClassLb.setText(msg.get("settings_report_engine")); rpClassLb.setLabelFor(rpClassTxt); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 8, 3, 3); reportOptionsPanel.add(rpClassLb, gridBagConstraints); rpClassTxt.setText(otherBtn.isSelected() ? settings.reporterClass : null); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(rpClassTxt, gridBagConstraints); rpParamsLb.setText(msg.get("settings_report_params")); rpParamsLb.setLabelFor(rpParamsTxt); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(3, 8, 3, 3); reportOptionsPanel.add(rpParamsLb, gridBagConstraints); rpParamsTxt.setText(otherBtn.isSelected() ? settings.reporterParams : null); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportOptionsPanel.add(rpParamsTxt, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); reportPane.add(reportOptionsPanel, gridBagConstraints); mainPane.addTab(msg.get("settings_reports"), new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/report_small.gif")), reportPane, ""); // NOI18N mediaPane.setToolTipText(msg.get("settings_media_tooltip")); mediaPane.setLayout(new java.awt.GridBagLayout()); soundEnabledChk.setSelected(settings.soundEnabled); soundEnabledChk.setText(msg.get("settings_media_enabled")); soundEnabledChk.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { soundEnabledChkActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); mediaPane.add(soundEnabledChk, gridBagConstraints); mediaSystemPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(msg.get("settings_media_system"))); mediaSystemPanel.setLayout(new java.awt.GridBagLayout()); mediaGroup.add(mDefaultBtn); mDefaultBtn.setSelected(edu.xtec.jclic.Constants.DEFAULT.equals(settings.mediaSystem)); mDefaultBtn.setText(msg.get("settings_media_default")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 0, 3); mediaSystemPanel.add(mDefaultBtn, gridBagConstraints); mediaGroup.add(mJMFbtn); mJMFbtn.setSelected(edu.xtec.jclic.Constants.JMF.equals(settings.mediaSystem)); mJMFbtn.setText(msg.get("settings_media_jmf")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); mediaSystemPanel.add(mJMFbtn, gridBagConstraints); mediaGroup.add(mQTbtn); mQTbtn.setSelected(edu.xtec.jclic.Constants.QT.equals(settings.mediaSystem)); mQTbtn.setText(msg.get("settings_media_qt")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 3); mediaSystemPanel.add(mQTbtn, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); mediaPane.add(mediaSystemPanel, gridBagConstraints); systemSoundsChk.setSelected(settings.systemSounds); systemSoundsChk.setText(msg.get("settings_media_event_sounds")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); mediaPane.add(systemSoundsChk, gridBagConstraints); mainPane.addTab(msg.get("settings_media"), new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/audio_on.gif")), mediaPane, ""); // NOI18N libraryPane.setToolTipText(msg.get("settings_library_tooltip")); libraryPane.setLayout(new java.awt.GridBagLayout()); autoRunLibChk.setSelected(libraryManager.autoRun); autoRunLibChk.setText(msg.get("settings_library_autorun")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); libraryPane.add(autoRunLibChk, gridBagConstraints); editLibPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(msg.get("settings_library"))); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); libraryPane.add(editLibPanel, gridBagConstraints); mainPane.addTab(msg.get("settings_library"), new javax.swing.ImageIcon(getClass().getResource("/edu/xtec/resources/icons/database.gif")), libraryPane, ""); // NOI18N getContentPane().add(mainPane, java.awt.BorderLayout.CENTER); okButton.setText(msg.get("OK")); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); btPanel.add(okButton); cancelButton.setText(msg.get("CANCEL")); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); btPanel.add(cancelButton); getContentPane().add(btPanel, java.awt.BorderLayout.SOUTH); pack(); }// </editor-fold>//GEN-END:initComponents private void soundEnabledChkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_soundEnabledChkActionPerformed checkEnabled(soundEnabledChk); }//GEN-LAST:event_soundEnabledChkActionPerformed private void otherBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_otherBtnActionPerformed checkEnabled(reportChk); }//GEN-LAST:event_otherBtnActionPerformed private void jdbcBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jdbcBtnActionPerformed checkEnabled(reportChk); }//GEN-LAST:event_jdbcBtnActionPerformed private void tcpBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tcpBtnActionPerformed checkEnabled(reportChk); }//GEN-LAST:event_tcpBtnActionPerformed private void reportChkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_reportChkActionPerformed checkEnabled(reportChk); }//GEN-LAST:event_reportChkActionPerformed private void pwdCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pwdCheckActionPerformed checkEnabled(pwdCheck); }//GEN-LAST:event_pwdCheckActionPerformed private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed result=false; closeDialog(null); }//GEN-LAST:event_cancelButtonActionPerformed private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed if(accept()){ result=true; closeDialog(null); } // Add your handling code here: }//GEN-LAST:event_okButtonActionPerformed public boolean accept(){ String p1=null; if(pwdCheck.isSelected()){ p1=StrUtils.nullableString(String.copyValueOf(pwdField1.getPassword())); String p2=StrUtils.nullableString(String.copyValueOf(pwdField2.getPassword())); if(p1==null || p2==null || !p1.equals(p2)){ msg.showAlert(this, "PASSWORD_INCORRECT"); return false; } } else settings.password=null; if(tcpBtn.isSelected()){ String server=rpAddressTxt.getText(); if(server==null || server.length()<1){ msg.showAlert(this, "settings_report_err_server"); return false; } settings.reporterClass="TCPReporter"; settings.reporterParams=new StringBuilder(TCPReporter.SERVER_PATH) .append("=").append(server).substring(0); } else if(jdbcBtn.isSelected()){ String driver=StrUtils.nullableString(rpDriverTxt.getText()); String url=StrUtils.nullableString(rpUrlTxt.getText()); String usr=rpUserTxt.getText(); String pwd=String.copyValueOf(rpPwdTxt.getPassword()); if(driver==null || url==null){ msg.showAlert(this, "settings_report_err"); return false; } settings.reporterClass="JDBCReporter"; StringBuilder sb=new StringBuilder("driver=").append(driver); sb.append(";url=").append(url); if(usr!=null){ sb.append(";system_user=").append(usr); if(pwd!=null) sb.append(";system_pwd=").append(pwd); } settings.reporterParams=sb.substring(0); } else{ settings.reporterClass=rpClassTxt.getText(); settings.reporterParams=rpParamsTxt.getText(); } settings.password=p1; settings.passwordConfirmed=false; settings.lookAndFeel=(String)lookCombo.getSelectedItem(); settings.preferredBrowser=browserField.getText(); settings.skin=(String)skinCombo.getSelectedItem(); settings.language=Messages.getLanguageFromDescriptive((String)langCombo.getSelectedItem()); settings.country=StrUtils.nullableString(countryField.getText()); settings.variant=StrUtils.nullableString(variantField.getText()); settings.reporterEnabled=reportChk.isSelected(); settings.soundEnabled=soundEnabledChk.isSelected(); if(mJMFbtn.isSelected()) settings.mediaSystem=edu.xtec.jclic.Constants.JMF; else if(mQTbtn.isSelected()) settings.mediaSystem=edu.xtec.jclic.Constants.QT; else settings.mediaSystem=edu.xtec.jclic.Constants.DEFAULT; settings.systemSounds=systemSoundsChk.isSelected(); libraryManager.autoRun=autoRunLibChk.isSelected(); settings.libraryManager=libraryManager; return true; } private void checkEnabled(javax.swing.JComponent cmp){ if(cmp==null || cmp==reportChk){ enable(tcpBtn, reportChk, null); enable(rpAddressTxt, tcpBtn, reportChk); enable(jdbcBtn, reportChk, null); enable(rpDriverTxt, jdbcBtn, reportChk); enable(rpUrlTxt, jdbcBtn, reportChk); enable(rpUserTxt, jdbcBtn, reportChk); enable(rpPwdTxt, jdbcBtn, reportChk); enable(otherBtn, reportChk, null); enable(rpClassTxt, otherBtn, reportChk); enable(rpParamsTxt, otherBtn, reportChk); } if(cmp==null || cmp==pwdCheck){ enable(pwdField1, pwdCheck, null); enable(pwdField2, pwdCheck, null); } if(cmp==null || cmp==soundEnabledChk){ enable(mDefaultBtn, soundEnabledChk, null); enable(mJMFbtn, soundEnabledChk, null); enable(mQTbtn, soundEnabledChk, null); enable(systemSoundsChk, soundEnabledChk, null); } } private void enable(javax.swing.JComponent cmp, javax.swing.JToggleButton tg1, javax.swing.JToggleButton tg2){ if(cmp!=null && tg1!=null){ boolean b=tg1.isSelected() && (tg2==null || tg2.isSelected()); boolean current=cmp.isEnabled(); if(b!=current) cmp.setEnabled(b); } } /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog setVisible(false); dispose(); }//GEN-LAST:event_closeDialog // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox autoRunLibChk; private javax.swing.JTextField browserField; private javax.swing.JTextField countryField; private javax.swing.JPanel editLibPanel; private javax.swing.JRadioButton jdbcBtn; private javax.swing.JComboBox langCombo; private javax.swing.JComboBox lookCombo; private javax.swing.JRadioButton mDefaultBtn; private javax.swing.JRadioButton mJMFbtn; private javax.swing.JRadioButton mQTbtn; private javax.swing.JRadioButton otherBtn; private javax.swing.JCheckBox pwdCheck; private javax.swing.JPasswordField pwdField1; private javax.swing.JPasswordField pwdField2; private javax.swing.JCheckBox reportChk; private javax.swing.JTextField rpAddressTxt; private javax.swing.JTextField rpClassTxt; private javax.swing.JTextField rpDriverTxt; private javax.swing.JTextField rpParamsTxt; private javax.swing.JPasswordField rpPwdTxt; private javax.swing.JTextField rpUrlTxt; private javax.swing.JTextField rpUserTxt; private javax.swing.JComboBox skinCombo; private javax.swing.JCheckBox soundEnabledChk; private javax.swing.JCheckBox systemSoundsChk; private javax.swing.JRadioButton tcpBtn; private javax.swing.JTextField variantField; // End of variables declaration//GEN-END:variables }