mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHGuiObj/CGHCircleViewer/CGHCircleViewerHeader.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * CGHPositionGraphSeparatedHeader.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * Created on March 20, 2003, 1:26 AM
2 26 Feb 07 jari 5  */
2 26 Feb 07 jari 6
2 26 Feb 07 jari 7 package org.tigr.microarray.mev.cgh.CGHGuiObj.CGHCircleViewer;
2 26 Feb 07 jari 8
2 26 Feb 07 jari 9 import java.awt.Color;
2 26 Feb 07 jari 10 import java.awt.Dimension;
2 26 Feb 07 jari 11 import java.awt.FontMetrics;
2 26 Feb 07 jari 12 import java.awt.Graphics;
2 26 Feb 07 jari 13 import java.awt.Graphics2D;
2 26 Feb 07 jari 14 import java.awt.Insets;
2 26 Feb 07 jari 15 import java.awt.RenderingHints;
2 26 Feb 07 jari 16
2 26 Feb 07 jari 17 import javax.swing.JPanel;
2 26 Feb 07 jari 18
2 26 Feb 07 jari 19 import org.tigr.microarray.mev.cgh.CGHDataModel.CGHCircleViewerModel;
2 26 Feb 07 jari 20 import org.tigr.microarray.mev.cluster.gui.IDisplayMenu;
2 26 Feb 07 jari 21
2 26 Feb 07 jari 22 /**
2 26 Feb 07 jari 23  *
2 26 Feb 07 jari 24  * @author  Adam Margolin
2 26 Feb 07 jari 25  * @author Raktim Sinha
2 26 Feb 07 jari 26  */
2 26 Feb 07 jari 27
2 26 Feb 07 jari 28 public class CGHCircleViewerHeader extends JPanel{
2 26 Feb 07 jari 29     protected final int RECT_HEIGHT = 15;
2 26 Feb 07 jari 30     protected boolean isAntiAliasing = true;
2 26 Feb 07 jari 31     protected float maxValue;
2 26 Feb 07 jari 32     protected float minValue;
2 26 Feb 07 jari 33
2 26 Feb 07 jari 34     CGHCircleViewerModel model;
2 26 Feb 07 jari 35     Insets insets;
2 26 Feb 07 jari 36     JPanel viewer;
2 26 Feb 07 jari 37
2 26 Feb 07 jari 38     /** Creates a new instance of CGHPositionGraphSeparatedHeader */
2 26 Feb 07 jari 39     public CGHCircleViewerHeader(Insets insets, CGHCircleViewerModel model, JPanel viewer) {
2 26 Feb 07 jari 40         super();
2 26 Feb 07 jari 41         setBackground(Color.black);
2 26 Feb 07 jari 42         this.insets = insets;
2 26 Feb 07 jari 43         this.model = model;
2 26 Feb 07 jari 44         this.viewer = viewer;
2 26 Feb 07 jari 45         updateSize();
2 26 Feb 07 jari 46     }
2 26 Feb 07 jari 47
2 26 Feb 07 jari 48     public void paint(Graphics g1D) {
2 26 Feb 07 jari 49         super.paint(g1D);
2 26 Feb 07 jari 50         if (this.model == null){
2 26 Feb 07 jari 51             return;
2 26 Feb 07 jari 52         }
2 26 Feb 07 jari 53         int viewerWidth = Math.min(viewer.getWidth(), viewer.getHeight());
2 26 Feb 07 jari 54         Graphics2D g = (Graphics2D)g1D;
2 26 Feb 07 jari 55         int width;
2 26 Feb 07 jari 56         width = viewerWidth - (insets.left + insets.right) ;
2 26 Feb 07 jari 57
2 26 Feb 07 jari 58         g.drawImage(model.getNegColorImage(), viewer.getWidth() / 2 - width / 2, 0, (int)(width/2f), RECT_HEIGHT, null);
2 26 Feb 07 jari 59         g.drawImage(model.getPosColorImage(), viewer.getWidth() / 2, 0, (int)(width/2.0), RECT_HEIGHT, null);
2 26 Feb 07 jari 60
2 26 Feb 07 jari 61         //g.drawImage(model.getNegColorImage(), viewerWidth / 2 - width / 2, 0, (int)(width/2f), RECT_HEIGHT, null);
2 26 Feb 07 jari 62         //g.drawImage(model.getPosColorImage(), viewerWidth / 2, 0, (int)(width/2.0), RECT_HEIGHT, null);
2 26 Feb 07 jari 63
2 26 Feb 07 jari 64         //g.drawImage(model.getNegColorImage(), insets.left, 0, (int)(width), RECT_HEIGHT, null);
2 26 Feb 07 jari 65         //g.drawImage(model.getPosColorImage(), (int)(width/2f)+insets.left, 0, (int)(width), RECT_HEIGHT, null);
2 26 Feb 07 jari 66
2 26 Feb 07 jari 67         FontMetrics hfm = g.getFontMetrics();
2 26 Feb 07 jari 68         int descent = hfm.getDescent();
2 26 Feb 07 jari 69         int fHeight = hfm.getHeight();
2 26 Feb 07 jari 70
2 26 Feb 07 jari 71         g.setColor(Color.white);
2 26 Feb 07 jari 72         if (isAntiAliasing) {
2 26 Feb 07 jari 73             g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
2 26 Feb 07 jari 74             g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
2 26 Feb 07 jari 75         }
2 26 Feb 07 jari 76         int textWidth;
2 26 Feb 07 jari 77         //g.drawString(String.valueOf(this.minValue), insets.left, RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 78         g.drawString(String.valueOf(this.minValue), (viewer.getWidth() / 2) - (width / 2), RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 79         //g.drawString(String.valueOf(model.getMinRatioScale()), insets.left, RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 80
2 26 Feb 07 jari 81         textWidth = hfm.stringWidth("0:0");
2 26 Feb 07 jari 82         //g.drawString("0:0", (int)(width/2f)-textWidth/2 + insets.left, RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 83         g.drawString("0:0", (int)(viewer.getWidth()/2) - (textWidth/2), RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 84
2 26 Feb 07 jari 85         textWidth = hfm.stringWidth(String.valueOf(this.maxValue));
2 26 Feb 07 jari 86         //g.drawString(String.valueOf(this.maxValue), (viewerWidth - insets.right - insets.left -textWidth), RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 87         g.drawString(String.valueOf(this.maxValue), (viewer.getWidth() / 2) + (width / 2) - textWidth, RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 88
2 26 Feb 07 jari 89     }
2 26 Feb 07 jari 90
2 26 Feb 07 jari 91     void updateSize() {
2 26 Feb 07 jari 92         Graphics2D g = (Graphics2D)getGraphics();
2 26 Feb 07 jari 93         if (g == null) {
2 26 Feb 07 jari 94             return;
2 26 Feb 07 jari 95         }
2 26 Feb 07 jari 96         if (isAntiAliasing) {
2 26 Feb 07 jari 97             g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
2 26 Feb 07 jari 98             g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
2 26 Feb 07 jari 99         }
2 26 Feb 07 jari 100         FontMetrics hfm = g.getFontMetrics();
2 26 Feb 07 jari 101
2 26 Feb 07 jari 102         setSize(2, 10+this.RECT_HEIGHT+hfm.getHeight());
2 26 Feb 07 jari 103         setPreferredSize(new Dimension(2, 10+this.RECT_HEIGHT+hfm.getHeight()));
2 26 Feb 07 jari 104         //setSize(getWidth(), 10+this.RECT_HEIGHT+hfm.getHeight());
2 26 Feb 07 jari 105         //setPreferredSize(new Dimension(getWidth(), 10+this.RECT_HEIGHT+hfm.getHeight()));
2 26 Feb 07 jari 106     }
2 26 Feb 07 jari 107
2 26 Feb 07 jari 108     /**
2 26 Feb 07 jari 109      * Sets min and max ratio values
2 26 Feb 07 jari 110      */
2 26 Feb 07 jari 111     public void setMinAndMaxRatios(float min, float max){
2 26 Feb 07 jari 112         this.minValue = min;
2 26 Feb 07 jari 113         this.maxValue = max;
2 26 Feb 07 jari 114         this.repaint();
2 26 Feb 07 jari 115     }
2 26 Feb 07 jari 116
2 26 Feb 07 jari 117     public void onMenuChanged(IDisplayMenu menu) {
2 26 Feb 07 jari 118
2 26 Feb 07 jari 119         model.setNegColorImage(menu.getNegativeGradientImage());
2 26 Feb 07 jari 120         model.setPosColorImage(menu.getPositiveGradientImage());
2 26 Feb 07 jari 121
2 26 Feb 07 jari 122         setMinAndMaxRatios(menu.getMinRatioScale(), menu.getMaxRatioScale());
2 26 Feb 07 jari 123         updateSize();
2 26 Feb 07 jari 124     }
2 26 Feb 07 jari 125 }