package jalview.io; import jalview.gui.*; import jalview.datamodel.*; import jalview.schemes.*; import java.awt.*; import javax.swing.*; import java.io.*; import java.util.*; public class HTMLOutput { public HTMLOutput(AlignViewport av) { SequenceRenderer sr = new SequenceRenderer(av); Color color; JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY); chooser.setDialogTitle("Save as HTML"); chooser.setToolTipText("Save"); int value = chooser.showSaveDialog(null); if(value == JFileChooser.APPROVE_OPTION) { String choice = chooser.getSelectedFile().getPath(); jalview.bin.Cache.LAST_DIRECTORY = choice; try{ PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter(choice)); out.println(""); out.println(""); out.println(""); out.println("
\n"); out.println("\n"); ////////////// SequenceGroup [] groups; SequenceI seq; ColourSchemeI cs = null; AlignmentI alignment = av.getAlignment(); String r,g,b; // draws the top row, the measure rule out.println(""); int i=0; for(i=10; i"+i+"
|
"); out.println(""); out.println(""); for (i = 0; i < alignment.getHeight(); i++) { seq = alignment.getSequenceAt(i); groups = alignment.findAllGroups( seq ); out.println(""); for (int res = 0; res < seq.getLength(); res++) { cs = av.getGlobalColourScheme(); if(groups!=null) { for (int k = 0; k < groups.length; k++) if (groups[k].getStartRes() <= res && groups[k].getEndRes() >= res) { cs = groups[k].cs; break; } } color = sr.getResidueBoxColour(cs, seq, res); if(color.getRGB()<-1) { r = Integer.toHexString(color.getRed()); if(r.length()<2) r = "0"+r; g = Integer.toHexString(color.getGreen()); if(g.length()<2) g = "0"+g; b = Integer.toHexString(color.getBlue()); if(b.length()<2) b = "0"+b; out.println(""); } else out.println(""); } out.println(""); } ////////////// out.println("
"+i+"
|
"+seq.getDisplayId()+"  "+seq.getCharAt(res)+""+seq.getCharAt(res)+"
"); out.println("
\n\n"); out.close(); jalview.util.BrowserLauncher.openURL( "file:///"+choice ); } catch(Exception ex){ex.printStackTrace();} } } }