import jalview.gui.AlignmentPanel;
import jalview.gui.FeatureRenderer;
import jalview.gui.SequenceRenderer;
+import jalview.json.binding.v1.BioJsAlignmentPojo;
+import jalview.json.binding.v1.BioJsSeqPojo;
import jalview.util.MessageManager;
import java.io.IOException;
import java.io.PrintWriter;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+
+import com.json.JSONException;
+import com.json.JSONObject;
+
public class BioJsHTMLOutput
{
private AlignViewport av;
public BioJsHTMLOutput(AlignmentPanel ap, SequenceRenderer sr,
FeatureRenderer fr1)
{
- System.out.println("BioJs working as expected so far");
this.av = ap.av;
this.fr = new FeatureRenderer(ap);
}
private String generateBioJsAlignmentData(AlignmentI alignment)
- throws IOException
+ throws IOException, JSONException
{
- StringBuilder bioJsData = new StringBuilder();
+ BioJsAlignmentPojo bjsAlignment = new BioJsAlignmentPojo();
+
int count = 0;
for (SequenceI seq : alignment.getSequences())
{
- bioJsData.append("seqOnFly.push({seq:'" + seq.getSequenceAsString()
- + "', name:'" + seq.getName() + "', id:" + ++count + "});");
+ bjsAlignment.getSeqs().add(
+ new BioJsSeqPojo(String.valueOf(++count), seq.getName(), seq
+ .getSequenceAsString()));
}
+
+ String seqs = new JSONObject(bjsAlignment).getString("seqs");
String bioJSTemplate = new String(
readAllBytes(get("resources/templates/BioJSTemplate.txt")));
- return bioJSTemplate.replaceAll("#sequenceData#", bioJsData.toString());
+ return bioJSTemplate.replaceAll("#sequenceData#", seqs);
}
+ public static void main(String[] args) throws IOException
+ {
+ Document doc = Jsoup.parse(new String(
+ readAllBytes(get("resources/templates/BioJSTemplate.txt"))));
+
+ Element content = doc.getElementById("seqData");
+ System.out.println(content.val());
+ }
}