/***********************************************************************
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/
**********************************************************************/
package keel.GraphInterKeel.datacf.util;
import javax.swing.JLabel;
import javax.swing.JTextField;
/**
* <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>
*/
public class OptionsDialog extends javax.swing.JDialog {
/**
* <p>
* General dialog for obtaining values from the user
* <p/>
*/
/**
* <p>
* Constructor that initializes the panel
* </p>
* @param parent Parent frame
* @param modal Should the dialog be modal?
*/
public OptionsDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
this.setLocationRelativeTo(parent);
this.setResizable(false);
}
/**
* <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;
mainPanel = new javax.swing.JPanel();
propertiesPanel = new javax.swing.JPanel();
propertyLabel = new javax.swing.JLabel();
valueLabel = new javax.swing.JLabel();
buttonPanel = new javax.swing.JPanel();
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setName("Form"); // NOI18N
mainPanel.setName("mainPanel"); // NOI18N
mainPanel.setLayout(new java.awt.GridBagLayout());
propertiesPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Options"));
propertiesPanel.setName("propertiesPanel"); // NOI18N
propertiesPanel.setLayout(new java.awt.GridBagLayout());
propertyLabel.setFont(propertyLabel.getFont().deriveFont((propertyLabel.getFont().getStyle() | java.awt.Font.ITALIC)));
propertyLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
propertyLabel.setText("Property");
propertyLabel.setName("propertyLabel"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.weightx = 0.2;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
propertiesPanel.add(propertyLabel, gridBagConstraints);
valueLabel.setFont(valueLabel.getFont().deriveFont((valueLabel.getFont().getStyle() | java.awt.Font.ITALIC)));
valueLabel.setText("Value");
valueLabel.setName("valueLabel"); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
gridBagConstraints.weightx = 0.8;
propertiesPanel.add(valueLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 0.9;
mainPanel.add(propertiesPanel, gridBagConstraints);
buttonPanel.setName("buttonPanel"); // NOI18N
buttonPanel.setLayout(new java.awt.GridBagLayout());
okButton.setText("Accept");
okButton.setName("okButton"); // NOI18N
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(0, 15, 0, 15);
buttonPanel.add(okButton, gridBagConstraints);
cancelButton.setText("Cancel");
cancelButton.setName("cancelButton"); // NOI18N
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
buttonPanel.add(cancelButton, new java.awt.GridBagConstraints());
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 0.1;
mainPanel.add(buttonPanel, gridBagConstraints);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(mainPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(mainPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE)
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
ok = true;
setVisible(false);
}//GEN-LAST:event_okButtonActionPerformed
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
ok = false;
setVisible(false);
}//GEN-LAST:event_cancelButtonActionPerformed
/**
* Main method
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
OptionsDialog dialog = new OptionsDialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
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 buttonPanel;
private javax.swing.JButton cancelButton;
private javax.swing.JPanel mainPanel;
private javax.swing.JButton okButton;
private javax.swing.JPanel propertiesPanel;
private javax.swing.JLabel propertyLabel;
private javax.swing.JLabel valueLabel;
// End of variables declaration//GEN-END:variables
/** OK button */
protected boolean ok = false;
/**
* <p>
* Returns if Ok button has been pressed
* </p>
* @return True if OK is pressed
*/
public boolean isOk() {
return ok;
}
/**
* <p>
* Adds a option to the panel
* </p>
* @param name Name of the propertie
* @param defaultValue Default value
*/
public void addProperty(String name, String defaultValue) {
int y = ((propertiesPanel.getComponentCount()) / 2);
java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
JLabel propertyName = new JLabel(name);
propertyName.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
propertiesPanel.add(propertyName, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = y;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
propertiesPanel.add(new JTextField(defaultValue), gridBagConstraints);
this.setSize(300, 135 + ((y - 1) * 30));
}
/**
* <p>
* Returns the value of an option
* </p>
* @param name Name of the property
* @return String Value that the user has introduced
*/
public String getOptionValue(String name) {
for (int i = 0; i < propertiesPanel.getComponentCount(); i++) {
if (propertiesPanel.getComponent(i) instanceof JLabel) {
JLabel label = (JLabel) propertiesPanel.getComponent(i);
if (label.getText().equals(name)) {
return ((JTextField) propertiesPanel.getComponent(i + 1)).getText();
}
}
}
return "";
}
}