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.json.binding.v1.AlignmentPojo;
+import jalview.json.binding.v1.SequenceFeaturesPojo;
+import jalview.json.binding.v1.SequencePojo;
import jalview.schemes.ColourSchemeProperty;
import jalview.util.MessageManager;
+import jalview.viewmodel.AlignmentViewport;
+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 java.util.Hashtable;
import com.json.JSONException;
public class BioJsHTMLOutput
{
- private AlignViewport av;
+ private AlignmentViewport av;
- private FeatureRenderer fr;
+ private jalview.api.FeatureRenderer fr;
private String globalColorScheme;
- private Hashtable displayedFeatures;
+ private FeaturesDisplayedI displayedFeatures;
private String jalviewVersion;
this.av = ap.av;
this.globalColorScheme = ColourSchemeProperty.getColourName(av
.getGlobalColourScheme());
- this.fr = new FeatureRenderer(ap);
- fr.transferSettings(fr1);
+ this.fr = ap.cloneFeatureRenderer();
displayedFeatures = av.getFeaturesDisplayed();
-
- exportJalviewAlignmentAsBioJsHtmlFile();
- }
+ }
}
private void exportJalviewAlignmentAsBioJsHtmlFile()
public String getJalviewAlignmentAsJsonString(AlignmentI alignment)
throws IOException, JSONException
{
- BioJsAlignmentPojo bjsAlignment = new BioJsAlignmentPojo();
+ AlignmentPojo bjsAlignment = new AlignmentPojo();
- bjsAlignment.setGlobalColorScheme(getGlobalColorScheme());
- bjsAlignment.setJalviewVersion(jalviewVersion);
- bjsAlignment.setWebStartUrl(webStartLaunchServletUrl);
+ // bjsAlignment.setGlobalColorScheme(getGlobalColorScheme());
+ // bjsAlignment.setJalviewVersion(jalviewVersion);
+ // bjsAlignment.setWebStartUrl(webStartLaunchServletUrl);
int count = 0;
for (SequenceI seq : alignment.getSequences())
name.append(seq.getName()).append("/").append(seq.getStart())
.append("-").append(seq.getEnd());
- BioJsSeqPojo seqPojo = new BioJsSeqPojo();
+ SequencePojo seqPojo = new SequencePojo();
seqPojo.setId(String.valueOf(++count));
seqPojo.setEnd(seq.getEnd());
seqPojo.setStart(seq.getStart());
seqPojo.setName(name.toString());
seqPojo.setSeq(seq.getSequenceAsString());
- SequenceFeature[] seqFeatures = seq.getDatasetSequence()
- .getSequenceFeatures();
+ SequenceFeature[] seqFeatures = seq.getSequenceFeatures();
if (seqFeatures != null)
{
- ArrayList<BioJsFeaturePojo> bjsSeqFeatures = new ArrayList<BioJsFeaturePojo>();
+ ArrayList<SequenceFeaturesPojo> bjsSeqFeatures = new ArrayList<SequenceFeaturesPojo>();
for (SequenceFeature sf : seqFeatures)
{
if (displayedFeatures != null
- && displayedFeatures.get(sf.getType()) != null)
+ && displayedFeatures.isVisible(sf.getType()))
{
+
+ // TODO: translate graduated/complex colourschemes to biojs model
String featureColour = jalview.util.Format.getHexString(fr
- .getColour(sf));
- 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);
+ .findFeatureColour(Color.white, seq,
+ seq.findIndex(sf.getBegin())));
+ // SequenceFeaturesPojo bjsFeature = new SequenceFeaturesPojo();
+ // bjsFeature.setFillColor(featureColour);
+ // bjsFeature.setXstart(seq.findIndex(sf.getBegin()) - 1);
+ // bjsFeature.setXend(seq.findIndex(sf.getEnd()));
+ // bjsFeature.setType(sf.getType());
+ // bjsSeqFeatures.add(bjsFeature);
}
}
- seqPojo.setFeatures(bjsSeqFeatures);
+ // seqPojo.setFeatures(bjsSeqFeatures);
}
bjsAlignment.getSeqs().add(seqPojo);
}