X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FJalview2XML.java;fp=src%2Fjalview%2Fgui%2FJalview2XML.java;h=b608b9502fcd41dc8e4b57c94a7eebb264f8dbfe;hb=b8810711642d8473325c8a3d3e76cc5c3c9b5bbd;hp=105209f4e46f0905f9955131643aefe58c770ae2;hpb=936d4dc095734df2b1e9f3bf9e0bd29b9c86434c;p=jalview.git diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index 105209f..b608b95 100644 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -20,26 +20,51 @@ */ package jalview.gui; -import java.awt.Rectangle; -import java.io.*; -import java.lang.reflect.InvocationTargetException; -import java.net.*; -import java.util.*; -import java.util.Map.Entry; -import java.util.jar.*; - -import javax.swing.*; - -import org.exolab.castor.xml.*; - import jalview.api.structures.JalviewStructureDisplayI; import jalview.bin.Cache; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.SequenceI; -import jalview.schemabinding.version2.*; -import jalview.schemes.*; +import jalview.schemabinding.version2.AlcodMap; +import jalview.schemabinding.version2.Alcodon; +import jalview.schemabinding.version2.AlcodonFrame; +import jalview.schemabinding.version2.Annotation; +import jalview.schemabinding.version2.AnnotationColours; +import jalview.schemabinding.version2.AnnotationElement; +import jalview.schemabinding.version2.CalcIdParam; +import jalview.schemabinding.version2.DBRef; +import jalview.schemabinding.version2.Features; +import jalview.schemabinding.version2.Group; +import jalview.schemabinding.version2.HiddenColumns; +import jalview.schemabinding.version2.JGroup; +import jalview.schemabinding.version2.JSeq; +import jalview.schemabinding.version2.JalviewModel; +import jalview.schemabinding.version2.JalviewModelSequence; +import jalview.schemabinding.version2.MapListFrom; +import jalview.schemabinding.version2.MapListTo; +import jalview.schemabinding.version2.Mapping; +import jalview.schemabinding.version2.MappingChoice; +import jalview.schemabinding.version2.OtherData; +import jalview.schemabinding.version2.PdbentryItem; +import jalview.schemabinding.version2.Pdbids; +import jalview.schemabinding.version2.Property; +import jalview.schemabinding.version2.Sequence; +import jalview.schemabinding.version2.SequenceSet; +import jalview.schemabinding.version2.SequenceSetProperties; +import jalview.schemabinding.version2.Setting; +import jalview.schemabinding.version2.StructureState; +import jalview.schemabinding.version2.ThresholdLine; +import jalview.schemabinding.version2.Tree; +import jalview.schemabinding.version2.UserColours; +import jalview.schemabinding.version2.Viewport; +import jalview.schemes.AnnotationColourGradient; +import jalview.schemes.ColourSchemeI; +import jalview.schemes.ColourSchemeProperty; +import jalview.schemes.GraduatedColor; +import jalview.schemes.ResidueColourScheme; +import jalview.schemes.ResidueProperties; +import jalview.structure.StructureSelectionManager; import jalview.util.MessageManager; import jalview.util.Platform; import jalview.util.jarInputStreamProvider; @@ -51,6 +76,41 @@ import jalview.ws.params.ArgumentI; import jalview.ws.params.AutoCalcSetting; import jalview.ws.params.WsParamSetI; +import java.awt.Rectangle; +import java.io.BufferedReader; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.lang.reflect.InvocationTargetException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.IdentityHashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map.Entry; +import java.util.Set; +import java.util.StringTokenizer; +import java.util.Vector; +import java.util.jar.JarEntry; +import java.util.jar.JarInputStream; +import java.util.jar.JarOutputStream; + +import javax.swing.JInternalFrame; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; + +import org.exolab.castor.xml.Unmarshaller; + /** * Write out the current jalview desktop state as a Jalview XML stream. * @@ -678,7 +738,9 @@ public class Jalview2XML .startsWith( jmol.jmb.pdbentry[peid].getId() .toLowerCase()))) + { continue; + } if (matchedFile == null) { matchedFile = jmol.jmb.pdbentry[peid].getFile(); @@ -1357,7 +1419,16 @@ public class Jalview2XML calcIdSet.add(aa[i].getCalcId()); an.setCalcId(aa[i].getCalcId()); } - + if (aa[i].hasProperties()) + { + for (String pr : aa[i].getProperties()) + { + Property prop = new Property(); + prop.setName(pr); + prop.setValue(aa[i].getProperty(pr)); + an.addProperty(prop); + } + } AnnotationElement ae; if (aa[i].annotations != null) { @@ -1371,18 +1442,26 @@ public class Jalview2XML ae = new AnnotationElement(); if (aa[i].annotations[a].description != null) + { ae.setDescription(aa[i].annotations[a].description); + } if (aa[i].annotations[a].displayCharacter != null) + { ae.setDisplayCharacter(aa[i].annotations[a].displayCharacter); + } if (!Float.isNaN(aa[i].annotations[a].value)) + { ae.setValue(aa[i].annotations[a].value); + } ae.setPosition(a); if (aa[i].annotations[a].secondaryStructure != ' ' && aa[i].annotations[a].secondaryStructure != '\0') + { ae.setSecondaryStructure(aa[i].annotations[a].secondaryStructure + ""); + } if (aa[i].annotations[a].colour != null && aa[i].annotations[a].colour != java.awt.Color.black) @@ -2046,7 +2125,7 @@ public class Jalview2XML errorMessage = null; } - Hashtable alreadyLoadedPDB; + Hashtable alreadyLoadedPDB; /** * when set, local views will be updated from view stored in JalviewXML @@ -2058,10 +2137,14 @@ public class Jalview2XML String loadPDBFile(jarInputStreamProvider jprovider, String pdbId) { if (alreadyLoadedPDB == null) + { alreadyLoadedPDB = new Hashtable(); + } if (alreadyLoadedPDB.containsKey(pdbId)) + { return alreadyLoadedPDB.get(pdbId).toString(); + } try { @@ -2293,7 +2376,9 @@ public class Jalview2XML entry.setFile(pdbloaded.get(ids[p].getId()).toString()); } } - + StructureSelectionManager.getStructureSelectionManager( + Desktop.instance) + .registerPDBEntry(entry); al.getSequenceAt(i).getDatasetSequence().addPDBId(entry); } } @@ -2409,7 +2494,9 @@ public class Jalview2XML // in principle Visible should always be true for annotation displayed // in multiple views if (an[i].hasVisible()) + { jda.visible = an[i].getVisible(); + } al.addAnnotation(jda); @@ -2428,7 +2515,9 @@ public class Jalview2XML anpos = ae[aa].getPosition(); if (anpos >= anot.length) + { continue; + } anot[anpos] = new jalview.datamodel.Annotation( @@ -2522,10 +2611,14 @@ public class Jalview2XML jaa.setScore(an[i].getScore()); } if (an[i].hasVisible()) + { jaa.visible = an[i].getVisible(); + } if (an[i].hasCentreColLabels()) + { jaa.centreColLabels = an[i].getCentreColLabels(); + } if (an[i].hasScaleColLabels()) { @@ -2547,7 +2640,14 @@ public class Jalview2XML jaa.belowAlignment = an[i].isBelowAlignment(); } jaa.setCalcId(an[i].getCalcId()); - + if (an[i].getPropertyCount() > 0) + { + for (jalview.schemabinding.version2.Property prop : an[i] + .getProperty()) + { + jaa.setProperty(prop.getName(), prop.getValue()); + } + } if (jaa.autoCalculated) { autoAlan.add(new JvAnnotRow(i, jaa)); @@ -3544,12 +3644,16 @@ public class Jalview2XML } renderOrder[fs] = setting.getType(); if (setting.hasOrder()) + { af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setOrder( setting.getType(), setting.getOrder()); + } else + { af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setOrder( setting.getType(), fs / jms.getFeatureSettings().getSettingCount()); + } if (setting.getDisplay()) { af.viewport.featuresDisplayed.put(setting.getType(), new Integer( @@ -4392,7 +4496,9 @@ public class Jalview2XML } } else + { Cache.log.debug("Ignoring " + jvobj.getClass() + " (ID = " + id); + } } }