Package edu.stanford.genetics.treeview.plugin.scatterview

Source Code of edu.stanford.genetics.treeview.plugin.scatterview.ScatterParameterPanel$ZoomPanel

/* BEGIN_HEADER                                              Java TreeView
*
* $Author: rqluk $
* $RCSfile: ScatterParameterPanel.java,v $
* $Revision: 1.1 $
* $Date: 2006-08-16 19:13:49 $
* $Name:  $
*
* This file is part of Java TreeView
* Copyright (C) 2001-2003 Alok Saldanha, All Rights Reserved. Modified by Alex Segal 2004/08/13. Modifications Copyright (C) Lawrence Berkeley Lab.
*
* This software is provided under the GNU GPL Version 2. In particular,
*
* 1) If you modify a source file, make a comment in it containing your name and the date.
* 2) If you distribute a modified version, you must do it under the GPL 2.
* 3) Developers are encouraged but not required to notify the Java TreeView maintainers at alok@genome.stanford.edu when they make a useful addition. It would be nice if significant contributions could be merged into the main distribution.
*
* A full copy of the license can be found in gpl.txt or online at
* http://www.gnu.org/licenses/gpl.txt
*
* END_HEADER
*/
package edu.stanford.genetics.treeview.plugin.scatterview;

import java.awt.Dimension;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class ScatterParameterPanel extends JPanel {
  ScatterView scatterPane;
  /** Setter for scatterPane */
  public void setScatterView(ScatterView scatterPane) {
    this.scatterPane = scatterPane;
  }
  /** Getter for scatterPane */
  public ScatterView getScatterView() {
    return scatterPane;
  }

  ScatterPanel scatterPanel;
  /** Setter for scatterPanel */
  public void setScatterPanel(ScatterPanel scatterPanel) {
    this.scatterPanel = scatterPanel;
  }
  /** Getter for scatterPanel */
  public ScatterPanel getScatterPanel() {
    return scatterPanel;
  }
 
  public ScatterParameterPanel(ScatterView scatterPane, ScatterPanel scatterPanel) {
    setScatterView(scatterPane);
    setScatterPanel(scatterPanel);
    setupWidgets();
    getValues();
  }
 
  /**
  * what should the default sizes for the crosses be?
  */
  private static final String [] sizeInts = new String [] {"1", "3","5","7"};

  DrawPanel drawPanel;
  SizePanel sizePanel;
  ColorPanel colorPanel;
  ZoomPanel zoomPanel;
  public void setupWidgets() {
    drawPanel = new DrawPanel();
    add(drawPanel);

    sizePanel = new SizePanel();
    add(sizePanel);

    zoomPanel = new ZoomPanel();
    add(zoomPanel);
   
    colorPanel = new ColorPanel();
    add(colorPanel);
   
  }
 
  public void getValues() {
    drawPanel.getValues();
    sizePanel.getValues();
  }
 
  public void setValues() {
    drawPanel.setValues();
    sizePanel.setValues();
  }
 

  class ColorPanel extends JPanel {
    JButton colorsButton, autoButton;
    ColorPanel() {
      colorsButton = new JButton("Display...");
      colorsButton.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            scatterPanel.showDisplayPopup();
          }
        });
      add(colorsButton);
/*
      autoButton = new JButton("Auto ");
      autoButton.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            scatterPanel.scaleScatterView();
          }
        });
      add(autoButton);
    */
    }
  }
  class SizePanel extends JPanel {
    JComboBox sizeCombo;
    SizePanel() {
      add(new JLabel(" Size"));
      sizeCombo = new JComboBox(sizeInts);
      sizeCombo.setEditable(true);
      sizeCombo.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          setValues();
        }
      });
      add(sizeCombo);
    }
    void setValues() {
      try {
        Integer val = new Integer((String) sizeCombo.getSelectedItem());
        scatterPane.setDrawSize(val.intValue());
        scatterPane.repaint();
      } catch (java.lang.NumberFormatException e) {
      }
    }
    void getValues() {
      sizeCombo.setSelectedItem("" + scatterPane.getDrawSize());
    }
  }
 
  class DrawPanel extends JPanel {
    JComboBox drawCombo;
    DrawPanel() {
      add(new JLabel("Draw"));
      drawCombo = new JComboBox(ScatterView.drawStrings);
      drawCombo.setEditable(false);
      drawCombo.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          setValues();
        }
      });
      add(drawCombo);
    }
    void setValues() {
      scatterPane.setDrawOrder(drawCombo.getSelectedIndex());
      scatterPane.repaint();
    }
    void getValues() {
      drawCombo.setSelectedIndex( scatterPane.getDrawOrder());
    }
  }
 
  class ZoomPanel extends JPanel {
    JCheckBox zoomBox;
    JTextField widthField;
    JTextField heightField;
    ZoomPanel() {
      zoomBox = new JCheckBox("Dimension");
      add( zoomBox );
      widthField =  new JTextField("" +scatterPane.getWidth(),5);
      heightField =  new JTextField(""+scatterPane.getHeight(),5);
      add (widthField);
      add (new JLabel("x"));
      add (heightField);
      addListeners();
    }
    private void addListeners() {
      zoomBox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          setValues();
        }
      });
     
      widthField.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {/* setValue(); */}
        public void keyReleased(KeyEvent e) {/* setValue(); */}
        public void keyTyped(KeyEvent e) {
          zoomBox.setSelected(true);
          setEnabledValue();
        }
      });
     
      widthField.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate  (DocumentEvent e) { setZoomValues();}
        public void removeUpdate  (DocumentEvent e) { setZoomValues();}
        public void changedUpdate (DocumentEvent e) { setZoomValues();}
      });       
     
     
      heightField.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {/* setValue(); */}
        public void keyReleased(KeyEvent e) {/* setValue(); */}
        public void keyTyped(KeyEvent e) {
          zoomBox.setSelected(true);
          setEnabledValue();
        }
      });
     
      heightField.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate  (DocumentEvent e) { setZoomValues();}
        public void removeUpdate  (DocumentEvent e) { setZoomValues();}
        public void changedUpdate (DocumentEvent e) { setZoomValues();}
      });       
     
    }
   
    public void setValues() {
      setEnabledValue();
      setZoomValues();
    }
    public void setEnabledValue() {
      if (zoomBox.isSelected()) {
      } else {
        scatterPane.setPreferredSize(null);
      }
      scatterPane.invalidate();
      scatterPane.revalidate();
      scatterPane.getComponent().repaint();
    }
    void setZoomValues() {
     
      if (zoomBox.isSelected()) {
        try {
          Integer widthVal = new Integer(widthField.getText());
          Integer heightVal = new Integer(heightField.getText());
          scatterPane.setPreferredSize(new Dimension(widthVal.intValue(), heightVal.intValue()));
          scatterPane.invalidate();
          scatterPane.revalidate();
          scatterPane.getComponent().repaint();
        } catch (java.lang.NumberFormatException e) {
        }
      }
    }
    void getValues() {
      widthField.setText("" + scatterPane.getWidth());
      heightField.setText("" + scatterPane.getHeight());
    }
  }
 

}
TOP

Related Classes of edu.stanford.genetics.treeview.plugin.scatterview.ScatterParameterPanel$ZoomPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.