/*********************************************************************** 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 ""; } }