2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
* CGHPositionGraphSeparatedHeader.java |
2 |
26 Feb 07 |
jari |
3 |
* |
2 |
26 Feb 07 |
jari |
* 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 |
* @author Adam Margolin |
2 |
26 Feb 07 |
jari |
* @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 |
/** 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 |
//g.drawImage(model.getNegColorImage(), insets.left, 0, (int)(width/2f), RECT_HEIGHT, null); |
2 |
26 Feb 07 |
jari |
//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 |
//g.drawImage(model.getNegColorImage(), insets.left, 0, (int)(width), RECT_HEIGHT, null); |
2 |
26 Feb 07 |
jari |
//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 |
//int textWidth; |
2 |
26 Feb 07 |
jari |
64 |
int textWidth = hfm.stringWidth(String.valueOf(model.getMinRatioScale())); |
2 |
26 Feb 07 |
jari |
//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 |
//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 |
//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 |
//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 |
//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 |
//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 |
//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 |
//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 |
} |