mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/ease/gotree/GOTreeHeader.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2004, 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  * GOTreeHeader.java
2 26 Feb 07 jari 7  *
2 26 Feb 07 jari 8  * Created on August 17, 2004, 10:18 AM
2 26 Feb 07 jari 9  */
2 26 Feb 07 jari 10
2 26 Feb 07 jari 11 package org.tigr.microarray.mev.cluster.gui.impl.ease.gotree;
2 26 Feb 07 jari 12
2 26 Feb 07 jari 13 import java.awt.Color;
2 26 Feb 07 jari 14 import java.awt.Dimension;
2 26 Feb 07 jari 15 import java.awt.FontMetrics;
2 26 Feb 07 jari 16 import java.awt.Graphics;
2 26 Feb 07 jari 17 import java.awt.Graphics2D;
2 26 Feb 07 jari 18 import java.awt.Rectangle;
2 26 Feb 07 jari 19 import java.awt.RenderingHints;
2 26 Feb 07 jari 20 import java.awt.font.LineMetrics;
2 26 Feb 07 jari 21 import java.text.DecimalFormat;
2 26 Feb 07 jari 22
2 26 Feb 07 jari 23 import javax.swing.BorderFactory;
2 26 Feb 07 jari 24 import javax.swing.JPanel;
2 26 Feb 07 jari 25
2 26 Feb 07 jari 26 import org.tigr.microarray.mev.cluster.gui.helpers.ktree.ITreeNodeRenderer;
2 26 Feb 07 jari 27
2 26 Feb 07 jari 28
2 26 Feb 07 jari 29 /**
2 26 Feb 07 jari 30  *
2 26 Feb 07 jari 31  * @author  braisted
2 26 Feb 07 jari 32  */
2 26 Feb 07 jari 33 public class GOTreeHeader extends JPanel {
2 26 Feb 07 jari 34     
2 26 Feb 07 jari 35     private GONode displayNode;
2 26 Feb 07 jari 36     private GOTreeViewer parent;
2 26 Feb 07 jari 37     private double lowerThr = 0.01;
2 26 Feb 07 jari 38     private double upperThr = 0.05;
2 26 Feb 07 jari 39     private String lowerStr = "0.01";
2 26 Feb 07 jari 40     private String upperStr = "0.05";
2 26 Feb 07 jari 41     private String nonsigStr = "";
2 26 Feb 07 jari 42     
2 26 Feb 07 jari 43     /** Creates a new instance of GOTreeHeader */
2 26 Feb 07 jari 44     public GOTreeHeader(GONode node, GOTreeViewer parentViewer, double upper, double lower) {
2 26 Feb 07 jari 45         super();
2 26 Feb 07 jari 46         super.setBackground(Color.white);
2 26 Feb 07 jari 47         setBackground(Color.white);
2 26 Feb 07 jari 48         setBorder(BorderFactory.createLineBorder(Color.black));
2 26 Feb 07 jari 49         displayNode = new GONode(node);
2 26 Feb 07 jari 50         displayNode.setRenderingHint(ITreeNodeRenderer.RENDERING_HINT_VERBOSE);
2 26 Feb 07 jari 51         parent = parentViewer;
2 26 Feb 07 jari 52         setThresholds(upper, lower);
2 26 Feb 07 jari 53     }
2 26 Feb 07 jari 54     
2 26 Feb 07 jari 55     public void updateSize(int x, int y) {
2 26 Feb 07 jari 56         setPreferredSize(new Dimension(x,y));
2 26 Feb 07 jari 57         setSize(x,y);
2 26 Feb 07 jari 58     }
2 26 Feb 07 jari 59     
2 26 Feb 07 jari 60     public void updateInfo(GONode selectedNode) {
2 26 Feb 07 jari 61         displayNode = selectedNode;
2 26 Feb 07 jari 62         displayNode.setRenderingHint(ITreeNodeRenderer.RENDERING_HINT_VERBOSE);
2 26 Feb 07 jari 63         updateSize( parent.getViewerWidth(), displayNode.getHeight()+10);
2 26 Feb 07 jari 64         repaint();
2 26 Feb 07 jari 65     }
2 26 Feb 07 jari 66     
2 26 Feb 07 jari 67     public void update() {
2 26 Feb 07 jari 68         displayNode.setRenderingHint(ITreeNodeRenderer.RENDERING_HINT_VERBOSE);
2 26 Feb 07 jari 69         updateSize( parent.getViewerWidth(), displayNode.getHeight()+10);
2 26 Feb 07 jari 70         repaint();
2 26 Feb 07 jari 71     }
2 26 Feb 07 jari 72     
2 26 Feb 07 jari 73     public void setThresholds(double upper, double lower) {
2 26 Feb 07 jari 74         this.upperThr = upper;
2 26 Feb 07 jari 75         this.lowerThr = lower;
2 26 Feb 07 jari 76         
2 26 Feb 07 jari 77         
2 26 Feb 07 jari 78         DecimalFormat format;
2 26 Feb 07 jari 79         
2 26 Feb 07 jari 80         if (upperThr < 0.0001){
2 26 Feb 07 jari 81             format = new DecimalFormat("0.#####E00");
2 26 Feb 07 jari 82             upperStr = format.format(upperThr);
2 26 Feb 07 jari 83         } else {
2 26 Feb 07 jari 84             format = new DecimalFormat("0.#####");
2 26 Feb 07 jari 85             upperStr = format.format(upperThr);
2 26 Feb 07 jari 86         }
2 26 Feb 07 jari 87         
2 26 Feb 07 jari 88         //upperStr = "Upper Thr. p <= "+upperStr+ " ";
2 26 Feb 07 jari 89         upperStr = "p <= "+upperStr+ " ";
2 26 Feb 07 jari 90         
2 26 Feb 07 jari 91         if (lowerThr < 0.0001){
2 26 Feb 07 jari 92             format = new DecimalFormat("0.#####E00");
2 26 Feb 07 jari 93             lowerStr = format.format(lowerThr);
2 26 Feb 07 jari 94         } else {
2 26 Feb 07 jari 95             format = new DecimalFormat("0.#####");
2 26 Feb 07 jari 96             lowerStr = format.format(lowerThr);
2 26 Feb 07 jari 97         }
2 26 Feb 07 jari 98        // lowerStr = "Lower Thr. p <= " +lowerStr+ " ";
2 26 Feb 07 jari 99         lowerStr = "p <= " +lowerStr+ " ";
2 26 Feb 07 jari 100         
2 26 Feb 07 jari 101         if (upperThr < 0.0001){
2 26 Feb 07 jari 102             format = new DecimalFormat("0.#####E00");
2 26 Feb 07 jari 103             nonsigStr = format.format(upperThr);
2 26 Feb 07 jari 104         } else {
2 26 Feb 07 jari 105             format = new DecimalFormat("0.#####");
2 26 Feb 07 jari 106             nonsigStr = format.format(upperThr);
2 26 Feb 07 jari 107         }
2 26 Feb 07 jari 108         nonsigStr = "p > "+nonsigStr;
2 26 Feb 07 jari 109     }
2 26 Feb 07 jari 110     
2 26 Feb 07 jari 111     public void paint(Graphics g) {
2 26 Feb 07 jari 112         
2 26 Feb 07 jari 113         super.paint(g);
2 26 Feb 07 jari 114         Graphics2D g2 = (Graphics2D)g;
2 26 Feb 07 jari 115         
2 26 Feb 07 jari 116         Rectangle rect = g.getClip().getBounds();
2 26 Feb 07 jari 117         
2 26 Feb 07 jari 118         //   g.clearRect(rect.x, rect.y, rect.width, rect.height);
2 26 Feb 07 jari 119         // Rectangle rect = g.getClipRect();
2 26 Feb 07 jari 120         //  ((ITreeNodeRenderer)displayNode).renderNode(g2, rect.x+5, rect.y+5, ITreeNodeRenderer.STANDARD_NODE);
2 26 Feb 07 jari 121         
2 26 Feb 07 jari 122         //       if(displayNode.contains(rect))
2 26 Feb 07 jari 123         //   if(!( rect.height < this.getHeight() ))
2 26 Feb 07 jari 124         
2 26 Feb 07 jari 125         //((ITreeNodeRenderer)displayNode).renderNode(g2, rect.x+5, 5, ITreeNodeRenderer.STANDARD_NODE);
2 26 Feb 07 jari 126         
2 26 Feb 07 jari 127         ((ITreeNodeRenderer)displayNode).renderNode(g2, 5, 5, ITreeNodeRenderer.STANDARD_NODE);
2 26 Feb 07 jari 128         
2 26 Feb 07 jari 129         
2 26 Feb 07 jari 130         g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
2 26 Feb 07 jari 131         
2 26 Feb 07 jari 132         FontMetrics fm = g.getFontMetrics();
2 26 Feb 07 jari 133         /*g.drawString(upperStr, rect.x+5+displayNode.getWidth()+ 20, 5+fm.getHeight());
2 26 Feb 07 jari 134         g.drawString(lowerStr, rect.x+5+displayNode.getWidth()+ 20, 5+2*fm.getHeight()+20);
2 26 Feb 07 jari 135         g.drawString(nonsigStr, rect.x+5+displayNode.getWidth()+ 20, 5+2*fm.getHeight()+20);
2 26 Feb 07 jari 136          
2 26 Feb 07 jari 137         g.drawRect( rect.x+5+displayNode.getWidth()+ 20, 5+fm.getHeight(), 30, 10);
2 26 Feb 07 jari 138         g.drawRect( rect.x+5+displayNode.getWidth()+ 20, fm.getHeight(), 30, 10);
2 26 Feb 07 jari 139          */
2 26 Feb 07 jari 140         
2 26 Feb 07 jari 141         LineMetrics lm = fm.getLineMetrics(lowerStr, g);
2 26 Feb 07 jari 142         
2 26 Feb 07 jari 143         g.drawRect( 5+displayNode.getWidth()+ 20, 5+(int)lm.getHeight()-(int)lm.getAscent(), 30, (int)lm.getAscent());
2 26 Feb 07 jari 144         g.setColor(Color.red);
2 26 Feb 07 jari 145         g.fillRect(5+displayNode.getWidth()+ 20+1, 5+(int)lm.getHeight()-(int)lm.getAscent()+1, 30-1, (int)lm.getAscent()-1);
2 26 Feb 07 jari 146         g.setColor(Color.black);
2 26 Feb 07 jari 147         g.drawString(lowerStr, 5+displayNode.getWidth()+ 55, 5+(int)lm.getHeight());
2 26 Feb 07 jari 148         
2 26 Feb 07 jari 149         lm = fm.getLineMetrics(upperStr, g);
2 26 Feb 07 jari 150         
2 26 Feb 07 jari 151         g.drawRect( 5+displayNode.getWidth()+ 20, 5+2*(int)lm.getHeight()-(int)lm.getAscent()+20, 30, (int)lm.getAscent());
2 26 Feb 07 jari 152         g.setColor(Color.orange);
2 26 Feb 07 jari 153         g.fillRect( 5+displayNode.getWidth()+ 20+1, 5+2*(int)lm.getHeight()-(int)lm.getAscent()+20+1, 30-1, (int)lm.getAscent()-1);
2 26 Feb 07 jari 154         g.setColor(Color.black);
2 26 Feb 07 jari 155         g.drawString(upperStr, 5+displayNode.getWidth()+ 55, 5+2*(int)lm.getHeight()+20);
2 26 Feb 07 jari 156         
2 26 Feb 07 jari 157         lm = fm.getLineMetrics(nonsigStr, g);
2 26 Feb 07 jari 158         
2 26 Feb 07 jari 159         g.drawRect( 5+displayNode.getWidth()+ 20, 5+3*(int)lm.getHeight()-(int)lm.getAscent()+40, 30, (int)lm.getAscent());
2 26 Feb 07 jari 160         g.setColor(Color.green);
2 26 Feb 07 jari 161         g.fillRect( 5+displayNode.getWidth()+ 20+1, 5+3*(int)lm.getHeight()-(int)lm.getAscent()+40+1, 30-1, (int)lm.getAscent()-1);
2 26 Feb 07 jari 162         g.setColor(Color.black);
2 26 Feb 07 jari 163         g.drawString(nonsigStr, 5+displayNode.getWidth()+ 55, 5+3*(int)lm.getHeight()+40);
2 26 Feb 07 jari 164     }
2 26 Feb 07 jari 165     
2 26 Feb 07 jari 166 }