mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/terrain/SliderBehavior.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: SliderBehavior.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.event.MouseEvent;
2 26 Feb 07 jari 15 import java.util.Enumeration;
2 26 Feb 07 jari 16
2 26 Feb 07 jari 17 import javax.media.j3d.Behavior;
2 26 Feb 07 jari 18 import javax.media.j3d.Transform3D;
2 26 Feb 07 jari 19 import javax.media.j3d.TransformGroup;
2 26 Feb 07 jari 20 import javax.media.j3d.WakeupCriterion;
2 26 Feb 07 jari 21 import javax.media.j3d.WakeupOnBehaviorPost;
2 26 Feb 07 jari 22 import javax.swing.JSlider;
2 26 Feb 07 jari 23 import javax.swing.event.ChangeEvent;
2 26 Feb 07 jari 24 import javax.swing.event.ChangeListener;
2 26 Feb 07 jari 25 import javax.vecmath.Vector3d;
2 26 Feb 07 jari 26
2 26 Feb 07 jari 27 public class SliderBehavior extends Behavior implements ChangeListener {
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29     private TransformGroup target;
2 26 Feb 07 jari 30     private WakeupCriterion criterion;
2 26 Feb 07 jari 31     private double scale = 0.01;
2 26 Feb 07 jari 32
2 26 Feb 07 jari 33     private JSlider slider;
2 26 Feb 07 jari 34
2 26 Feb 07 jari 35     public SliderBehavior(TransformGroup target) {
2 26 Feb 07 jari 36         this.target = target;
2 26 Feb 07 jari 37         this.slider = new JSlider();
2 26 Feb 07 jari 38         this.slider.addChangeListener(this);
2 26 Feb 07 jari 39     }
2 26 Feb 07 jari 40
2 26 Feb 07 jari 41     public void setOrientation(int orientation) {
2 26 Feb 07 jari 42         this.slider.setOrientation(orientation);
2 26 Feb 07 jari 43     }
2 26 Feb 07 jari 44
2 26 Feb 07 jari 45     public void setMinimum(int min) {
2 26 Feb 07 jari 46         this.slider.setMinimum(min);
2 26 Feb 07 jari 47     }
2 26 Feb 07 jari 48
2 26 Feb 07 jari 49     public void setMaximum(int max) {
2 26 Feb 07 jari 50         this.slider.setMaximum(max);
2 26 Feb 07 jari 51     }
2 26 Feb 07 jari 52
2 26 Feb 07 jari 53     public void setValue(int value) {
2 26 Feb 07 jari 54         this.slider.setValue(value);
2 26 Feb 07 jari 55     }
2 26 Feb 07 jari 56
2 26 Feb 07 jari 57     public void setScale(double scale) {
2 26 Feb 07 jari 58         this.scale = scale;
2 26 Feb 07 jari 59     }
2 26 Feb 07 jari 60
2 26 Feb 07 jari 61     public JSlider getSlider() {
2 26 Feb 07 jari 62         return this.slider;
2 26 Feb 07 jari 63     }
2 26 Feb 07 jari 64
2 26 Feb 07 jari 65     public void initialize() {
2 26 Feb 07 jari 66         this.criterion = new WakeupOnBehaviorPost(this, MouseEvent.MOUSE_DRAGGED);
2 26 Feb 07 jari 67         wakeupOn(criterion);
2 26 Feb 07 jari 68     }
2 26 Feb 07 jari 69
2 26 Feb 07 jari 70     public void processStimulus(Enumeration enumeration) {
2 26 Feb 07 jari 71         double value = scale*this.slider.getValue();
2 26 Feb 07 jari 72
2 26 Feb 07 jari 73         Transform3D target_t3d = new Transform3D();
2 26 Feb 07 jari 74         this.target.getTransform(target_t3d);
2 26 Feb 07 jari 75
2 26 Feb 07 jari 76         Vector3d target_v3d = new Vector3d();
2 26 Feb 07 jari 77         target_t3d.get(target_v3d);
2 26 Feb 07 jari 78         target_v3d.y = value - target_v3d.y;
2 26 Feb 07 jari 79
2 26 Feb 07 jari 80         Transform3D t3d = new Transform3D();
2 26 Feb 07 jari 81         t3d.set(target_v3d);
2 26 Feb 07 jari 82
2 26 Feb 07 jari 83         target_t3d.mul(t3d);
2 26 Feb 07 jari 84         this.target.setTransform(target_t3d);
2 26 Feb 07 jari 85
2 26 Feb 07 jari 86         wakeupOn(criterion);
2 26 Feb 07 jari 87     }
2 26 Feb 07 jari 88
2 26 Feb 07 jari 89     public void stateChanged(ChangeEvent e) {
2 26 Feb 07 jari 90         postId(MouseEvent.MOUSE_DRAGGED);
2 26 Feb 07 jari 91     }
2 26 Feb 07 jari 92 }