mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/terrain/ControlPanel.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2003, The Institute for Genomic Research (TIGR).
2 26 Feb 07 jari 3 All rights reserved.
2 26 Feb 07 jari 4 */
2 26 Feb 07 jari 5 /*
2 26 Feb 07 jari 6  * $RCSfile: ControlPanel.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.4 $
2 26 Feb 07 jari 8  * $Date: 2006/02/23 20:59:56 $
2 26 Feb 07 jari 9  * $Author: caliente $
2 26 Feb 07 jari 10  * $State: Exp $
2 26 Feb 07 jari 11  */
2 26 Feb 07 jari 12 package org.tigr.microarray.mev.cluster.gui.impl.terrain;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import java.awt.Dimension;
2 26 Feb 07 jari 15 import java.awt.GridBagConstraints;
2 26 Feb 07 jari 16 import java.awt.GridBagLayout;
2 26 Feb 07 jari 17 import java.awt.Insets;
2 26 Feb 07 jari 18
2 26 Feb 07 jari 19 import javax.media.j3d.Behavior;
2 26 Feb 07 jari 20 import javax.media.j3d.BoundingLeaf;
2 26 Feb 07 jari 21 import javax.media.j3d.TransformGroup;
2 26 Feb 07 jari 22 import javax.swing.JLabel;
2 26 Feb 07 jari 23 import javax.swing.JPanel;
2 26 Feb 07 jari 24 import javax.swing.JSlider;
2 26 Feb 07 jari 25 import javax.swing.SwingUtilities;
2 26 Feb 07 jari 26 import javax.swing.border.BevelBorder;
2 26 Feb 07 jari 27 import javax.swing.event.ChangeEvent;
2 26 Feb 07 jari 28 import javax.swing.event.ChangeListener;
2 26 Feb 07 jari 29
2 26 Feb 07 jari 30 public class ControlPanel extends JPanel implements ChangeListener {
2 26 Feb 07 jari 31
2 26 Feb 07 jari 32     private SliderBehavior sliderBehavior;
2 26 Feb 07 jari 33     private JLabel label;
2 26 Feb 07 jari 34     private double scale = 0.01;
2 26 Feb 07 jari 35     private double curSliderValue = 0;
2 26 Feb 07 jari 36
2 26 Feb 07 jari 37     public ControlPanel(TransformGroup sliderTarget, KeyMotionBehavior keyMotionBehavior, BoundingLeaf boundingLeaf) {
2 26 Feb 07 jari 38         setBorder(new BevelBorder(BevelBorder.RAISED));
2 26 Feb 07 jari 39         setLayout(new GridBagLayout());
2 26 Feb 07 jari 40         setPreferredSize(new Dimension(110, 130));
2 26 Feb 07 jari 41
2 26 Feb 07 jari 42         GridBagConstraints gbc = new GridBagConstraints();
2 26 Feb 07 jari 43         gbc.anchor = GridBagConstraints.WEST;
2 26 Feb 07 jari 44         gbc.fill = GridBagConstraints.HORIZONTAL;
2 26 Feb 07 jari 45         gbc.insets = new Insets(5, 5, 5, 5);
2 26 Feb 07 jari 46
2 26 Feb 07 jari 47         // label
2 26 Feb 07 jari 48         this.label = new JLabel("Map position: 0.0");
2 26 Feb 07 jari 49         gbc.gridx  = 0;
2 26 Feb 07 jari 50         gbc.gridy  = 0;
2 26 Feb 07 jari 51         gbc.weightx = 1.0;
2 26 Feb 07 jari 52         add(this.label, gbc);
2 26 Feb 07 jari 53
2 26 Feb 07 jari 54         // slider
2 26 Feb 07 jari 55         this.sliderBehavior = createSliderBehavior(sliderTarget, boundingLeaf, this);
2 26 Feb 07 jari 56         gbc.gridx  = 0;
2 26 Feb 07 jari 57         gbc.gridy  = 1;
2 26 Feb 07 jari 58         gbc.weighty = 1.0;
2 26 Feb 07 jari 59         gbc.anchor = GridBagConstraints.NORTHWEST;
2 26 Feb 07 jari 60
2 26 Feb 07 jari 61         add(this.sliderBehavior.getSlider(), gbc);
2 26 Feb 07 jari 62
2 26 Feb 07 jari 63         gbc.gridx  = 1;
2 26 Feb 07 jari 64         gbc.gridy  = 0;
2 26 Feb 07 jari 65         gbc.weightx = 0.0;
2 26 Feb 07 jari 66         gbc.weighty = 1.0;
2 26 Feb 07 jari 67         gbc.gridheight = 2;
2 26 Feb 07 jari 68         gbc.fill = GridBagConstraints.NONE;
2 26 Feb 07 jari 69         gbc.anchor = GridBagConstraints.EAST;
2 26 Feb 07 jari 70         add(new NavigationPanel(keyMotionBehavior), gbc);
2 26 Feb 07 jari 71     }
2 26 Feb 07 jari 72
2 26 Feb 07 jari 73     public Behavior getSliderBehavior() {
2 26 Feb 07 jari 74         return this.sliderBehavior;
2 26 Feb 07 jari 75     }
2 26 Feb 07 jari 76
2 26 Feb 07 jari 77     public double getSliderValue() {
2 26 Feb 07 jari 78         return this.curSliderValue;
2 26 Feb 07 jari 79     }
2 26 Feb 07 jari 80
2 26 Feb 07 jari 81     public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 82         this.curSliderValue = this.scale*((JSlider)e.getSource()).getValue();
2 26 Feb 07 jari 83         this.label.setText("Map position: "+String.valueOf(this.curSliderValue));
2 26 Feb 07 jari 84     }
2 26 Feb 07 jari 85
2 26 Feb 07 jari 86     protected SliderBehavior createSliderBehavior(TransformGroup sliderTarget, BoundingLeaf boundingLeaf, ChangeListener l) {
2 26 Feb 07 jari 87         SliderBehavior sliderBehavior = new SliderBehavior(sliderTarget);
2 26 Feb 07 jari 88         sliderBehavior.setSchedulingBoundingLeaf(boundingLeaf);
2 26 Feb 07 jari 89         sliderBehavior.getSlider().addChangeListener(l);
2 26 Feb 07 jari 90         sliderBehavior.setOrientation(SwingUtilities.HORIZONTAL);
2 26 Feb 07 jari 91         sliderBehavior.setMinimum(-30);
2 26 Feb 07 jari 92         sliderBehavior.setMaximum(30);
2 26 Feb 07 jari 93         sliderBehavior.setValue(0);
2 26 Feb 07 jari 94         sliderBehavior.setScale(this.scale);
2 26 Feb 07 jari 95         return sliderBehavior;
2 26 Feb 07 jari 96     }
2 26 Feb 07 jari 97
2 26 Feb 07 jari 98
2 26 Feb 07 jari 99 }