Applet files
[jalview.git] / src / jalview / appletgui / AnnotationLabels.java
1 \r
2 package jalview.appletgui;\r
3 \r
4 import java.awt.event.*;\r
5 import java.awt.*;\r
6 import jalview.datamodel.*;\r
7 \r
8 public class AnnotationLabels extends Panel\r
9 {\r
10   boolean active = false;\r
11   Image image;\r
12   AlignmentPanel ap ;\r
13   boolean resizing = false;\r
14   int oldY, mouseX;\r
15   static String ADDNEW = "Add new row";\r
16   static String HIDE = "Hide this row";\r
17   static String DELETE = "Delete this row";\r
18   static String SHOWALL="Show all hidden rows";\r
19   int selectedRow = 0;\r
20   int scrollOffset = 0;\r
21 \r
22   public AnnotationLabels(AlignmentPanel ap)\r
23   {\r
24     this.ap = ap;\r
25     setLayout(null);\r
26 \r
27     java.net.URL url = getClass().getResource("/images/idwidth.gif");\r
28     if (url != null)\r
29       image = java.awt.Toolkit.getDefaultToolkit().getImage(url);\r
30 \r
31     try\r
32     {\r
33       MediaTracker mt = new MediaTracker(this);\r
34       mt.addImage(image, 0);\r
35       mt.waitForID(0);\r
36     }\r
37     catch (Exception ex) {}\r
38   }\r
39 \r
40   public void setScrollOffset(int y)\r
41   {\r
42     scrollOffset = y;\r
43     repaint();\r
44   }\r
45 \r
46   public void paint(Graphics g)\r
47   {\r
48     drawComponent(g);\r
49   }\r
50 \r
51   public void drawComponent(Graphics g)\r
52   {\r
53     FontMetrics fm = g.getFontMetrics(g.getFont());\r
54     g.setColor(Color.white);\r
55     g.fillRect(0,0, getSize().width, getSize().height);\r
56 \r
57     g.translate(0, scrollOffset);\r
58     g.setColor(Color.black);\r
59 \r
60    AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation();\r
61    int y = g.getFont().getSize();\r
62    int x = 0;\r
63 \r
64    if(aa!=null)\r
65    for(int i=0; i<aa.length; i++)\r
66    {\r
67      if(!aa[i].visible)\r
68        continue;\r
69 \r
70      x = getSize().width - fm.stringWidth(aa[i].label)-3;\r
71 \r
72      if(aa[i].isGraph)\r
73        y+=(aa[i].height/3);\r
74 \r
75      g.drawString(aa[i].label, x, y);\r
76 \r
77      if(aa[i].isGraph)\r
78        y+=(2*aa[i].height/3);\r
79     else\r
80        y+=aa[i].height;\r
81    }\r
82 \r
83    if (active)\r
84    {\r
85      if (image != null)\r
86        g.drawImage(image, 2, 0, this);\r
87    }\r
88 \r
89    if (aa == null || aa.length<1)\r
90    {\r
91      g.drawString("Right click", 2, 8);\r
92      g.drawString("to add annotation", 2, 18);\r
93    }\r
94 \r
95 \r
96 \r
97   }\r
98 \r
99 }\r