/* * The MIT License (MIT) * * Copyright (c) 2007-2015 Broad Institute * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /* * DataRangeDialog.java * * Created on March 29, 2008, 9:51 PM */ package org.broad.igv.ui; import org.broad.igv.renderer.DataRange; import javax.swing.*; import java.awt.*; /** * @author jrobinso */ public class DataRangeDialog extends javax.swing.JDialog { private boolean canceled; private float min; private float base; private float max; private boolean isLog; /** * Creates new form DataRangeDialog */ public DataRangeDialog(java.awt.Frame parent, DataRange axisDefinition) { super(parent, true); this.setLocationRelativeTo(parent); initComponents(); if (axisDefinition != null) { min = axisDefinition.getMinimum(); base = axisDefinition.getBaseline(); max = axisDefinition.getMaximum(); isLogCheckBox.setSelected(axisDefinition.isLog()); minTextField.setText(String.valueOf(min)); baseTextField.setText(String.valueOf(base)); maxTextField.setText(String.valueOf(max)); } } public void setHideMid(boolean hideMid) { baseTextField.setVisible(!hideMid); jLabel3.setVisible(!hideMid); } /** * 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() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); minTextField = new javax.swing.JTextField(); baseTextField = new javax.swing.JTextField(); maxTextField = new javax.swing.JTextField(); okButton = new javax.swing.JButton(); getRootPane().setDefaultButton(okButton); cancelButton = new javax.swing.JButton(); isLogCheckBox = new JCheckBox(); isLogLabel = new JLabel("Log scale"); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Data Range"); jLabel1.setFont(FontManager.getFont(Font.BOLD, 12)); jLabel1.setText("Data Range"); jLabel2.setText("Min"); jLabel3.setText("Mid"); jLabel4.setText("Max"); okButton.setText("OK"); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); cancelButton.setText("Cancel"); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(38, 38, 38) .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 299, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(layout.createSequentialGroup() .add(77, 77, 77) .add(cancelButton) .add(31, 31, 31) .add(okButton)) .add(layout.createSequentialGroup() .add(63, 63, 63) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel2) .add(jLabel3) .add(jLabel4) .add(isLogLabel)) .add(83, 83, 83) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(maxTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 97, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(baseTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 97, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(minTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 97, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(isLogCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 97, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 27, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(33, 33, 33) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(jLabel2) .add(18, 18, 18) .add(jLabel3)) .add(layout.createSequentialGroup() .add(minTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(baseTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(12, 12, 12) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel4) .add(maxTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(isLogLabel) .add(isLogCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 77, Short.MAX_VALUE) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(cancelButton) .add(okButton)) .add(54, 54, 54)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed if (convertParms()) { setVisible(false); } }//GEN-LAST:event_okButtonActionPerformed private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed canceled = true; setVisible(false); }//GEN-LAST:event_cancelButtonActionPerformed private boolean convertParms() { try { min = Float.valueOf(minTextField.getText()); max = Float.valueOf(maxTextField.getText()); base = Float.valueOf(baseTextField.getText()); isLog = isLogCheckBox.isSelected(); return true; } catch (NumberFormatException numberFormatException) { JOptionPane.showMessageDialog(this, "Min, base, and max must be numeric values"); return false; } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { DataRangeDialog dialog = new DataRangeDialog(new javax.swing.JFrame(), null); 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.JTextField baseTextField; private javax.swing.JButton cancelButton; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JTextField maxTextField; private javax.swing.JTextField minTextField; private javax.swing.JButton okButton; // End of variables declaration//GEN-END:variables private JCheckBox isLogCheckBox; private JLabel isLogLabel; public boolean isCanceled() { return canceled; } public float getMin() { return min; } public float getBase() { return base; } public float getMax() { return max; } public boolean isLog() { return isLog; } public DataRange.Type getDataRangeType(){ return isLog() ? DataRange.Type.LOG : DataRange.Type.LINEAR; } }