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.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 |
* @author Adam Margolin |
2 |
26 Feb 07 |
jari |
* @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 |
/** 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 |
//g.drawImage(model.getNegColorImage(), viewerWidth / 2 - width / 2, 0, (int)(width/2f), RECT_HEIGHT, null); |
2 |
26 Feb 07 |
jari |
//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 |
//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 |
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 |
//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 |
//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 |
//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 |
//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 |
//setSize(getWidth(), 10+this.RECT_HEIGHT+hfm.getHeight()); |
2 |
26 Feb 07 |
jari |
//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 |
* 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 |
} |