X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FJalview2XML.java;h=562d5cbbd96b4dfdf04aaa92fb1051fe0270379e;hb=d187567c926fed31f9cd9bda0dc112bc4d1b1261;hp=eb071e2fed493306423c719c15325c8c1445cef4;hpb=1b7c19a556c0a09859e8e46cd4e55484e5f944d2;p=jalview.git diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index eb071e2..562d5cb 100755 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -168,6 +168,14 @@ public class Jalview2XML object.setVersion(jalview.bin.Cache.getProperty("VERSION")); jalview.datamodel.AlignmentI jal = af.viewport.alignment; + jalview.datamodel.AlignmentI jalhidden = null; + + if(av.hasHiddenRows) + { + jalhidden = jal; + jal = jal.getHiddenSequences().getFullAlignment(); + } + SequenceSet vamsasSet = new SequenceSet(); Sequence vamsasSeq; @@ -176,28 +184,61 @@ public class Jalview2XML vamsasSet.setGapChar(jal.getGapCharacter() + ""); JSeq jseq; + Vector pdbfiles = null; //SAVE SEQUENCES int id = 0; - for (int i = 0; i < jal.getHeight(); i++) { seqids.add(jal.getSequenceAt(i)); - vamsasSeq = new Sequence(); vamsasSeq.setId(id + ""); vamsasSeq.setName(jal.getSequenceAt(i).getName()); vamsasSeq.setSequence(jal.getSequenceAt(i).getSequence()); vamsasSeq.setDescription(jal.getSequenceAt(i).getDescription()); + if(jal.getSequenceAt(i).getDatasetSequence().getDBRef()!=null) + { + jalview.datamodel.DBRefEntry [] dbrefs = + jal.getSequenceAt(i).getDatasetSequence().getDBRef(); + + for(int d=0; d0) { an.setGraph(true); an.setGraphType(aa[i].graph); + an.setGraphGroup(aa[i].graphGroup); + if(aa[i].getThreshold()!=null) + { + ThresholdLine line = new ThresholdLine(); + line.setLabel(aa[i].getThreshold().label); + line.setValue(aa[i].getThreshold().value); + line.setColour(aa[i].getThreshold().colour.getRGB()); + an.setThresholdLine(line); + } } else an.setGraph(false); @@ -342,6 +435,10 @@ public class Jalview2XML ae.setPosition(a); ae.setSecondaryStructure(aa[i].annotations[a].secondaryStructure + ""); + + if(aa[i].annotations[a].colour!=java.awt.Color.black) + ae.setColour(aa[i].annotations[a].colour.getRGB()); + an.addAnnotationElement(ae); } @@ -381,6 +478,12 @@ public class Jalview2XML cs)); } } + else if(sg.cs instanceof jalview.schemes.AnnotationColourGradient) + { + groups[i].setColour( + ColourSchemeProperty.getColourName( + ( (jalview.schemes.AnnotationColourGradient) sg.cs).getBaseColour())); + } else if (sg.cs instanceof jalview.schemes.UserColourScheme) { groups[i].setColour(SetUserColourScheme(sg.cs, userColours, @@ -400,7 +503,7 @@ public class Jalview2XML groups[i].setDisplayText(sg.getDisplayText()); groups[i].setColourText(sg.getColourText()); - for (int s = 0; s < sg.getSize(); s++) + for (int s = 0; s < sg.getSize(false); s++) { jalview.datamodel.Sequence seq = (jalview.datamodel.Sequence) sg.getSequenceAt(s); int index = seqids.indexOf(seq); @@ -427,6 +530,26 @@ public class Jalview2XML view.setBgColour(SetUserColourScheme(av.getGlobalColourScheme(), userColours, jms)); } + else if(av.getGlobalColourScheme() instanceof jalview.schemes.AnnotationColourGradient) + { + jalview.schemes.AnnotationColourGradient acg + = (jalview.schemes.AnnotationColourGradient)av.getGlobalColourScheme(); + + AnnotationColours ac = new AnnotationColours(); + ac.setAboveThreshold(acg.getAboveThreshold()); + ac.setThreshold(acg.getAnnotationThreshold()); + ac.setAnnotation(acg.getAnnotation()); + if(acg.getBaseColour() instanceof jalview.schemes.UserColourScheme) + ac.setColourScheme(SetUserColourScheme(acg.getBaseColour(), + userColours, jms)); + else + ac.setColourScheme(ColourSchemeProperty.getColourName(acg.getBaseColour())); + + ac.setMaxColour(acg.getMaxColour().getRGB()); + ac.setMinColour(acg.getMinColour().getRGB()); + view.setAnnotationColours(ac); + view.setBgColour("AnnotationColourGradient"); + } else { view.setBgColour(ColourSchemeProperty.getColourName( @@ -472,18 +595,18 @@ public class Jalview2XML jalview.schemabinding.version2.FeatureSettings fs = new jalview.schemabinding.version2.FeatureSettings(); - Enumeration e = af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().featureColours.keys(); - while (e.hasMoreElements()) + String [] renderOrder = + af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().renderOrder; + for(int ro=0; ro 0) @@ -731,21 +912,68 @@ public class Jalview2XML jalview.datamodel.PDBEntry entry = new jalview.datamodel.PDBEntry(); entry.setId(ids[p].getId()); entry.setType(ids[p].getType()); + if (ids[p].getFile() != null) + { + if (!pdbloaded.containsKey(ids[p].getFile())) + { + String tmppdb = loadPDBFile(file, ids[p].getId()); + entry.setFile(tmppdb); + pdbloaded.put(ids[p].getId(), tmppdb); + } + else + entry.setFile(pdbloaded.get(ids[p].getId()).toString()); + } + al.getSequenceAt(i).getDatasetSequence().addPDBId(entry); } + } + if(vamsasSeq[i].getDBRefCount()>0) + { + for(int d=0; d 0) + { + for (int c = 0; c < view.getHiddenColumnsCount(); c++) + { + af.viewport.hideColumns( + view.getHiddenColumns(c).getStart(), + view.getHiddenColumns(c).getEnd()+1 + ); + } + } + Desktop.addInternalFrame(af, view.getTitle(), view.getWidth(), view.getHeight());