/***********************************************************************
This file is part of KEEL-software, the Data Mining tool for regression,
classification, clustering, pattern mining and so on.
Copyright (C) 2004-2010
F. Herrera (herrera@decsai.ugr.es)
L. S�nchez (luciano@uniovi.es)
J. Alcal�-Fdez (jalcala@decsai.ugr.es)
S. Garc�a (sglopez@ujaen.es)
A. Fern�ndez (alberto.fernandez@ujaen.es)
J. Luengo (julianlm@decsai.ugr.es)
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 3 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.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/
**********************************************************************/
/**
* <p>
* @author Written by Pedro Antonio Gutiérrez and Juan Carlos Fernández (University of Córdoba) 23/10/2008
* @version 1.0
* @since JDK1.5
* </p>
*/
package keel.GraphInterKeel.datacf.partitionData;
import javax.swing.JOptionPane;
public class KFoldOptionsJDialog extends javax.swing.JDialog {
/**
* <p>
* Option dialog for K-Fold partition type
* </p>
*/
/**
* <p>
* Constructor that initializes the dialog
* </p>
*/
public KFoldOptionsJDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
this.setLocationRelativeTo(parent);
}
/**
* <p>
* This method is called from within the constructor to
* initialize the form.
* </p>
* <p>
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
* </p>
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
KFoldjPanel = new javax.swing.JPanel();
this.setResizable(false);
kFoldjLabel = new javax.swing.JLabel();
kFoldjSpinner = new javax.swing.JSpinner();
buttonsjPanel = new javax.swing.JPanel();
acceptjButton = new javax.swing.JButton();
canceljButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setName("Form"); // NOI18N
setResizable(false);
KFoldjPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "K-Fold"));
KFoldjPanel.setName("KFoldjPanel"); // NOI18N
kFoldjLabel.setText("K-Fold Cross Validation Value");
kFoldjLabel.setName("kFoldjLabel"); // NOI18N
kFoldjSpinner.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(10), Integer.valueOf(1), null, Integer.valueOf(1)));
kFoldjSpinner.setToolTipText("Number of Training/Test Pairs to be Generated");
kFoldjSpinner.setName("kFoldjSpinner"); // NOI18N
javax.swing.GroupLayout KFoldjPanelLayout = new javax.swing.GroupLayout(KFoldjPanel);
KFoldjPanel.setLayout(KFoldjPanelLayout);
KFoldjPanelLayout.setHorizontalGroup(
KFoldjPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(KFoldjPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(kFoldjLabel)
.addGap(35, 35, 35)
.addComponent(kFoldjSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
KFoldjPanelLayout.setVerticalGroup(
KFoldjPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(KFoldjPanelLayout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(KFoldjPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(kFoldjLabel)
.addComponent(kFoldjSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
buttonsjPanel.setName("buttonsjPanel"); // NOI18N
buttonsjPanel.setLayout(new java.awt.GridBagLayout());
acceptjButton.setText("Accept");
acceptjButton.setToolTipText("Accept the Current Values");
acceptjButton.setName("acceptjButton"); // NOI18N
acceptjButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
acceptjButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
gridBagConstraints.insets = new java.awt.Insets(6, 39, 6, 41);
buttonsjPanel.add(acceptjButton, gridBagConstraints);
canceljButton.setText("Cancel");
canceljButton.setToolTipText("Discard the Current Values");
canceljButton.setName("canceljButton"); // NOI18N
canceljButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
canceljButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(7, 37, 7, 37);
buttonsjPanel.add(canceljButton, gridBagConstraints);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(buttonsjPanel, 0, 0, Short.MAX_VALUE)
.addComponent(KFoldjPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(KFoldjPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonsjPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(13, 13, 13))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void acceptjButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_acceptjButtonActionPerformed
try {
k = (Integer) kFoldjSpinner.getValue();
} catch (Exception ex) {
JOptionPane.showMessageDialog(this,
"Insert an integer number as K value, please", "Error", 2);
k = 10;
return;
}
if (k <= 0) {
JOptionPane.showMessageDialog(this,
"Insert a positive number as K value, please", "Error", 2);
k = 10;
return;
}
setVisible(false);
}//GEN-LAST:event_acceptjButtonActionPerformed
private void canceljButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_canceljButtonActionPerformed
setVisible(false);
kFoldjSpinner.setValue(k);
}//GEN-LAST:event_canceljButtonActionPerformed
/**
* Main method
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
KFoldOptionsJDialog dialog = new KFoldOptionsJDialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel KFoldjPanel;
private javax.swing.JButton acceptjButton;
private javax.swing.JPanel buttonsjPanel;
private javax.swing.JButton canceljButton;
private javax.swing.JLabel kFoldjLabel;
private javax.swing.JSpinner kFoldjSpinner;
// End of variables declaration//GEN-END:variables
/** Number of folds (k) */
protected int k = 10;
/**
* <p>
* Gets the number of folds
* </p<
* @return int Number of folds
*/
public int getK() {
return k;
}
}