X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FBioJsHTMLOutput.java;h=86b4c2855283ca0a9292b9817fe807ba14c2f942;hb=5d59bb58f5bcecc6b240d125e13bbe1f1868f681;hp=2001338ce0bc244cf88df9d18b4cd602df2b5ced;hpb=b13f521553582ef2fbfd7815ae25e23284babdea;p=jalview.git diff --git a/src/jalview/io/BioJsHTMLOutput.java b/src/jalview/io/BioJsHTMLOutput.java index 2001338..86b4c28 100644 --- a/src/jalview/io/BioJsHTMLOutput.java +++ b/src/jalview/io/BioJsHTMLOutput.java @@ -1,59 +1,33 @@ package jalview.io; -import jalview.api.FeaturesDisplayedI; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.SequenceFeature; -import jalview.datamodel.SequenceI; import jalview.exceptions.NoFileSelectedException; import jalview.gui.AlignViewport; import jalview.gui.AlignmentPanel; import jalview.gui.FeatureRenderer; -import jalview.json.binding.v1.BioJsAlignmentPojo; -import jalview.json.binding.v1.BioJsFeaturePojo; -import jalview.json.binding.v1.BioJsSeqPojo; -import jalview.schemes.ColourSchemeProperty; import jalview.util.MessageManager; -import java.awt.Color; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; -import java.util.ArrayList; - -import com.json.JSONException; public class BioJsHTMLOutput { private AlignViewport av; - private jalview.api.FeatureRenderer fr; - - private String globalColorScheme; - - private FeaturesDisplayedI displayedFeatures; - - private String jalviewVersion; - - private String webStartLaunchServletUrl = "http://www.jalview.org/services/launchApp"; public BioJsHTMLOutput(AlignmentPanel ap, FeatureRenderer fr1) { - jalviewVersion = jalview.bin.Cache.getProperty("VERSION"); - webStartLaunchServletUrl = jalview.bin.Cache.getDefault( - "www.jalview.org", "http://www.jalview.org") - + "/services/launchApp"; if (ap != null) { + this.av = ap.av; - this.globalColorScheme = ColourSchemeProperty.getColourName(av - .getGlobalColourScheme()); - this.fr = ap.cloneFeatureRenderer(); - displayedFeatures = av.getFeaturesDisplayed(); + av.setFeatureRenderer(new FeatureRenderer(ap)); } + exportJalviewAlignmentAsBioJsHtmlFile(); } private void exportJalviewAlignmentAsBioJsHtmlFile() @@ -61,8 +35,7 @@ public class BioJsHTMLOutput try { String outputFile = getOutputFile(); - String jalviewAlignmentJson = getJalviewAlignmentAsJsonString(av - .getAlignment()); + String jalviewAlignmentJson = JSONFile.getJSONData(av); String bioJSTemplateString = getBioJsTemplateAsString(this); String generatedBioJsWithJalviewAlignmentAsJson = bioJSTemplateString .replaceAll( @@ -110,63 +83,9 @@ public class BioJsHTMLOutput { throw new NoFileSelectedException("No file was selected."); } - return selectedFile; } - public String getJalviewAlignmentAsJsonString(AlignmentI alignment) - throws IOException, JSONException - { - BioJsAlignmentPojo bjsAlignment = new BioJsAlignmentPojo(); - - bjsAlignment.setGlobalColorScheme(getGlobalColorScheme()); - bjsAlignment.setJalviewVersion(jalviewVersion); - bjsAlignment.setWebStartUrl(webStartLaunchServletUrl); - - int count = 0; - for (SequenceI seq : alignment.getSequences()) - { - StringBuilder name = new StringBuilder(); - name.append(seq.getName()).append("/").append(seq.getStart()) - .append("-").append(seq.getEnd()); - - BioJsSeqPojo seqPojo = new BioJsSeqPojo(); - seqPojo.setId(String.valueOf(++count)); - seqPojo.setEnd(seq.getEnd()); - seqPojo.setStart(seq.getStart()); - seqPojo.setName(name.toString()); - seqPojo.setSeq(seq.getSequenceAsString()); - - SequenceFeature[] seqFeatures = seq.getSequenceFeatures(); - if (seqFeatures != null) - { - ArrayList bjsSeqFeatures = new ArrayList(); - for (SequenceFeature sf : seqFeatures) - { - if (displayedFeatures != null - && displayedFeatures.isVisible(sf.getType())) - { - - // TODO: translate graduated/complex colourschemes to biojs model - String featureColour = jalview.util.Format.getHexString(fr - .findFeatureColour(Color.white, seq, - seq.findIndex(sf.getBegin()))); - BioJsFeaturePojo bjsFeature = new BioJsFeaturePojo(); - bjsFeature.setFillColor(featureColour); - bjsFeature.setXstart(seq.findIndex(sf.getBegin()) - 1); - bjsFeature.setXend(seq.findIndex(sf.getEnd())); - bjsFeature.setText(sf.getType()); - bjsSeqFeatures.add(bjsFeature); - } - } - seqPojo.setFeatures(bjsSeqFeatures); - } - bjsAlignment.getSeqs().add(seqPojo); - } - - return new com.json.JSONObject(bjsAlignment).toString() - .replaceAll("xstart", "xStart").replaceAll("xend", "xEnd"); - } public static String getBioJsTemplateAsString(Object currentObj) throws IOException @@ -207,15 +126,4 @@ public class BioJsHTMLOutput } return sb.toString(); } - - public String getGlobalColorScheme() - { - return globalColorScheme; - } - - public void setGlobalColorScheme(String globalColorScheme) - { - this.globalColorScheme = globalColorScheme; - } - }