/* * Abs.java * */ package com.imsl.demo.SeriesAnalysis.Lib; import java.util.ArrayList; import com.imsl.demo.SeriesAnalysis.SeriesAnalysis; /** * * @author Ed Stewart * @created March 5, 2003 */ public class Abs extends javax.swing.JDialog { private ArrayList data; private ArrayList params; private int index1; private javax.swing.JFrame parentFrame; /* The constructor accepts the required JFrame parent */ public Abs(javax.swing.JFrame parent) { super(parent, false); parentFrame = parent; initComponents(); java.awt.Dimension parentSize = parent.getSize(); java.awt.Point parentLoc = parent.getLocationOnScreen(); parentLoc.x += parentSize.width/2.5; parentLoc.y += parentSize.height/2.5; setLocation(parentLoc.x, parentLoc.y); } /* The setData method accepts the two required ArrayList parameters */ public void setData(ArrayList paramsList, ArrayList dataList) { params = paramsList; data = dataList; jList1.setVisibleRowCount(params.size()); jList1.setPreferredSize(jList1.getPreferredScrollableViewportSize()); jList1.setListData(params.toArray()); jButtonAbs.setEnabled(false); } /** 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. */ private void initComponents() {//GEN-BEGIN:initComponents jScrollPane1 = new javax.swing.JScrollPane(); jList1 = new javax.swing.JList(); jPanel2 = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jPanel11 = new javax.swing.JPanel(); jButtonAbs = new javax.swing.JButton(); getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.X_AXIS)); setTitle("Absolute Value"); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); jScrollPane1.setPreferredSize(new java.awt.Dimension(100, 300)); jList1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jList1.setFixedCellHeight(18); jList1.setPreferredSize(new java.awt.Dimension(300, 500)); jList1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jList1MouseClicked(evt); } }); jScrollPane1.setViewportView(jList1); getContentPane().add(jScrollPane1); jPanel2.setLayout(new java.awt.BorderLayout()); jPanel2.setPreferredSize(new java.awt.Dimension(300, 300)); jPanel3.setPreferredSize(new java.awt.Dimension(300, 75)); jLabel1.setText("Parameter Name:"); jLabel1.setMaximumSize(new java.awt.Dimension(32767, 32767)); jLabel1.setMinimumSize(new java.awt.Dimension(4, 20)); jLabel1.setPreferredSize(new java.awt.Dimension(150, 20)); jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jPanel3.add(jLabel1); jTextField1.setEditable(false); jTextField1.setForeground(java.awt.Color.blue); jTextField1.setMaximumSize(new java.awt.Dimension(32767, 32767)); jTextField1.setPreferredSize(new java.awt.Dimension(150, 20)); jPanel3.add(jTextField1); jPanel2.add(jPanel3, java.awt.BorderLayout.NORTH); jLabel2.setText("Select Time Series to Compute:"); jPanel2.add(jLabel2, java.awt.BorderLayout.CENTER); jPanel11.setPreferredSize(new java.awt.Dimension(300, 40)); jButtonAbs.setText("Compute Absolute Value"); jButtonAbs.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAbsActionPerformed(evt); } }); jPanel11.add(jButtonAbs); jPanel2.add(jPanel11, java.awt.BorderLayout.CENTER); getContentPane().add(jPanel2); pack(); }//GEN-END:initComponents /* Clicking on the list selects the parameter, updates the Name, and enables the Compute button */ private void jList1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jList1MouseClicked index1 = jList1.locationToIndex(evt.getPoint()); jTextField1.setText((String) params.get(index1)); jButtonAbs.setEnabled(true); }//GEN-LAST:event_jList1MouseClicked /* Clicking on the compute button computes the abs[] array and adds it to the parameter lists * locally and in the parent by calling updateList on the parent frame */ private void jButtonAbsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAbsActionPerformed double[] dataArray = (double[]) data.get(index1); double[] abs = new double[dataArray.length]; for (int i=0; i<dataArray.length; i++) { abs[i] = com.imsl.math.JMath.abs(dataArray[i]); } params.add((String) params.get(index1) + "_Abs"); data.add(abs); jList1.setVisibleRowCount(params.size()); jList1.setPreferredSize(jList1.getPreferredScrollableViewportSize()); jList1.setListData(params.toArray()); ((SeriesAnalysis)parentFrame).updateList(); }//GEN-LAST:event_jButtonAbsActionPerformed /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm setVisible(false); dispose(); }//GEN-LAST:event_exitForm // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JScrollPane jScrollPane1; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel3; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel11; private javax.swing.JList jList1; private javax.swing.JButton jButtonAbs; private javax.swing.JTextField jTextField1; // End of variables declaration//GEN-END:variables }