X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FHTMLOutput.java;h=e4dc83e9d35912535e26518c3aeba827f38e93e3;hb=8a18973f7e4521c7dd3705ebd8fabd3ca08cfcaf;hp=d48c068872c262b0296cd7178efed360ec301e69;hpb=6f3fc393f90ea0460caeca7e229e505741c51bd4;p=jalview.git diff --git a/src/jalview/io/HTMLOutput.java b/src/jalview/io/HTMLOutput.java index d48c068..e4dc83e 100755 --- a/src/jalview/io/HTMLOutput.java +++ b/src/jalview/io/HTMLOutput.java @@ -1,13 +1,30 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ package jalview.io; -import jalview.gui.*; -import jalview.datamodel.*; -import jalview.schemes.*; -import java.awt.*; -import javax.swing.*; import java.io.*; -import java.util.*; +import java.awt.*; + +import jalview.datamodel.*; +import jalview.gui.*; +import jalview.schemes.*; public class HTMLOutput { @@ -19,28 +36,46 @@ public class HTMLOutput { this.av = av; sr = new SequenceRenderer(av); - JFileChooser chooser = new JFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY")); + + JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache. + getProperty( + "LAST_DIRECTORY"), new String[] + {"html"}, + new String[] + {"HTML files"}, "HTML files"); + + chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle("Save as HTML"); chooser.setToolTipText("Save"); + int value = chooser.showSaveDialog(null); - if(value == JFileChooser.APPROVE_OPTION) + + if (value == JalviewFileChooser.APPROVE_OPTION) { - String choice = chooser.getSelectedFile().getPath(); - jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice); - try{ - PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter(choice)); + String choice = chooser.getSelectedFile().getPath(); + jalview.bin.Cache.setProperty("LAST_DIRECTORY", + chooser.getSelectedFile().getParent()); + + try + { + PrintWriter out = new java.io.PrintWriter(new java.io.FileWriter( + choice)); out.println(""); out.println(""); out.println(""); - - if(av.getWrapAlignment()) - drawWrappedAlignment(out); + if (av.getWrapAlignment()) + { + drawWrappedAlignment(out); + } else - drawUnwrappedAlignment(out); + { + drawUnwrappedAlignment(out); + } out.println("\n\n"); out.close(); - jalview.util.BrowserLauncher.openURL( "file:///"+choice ); + jalview.util.BrowserLauncher.openURL("file:///" + choice); + } + catch (Exception ex) + { + ex.printStackTrace(); } - catch(Exception ex){ex.printStackTrace();} } } void drawUnwrappedAlignment(PrintWriter out) { - out.println("
\n"); - out.println("\n"); - + out.println( + "
\n"); ////////////// - SequenceGroup [] groups; + SequenceGroup[] groups; SequenceI seq; ColourSchemeI cs = null; AlignmentI alignment = av.getAlignment(); - String r,g,b; + String r; + String g; + String b; - // draws the top row, the measure rule + // draws the top row, the measure rule out.println(""); - int i=0; - for(i=10; i"+i+"
|
"); - out.println(""); + int i = 0; + + for (i = 10; i < (alignment.getWidth() - 10); i += 10) + { + out.println(""); + } + + out.println(""); out.println(""); for (i = 0; i < alignment.getHeight(); i++) { seq = alignment.getSequenceAt(i); - groups = alignment.findAllGroups( seq ); - out.println(""); + groups = alignment.findAllGroups(seq); + if (av.getShowFullId()) + { + out.println(""); + } + else + { + 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; - } - } - + 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) + 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(""); + out.println(""); } else - out.println(""); - + { + out.println(""); + } } out.println(""); } + ////////////// out.println("
"+i+"
|
" + i + "
|
" + i + + "
|
"+seq.getDisplayId()+"  
" + seq.getDisplayId() + + "  
" + seq.getName() + + "  "+seq.getCharAt(res)+"" + + seq.getCharAt(res) + ""+seq.getCharAt(res)+"" + seq.getCharAt(res) + "
"); out.println("
"); - } void drawWrappedAlignment(PrintWriter out) { - //////////////////////////////////// - /// How many sequences and residues can we fit on a printable page? - AlignmentI al = av.getAlignment(); - SequenceGroup [] groups; - SequenceI seq; - ColourSchemeI cs = null; - String r,g,b; + //////////////////////////////////// + /// How many sequences and residues can we fit on a printable page? + AlignmentI al = av.getAlignment(); + SequenceGroup[] groups; + SequenceI seq; + ColourSchemeI cs = null; + String r; + String g; + String b; - out.println(""); + } + else + { + out.println(""); + } + } + out.println(""); + } + if (endRes < al.getWidth()) + { + out.println(""); + } + } + out.println("
\n"); - out.println("\n"); + out.println("
\n"); + out.println( + "\n"); - for(int startRes=0; startResal.getWidth()) - endRes = al.getWidth(); + if (endRes > al.getWidth()) + { + endRes = al.getWidth(); + } - out.println(""); - out.println(""); - for (int i = startRes+10; i < endRes; i += 10) - out.println(""); + out.println(""); + out.println(""); - // out.println(""); - out.println(""); + for (int i = startRes + 10; i < endRes; i += 10) + { + out.println(""); + } + // out.println(""); + out.println(""); + for (int s = 0; s < al.getHeight(); s++) + { + out.println(""); + seq = al.getSequenceAt(s); + groups = al.findAllGroups(seq); - for (int s = 0; s < al.getHeight(); s++) - { - out.println(""); - seq = al.getSequenceAt(s); - groups = al.findAllGroups( seq ); - out.println(""); + if (av.getShowFullId()) + { + out.println(""); + } + else + { + out.println(""); + } - for (int res = startRes; res < endRes; res++) + for (int res = startRes; res < endRes; 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 = 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(""); + cs = groups[k].cs; + break; } + } + } - out.println(""); + color = sr.getResidueBoxColour(cs, seq, res); - } - if(endRes"); + 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; + } - out.println("
 " + i + "
|
 " + i + - // "
|
" + i + "
|
" + i + + // "
|
"+seq.getDisplayId()+"  " + seq.getDisplayId() + + "  " + seq.getName() + + "  "+seq.getCharAt(res)+""+seq.getCharAt(res)+"
"); - out.println("
"); + b = Integer.toHexString(color.getBlue()); + + if (b.length() < 2) + { + b = "0" + b; + } + + out.println("
" + + seq.getCharAt(res) + "" + seq.getCharAt(res) + "
"); + out.println(""); } + public static String getImageMapHTML() + { + return new String( + "\n" + +"\n" + +"\n" + +"\n" + +"\n" + +"
\n" + +"\n"); + } }