\r
public class HTMLOutput\r
{\r
- SequenceRenderer sr = new SequenceRenderer(null);\r
\r
- public HTMLOutput(AlignmentI alignment, ColourSchemeI cs)\r
+\r
+ public HTMLOutput(AlignViewport av)\r
{\r
+ SequenceRenderer sr = new SequenceRenderer(av);\r
Color color;\r
JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);\r
chooser.setDialogTitle("Save as HTML");\r
out.println("<HTML>");\r
out.println("<style type=\"text/css\">");\r
out.println("<!--");\r
- out.println("td {font-family: \"Courier New\", Courier, mono; font-size: medium;");\r
- out.println(" font-size: medium; text-align: center; }");\r
+ out.print("td {font-family: \""+av.getFont().getFamily()+"\", \""+av.getFont().getName()+ "\", mono; "\r
+ +"font-size: "+av.getFont().getSize()+"px; ");\r
+\r
+\r
+ if (av.getFont().getStyle() == Font.BOLD)\r
+ out.print("font-weight: BOLD; ");\r
+\r
+ if (av.getFont().getStyle() == Font.ITALIC)\r
+ out.print("font-style: italic; ");\r
+\r
+ out.println("text-align: center; }");\r
+\r
out.println("-->");\r
out.println("</style>");\r
out.println("<BODY>");\r
\r
\r
//////////////\r
- for (int i = 0; i < alignment.getHeight(); i++)\r
+ SequenceGroup [] groups;\r
+ SequenceI seq;\r
+ ColourSchemeI cs = null;\r
+ AlignmentI alignment = av.getAlignment();\r
+ String r,g,b;\r
+\r
+ // draws the top row, the measure rule\r
+ out.println("<tr><td colspan=\"6\"></td>");\r
+ int i=0;\r
+ for(i=10; i<alignment.getWidth()-10; i+=10)\r
+ out.println("<td colspan=\"9\">"+i+"<br>|</td><td></td>");\r
+\r
+ out.println("<td colspan=\"3\"></td><td colspan=\"3\">"+i+"<br>|</td>");\r
+ out.println("</tr>");\r
+\r
+ for (i = 0; i < alignment.getHeight(); i++)\r
{\r
- SequenceI seq = alignment.getSequenceAt(i);\r
- out.println("<tr><td>"+seq.getName()+" </td>");\r
+ seq = alignment.getSequenceAt(i);\r
+ groups = alignment.findAllGroups( seq );\r
+ out.println("<tr><td nowrap>"+seq.getDisplayId()+" </td>");\r
+\r
+\r
for (int res = 0; res < seq.getLength(); res++)\r
{\r
+ cs = av.getGlobalColourScheme();\r
+\r
+ if(groups!=null)\r
+ {\r
+ for (int k = 0; k < groups.length; k++)\r
+ if (groups[k].getStartRes() <= res && groups[k].getEndRes() >= res)\r
+ {\r
+ cs = groups[k].cs;\r
+ break;\r
+ }\r
+ }\r
+\r
+\r
color = sr.getResidueBoxColour(cs, seq, res);\r
\r
if(color.getRGB()<-1)\r
{\r
- out.println("<td bgcolor=\"#"\r
- + Integer.toHexString(color.getRed())\r
- + Integer.toHexString(color.getGreen())\r
- + Integer.toHexString(color.getBlue())\r
- + "\">"+seq.getCharAt(res)+"</td>");\r
+ r = Integer.toHexString(color.getRed());\r
+ if(r.length()<2)\r
+ r = "0"+r;\r
+ g = Integer.toHexString(color.getGreen());\r
+ if(g.length()<2)\r
+ g = "0"+g;\r
+ b = Integer.toHexString(color.getBlue());\r
+ if(b.length()<2)\r
+ b = "0"+b;\r
+ out.println("<td bgcolor=\"#"+ r + g + b + "\">"+seq.getCharAt(res)+"</td>");\r
}\r
else\r
out.println("<td>"+seq.getCharAt(res)+"</td>");\r
\r
out.close();\r
\r
- jalview.util.BrowserLauncher.openURL( choice );\r
+ jalview.util.BrowserLauncher.openURL( "file:///"+choice );\r
}\r
- catch(Exception ex){}\r
+ catch(Exception ex){ex.printStackTrace();}\r
}\r
}\r
\r