mev-4.0.01/source/org/tigr/microarray/mev/cgh/CGHGuiObj/CGHPositionGraph/CGHPositionGraphSeparatedHeader.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.CGHPositionGraph;
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.FontMetrics;
2 26 Feb 07 jari 11 import java.awt.Graphics;
2 26 Feb 07 jari 12 import java.awt.Graphics2D;
2 26 Feb 07 jari 13 import java.awt.Insets;
2 26 Feb 07 jari 14 import java.awt.RenderingHints;
2 26 Feb 07 jari 15
2 26 Feb 07 jari 16 /**
2 26 Feb 07 jari 17  *
2 26 Feb 07 jari 18  * @author  Adam Margolin
2 26 Feb 07 jari 19  * @author Raktim Sinha
2 26 Feb 07 jari 20  */
2 26 Feb 07 jari 21
2 26 Feb 07 jari 22 public class CGHPositionGraphSeparatedHeader extends CGHPositionGraphHeader {
2 26 Feb 07 jari 23
2 26 Feb 07 jari 24     CGHPositionGraphSeparatedViewer viewer;
2 26 Feb 07 jari 25
2 26 Feb 07 jari 26     /** Creates a new instance of CGHPositionGraphSeparatedHeader */
2 26 Feb 07 jari 27     public CGHPositionGraphSeparatedHeader(Insets insets, CGHPositionGraphSeparatedViewer viewer) {
2 26 Feb 07 jari 28         super(insets);
2 26 Feb 07 jari 29         this.viewer = viewer;
2 26 Feb 07 jari 30     }
2 26 Feb 07 jari 31
2 26 Feb 07 jari 32     public void paint(Graphics g1D) {
2 26 Feb 07 jari 33         super.paint(g1D);
2 26 Feb 07 jari 34         if (this.model == null || this.model.getNumExperiments() == 0) {
2 26 Feb 07 jari 35             return;
2 26 Feb 07 jari 36         }
2 26 Feb 07 jari 37
2 26 Feb 07 jari 38         Graphics2D g = (Graphics2D)g1D;
2 26 Feb 07 jari 39         int width;
2 26 Feb 07 jari 40         width = model.getNumExperiments() * (elementWidth + rectSpacing) + elementWidth / 2 + insets.left;
2 26 Feb 07 jari 41         width *= 2;
2 26 Feb 07 jari 42         width += viewer.getCytoBandsCanvas().getWidth();
2 26 Feb 07 jari 43
2 26 Feb 07 jari 44         g.drawImage(model.getNegColorImage(), viewer.getWidth() / 2 - (width / 2) , 0, (int)(width/2f), RECT_HEIGHT, null);
2 26 Feb 07 jari 45         g.drawImage(model.getPosColorImage(), viewer.getWidth() / 2, 0, (int)(width/2.0), RECT_HEIGHT, null);
2 26 Feb 07 jari 46
2 26 Feb 07 jari 47         //g.drawImage(model.getNegColorImage(), insets.left, 0, (int)(width/2f), RECT_HEIGHT, null);
2 26 Feb 07 jari 48         //g.drawImage(model.getPosColorImage(), (int)(width/2f)+insets.left, 0, (int)(width/2.0), RECT_HEIGHT, null);
2 26 Feb 07 jari 49
2 26 Feb 07 jari 50
2 26 Feb 07 jari 51         //g.drawImage(model.getNegColorImage(), insets.left, 0, (int)(width), RECT_HEIGHT, null);
2 26 Feb 07 jari 52         //g.drawImage(model.getPosColorImage(), (int)(width/2f)+insets.left, 0, (int)(width), RECT_HEIGHT, null);
2 26 Feb 07 jari 53
2 26 Feb 07 jari 54         FontMetrics hfm = g.getFontMetrics();
2 26 Feb 07 jari 55         int descent = hfm.getDescent();
2 26 Feb 07 jari 56         int fHeight = hfm.getHeight();
2 26 Feb 07 jari 57
2 26 Feb 07 jari 58         g.setColor(Color.white);
2 26 Feb 07 jari 59         if (isAntiAliasing) {
2 26 Feb 07 jari 60             g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
2 26 Feb 07 jari 61             g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
2 26 Feb 07 jari 62         }
2 26 Feb 07 jari 63         //int textWidth;
2 26 Feb 07 jari 64         int textWidth = hfm.stringWidth(String.valueOf(model.getMinRatioScale()));
2 26 Feb 07 jari 65         //g.drawString(String.valueOf(this.minValue), (viewer.getWidth() / 2) - (width / 2) - textWidth, RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 66         g.drawString(String.valueOf(model.getMinRatioScale()), (viewer.getWidth() / 2) - (width / 2) - textWidth, RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 67         textWidth = hfm.stringWidth("0:0");
2 26 Feb 07 jari 68         g.drawString("0:0", viewer.getWidth() / 2, RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 69         textWidth = hfm.stringWidth(String.valueOf(this.maxValue));
2 26 Feb 07 jari 70         //g.drawString(String.valueOf(this.maxValue), (viewer.getWidth() / 2) + (width / 2) , RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 71         g.drawString(String.valueOf(model.getMaxRatioScale()), (viewer.getWidth() / 2) + (width / 2) , RECT_HEIGHT+fHeight);
2 26 Feb 07 jari 72
2 26 Feb 07 jari 73         drawColumnHeaders(g);
2 26 Feb 07 jari 74     }
2 26 Feb 07 jari 75
2 26 Feb 07 jari 76     private void drawColumnHeaders(Graphics2D g) {
2 26 Feb 07 jari 77         //final int size = data.getFeaturesCount();
2 26 Feb 07 jari 78         final int numExperiments = model.getNumExperiments();
2 26 Feb 07 jari 79         int rectSpacing = 5;
2 26 Feb 07 jari 80
2 26 Feb 07 jari 81         if (numExperiments == 0) {
2 26 Feb 07 jari 82             return;
2 26 Feb 07 jari 83         }
2 26 Feb 07 jari 84         FontMetrics hfm = g.getFontMetrics();
2 26 Feb 07 jari 85         int descent = hfm.getDescent();
2 26 Feb 07 jari 86         g.rotate(-Math.PI/2);
2 26 Feb 07 jari 87         String name;
2 26 Feb 07 jari 88
2 26 Feb 07 jari 89         for (int exp = 0; exp < numExperiments; exp++) {
2 26 Feb 07 jari 90             name = model.getExperimentName(model.getExperimentIndexAt(exp));
2 26 Feb 07 jari 91
2 26 Feb 07 jari 92             int xCoord = exp * (elementWidth + rectSpacing) + elementWidth / 2 + insets.left;
2 26 Feb 07 jari 93             //xCoord += leftPanelSize.width + cytoPanelSize.width;
2 26 Feb 07 jari 94             xCoord += viewer.getPositionGraphLeft().getWidth() + viewer.getCytoBandsCanvas().getWidth();
2 26 Feb 07 jari 95             g.drawString(name, insets.bottom - getSize().height +5, xCoord);
2 26 Feb 07 jari 96
2 26 Feb 07 jari 97             //g.drawString(name, insets.bottom - getSize().height +5, insets.left + descent + (elementWidth+getSpacing())*feature + elementWidth/2);
2 26 Feb 07 jari 98         }
2 26 Feb 07 jari 99
2 26 Feb 07 jari 100         for (int exp = 0; exp < numExperiments; exp++) {
2 26 Feb 07 jari 101             name = model.getExperimentName(model.getExperimentIndexAt(exp));
2 26 Feb 07 jari 102
2 26 Feb 07 jari 103             //int xCoord = exp * (elementWidth + rectSpacing) + elementWidth / 2 + insets.left;
2 26 Feb 07 jari 104             int xCoord = (model.getNumExperiments() - exp - 1) * (elementWidth + rectSpacing) + elementWidth / 2 + insets.left;
2 26 Feb 07 jari 105             xCoord = viewer.getPositionGraphLeft().getWidth() - xCoord;
2 26 Feb 07 jari 106             //int xCoord = viewer.getPositionGraphLeft().getWidth() - ( (model.getNumExperiments() - exp - 1)* (elementWidth + rectSpacing) ) - insets.right;
2 26 Feb 07 jari 107             g.drawString(name, insets.bottom - getSize().height +5, xCoord);
2 26 Feb 07 jari 108
2 26 Feb 07 jari 109             //g.drawString(name, insets.bottom - getSize().height +5, insets.left + descent + (elementWidth+getSpacing())*feature + elementWidth/2);
2 26 Feb 07 jari 110         }
2 26 Feb 07 jari 111
2 26 Feb 07 jari 112         g.rotate(Math.PI/2);
2 26 Feb 07 jari 113     }
2 26 Feb 07 jari 114
2 26 Feb 07 jari 115 }