/* * Copyright (c) 2010-2012 Thiago T. Sá * * This file is part of CloudReports. * * CloudReports 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 3 of the License, or * (at your option) any later version. * * CloudReports 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. * * For more information about your rights as a user of CloudReports, * refer to the LICENSE file or see <http://www.gnu.org/licenses/>. */ package cloudreports.gui; import cloudreports.business.SettingBusiness; import cloudreports.dao.SettingDAO; import cloudreports.models.Setting; /** * The SimulationSettings form. * Most of its code is generated automatically by the NetBeans IDE. * * @author Thiago T. Sá * @since 1.0 */ public class SimulationSettings extends javax.swing.JDialog { /** A private instance of the SettingDAO class. */ private SettingDAO sDAO; /** Creates a new SimulationSettings form. */ public SimulationSettings() { setModal(true); initComponents(); sDAO = new SettingDAO(); numOfSimulationsSpinner.setValue(SettingBusiness.getNumberOfSimulations()); timeToSimulateSpinner.setValue(SettingBusiness.getTimeToSimulate()); htmlReportsCheckBox.setSelected(SettingBusiness.isHtmlReportsEnabled()); htmlReportsCheckBoxStateChanged(null); rawDataReportsCheckBox.setSelected(SettingBusiness.isRawDataReportsEnabled()); rawDataReportsCheckBoxStateChanged(null); } /** 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. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { numOfSimulationsLabel = new javax.swing.JLabel(); numOfSimulationsSpinner = new javax.swing.JSpinner(); okButton = new javax.swing.JButton(); timeToSimulateLabel = new javax.swing.JLabel(); timeToSimulateSpinner = new javax.swing.JSpinner(); minutesLabel = new javax.swing.JLabel(); htmlReportsCheckBox = new javax.swing.JCheckBox(); rawDataReportsCheckBox = new javax.swing.JCheckBox(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Simulation settings"); setResizable(false); numOfSimulationsLabel.setText("Number of repetitions:"); numOfSimulationsSpinner.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(1), Integer.valueOf(1), null, Integer.valueOf(1))); numOfSimulationsSpinner.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { numOfSimulationsSpinnerStateChanged(evt); } }); okButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cloudreports/gui/resources/ok.png"))); // NOI18N okButton.setText("OK"); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); timeToSimulateLabel.setText("Time to simulate:"); timeToSimulateSpinner.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(60), Integer.valueOf(1), null, Integer.valueOf(1))); minutesLabel.setText("(minutes)"); htmlReportsCheckBox.setText("Generate HTML reports."); htmlReportsCheckBox.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { htmlReportsCheckBoxStateChanged(evt); } }); rawDataReportsCheckBox.setText("Generate raw data reports."); rawDataReportsCheckBox.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { rawDataReportsCheckBoxStateChanged(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(43, 43, 43) .addComponent(timeToSimulateLabel)) .addComponent(numOfSimulationsLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(numOfSimulationsSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(timeToSimulateSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(4, 4, 4) .addComponent(minutesLabel)))) .addComponent(htmlReportsCheckBox) .addComponent(rawDataReportsCheckBox))) .addComponent(okButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {numOfSimulationsSpinner, timeToSimulateSpinner}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(minutesLabel) .addComponent(timeToSimulateSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(timeToSimulateLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(numOfSimulationsLabel) .addComponent(numOfSimulationsSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(htmlReportsCheckBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rawDataReportsCheckBox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(okButton) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {numOfSimulationsSpinner, timeToSimulateSpinner}); pack(); }// </editor-fold>//GEN-END:initComponents /** * Saves the state of all components and closes the form when the OK button is clicked. * * @param evt an action event. * @since 1.0 */ private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed Setting numberOfSimulations = sDAO.getSetting("NumberOfSimulations"); numberOfSimulations.setValue(String.valueOf(numOfSimulationsSpinner.getValue())); sDAO.updateSetting(numberOfSimulations); Setting timeToSimulate = sDAO.getSetting("TimeToSimulate"); timeToSimulate.setValue(String.valueOf(timeToSimulateSpinner.getValue())); sDAO.updateSetting(timeToSimulate); Setting htmlReportsEnabled = sDAO.getSetting("HtmlReports"); htmlReportsEnabled.setValue(String.valueOf(htmlReportsCheckBox.isSelected())); sDAO.updateSetting(htmlReportsEnabled); Setting rawDataReportsEnabled = sDAO.getSetting("RawDataReports"); rawDataReportsEnabled.setValue(String.valueOf(rawDataReportsCheckBox.isSelected())); sDAO.updateSetting(rawDataReportsEnabled); this.dispose(); }//GEN-LAST:event_okButtonActionPerformed /** * Enables/disables the generation of HTML reports according to the state of * the checkbox. * * @param evt a change event. * @since 1.1 */ private void htmlReportsCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_htmlReportsCheckBoxStateChanged if(htmlReportsCheckBox.isSelected()) { rawDataReportsCheckBox.setEnabled(true); } else { rawDataReportsCheckBox.setSelected(true); rawDataReportsCheckBox.setEnabled(false); } }//GEN-LAST:event_htmlReportsCheckBoxStateChanged /** * Enables/disables the generation of raw data reports according to the state of * the checkbox. * * @param evt a change event. * @since 1.1 */ private void rawDataReportsCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_rawDataReportsCheckBoxStateChanged if(rawDataReportsCheckBox.isSelected()) { htmlReportsCheckBox.setEnabled(true); } else { htmlReportsCheckBox.setSelected(true); htmlReportsCheckBox.setEnabled(false); } }//GEN-LAST:event_rawDataReportsCheckBoxStateChanged /** * Changes the number of simulations to be performed whenever the state of the * simulations spinner changes. * * @param evt a change event. * @since 1.0 */ private void numOfSimulationsSpinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_numOfSimulationsSpinnerStateChanged }//GEN-LAST:event_numOfSimulationsSpinnerStateChanged // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox htmlReportsCheckBox; private javax.swing.JLabel minutesLabel; private javax.swing.JLabel numOfSimulationsLabel; private javax.swing.JSpinner numOfSimulationsSpinner; private javax.swing.JButton okButton; private javax.swing.JCheckBox rawDataReportsCheckBox; private javax.swing.JLabel timeToSimulateLabel; private javax.swing.JSpinner timeToSimulateSpinner; // End of variables declaration//GEN-END:variables }