X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FJalview2XML.java;h=80cff07f5b666b94c1da62af3fe05c34babdade4;hb=7a3ba197b00d4016556f3cdd635919fe6817867b;hp=ce81e1caf30643af0a8066dd56382e0043875c50;hpb=17dfd212b89123210a95ee7638e3a5374cf41fb3;p=jalview.git diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index ce81e1c..80cff07 100644 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -783,7 +783,7 @@ public class Jalview2XML viewIds.add(viewId); try { - writeJarEntry(jout, "viewer_" + viewId, + writeJarEntry(jout, getViewerJarEntryName(viewId), viewFrame.getStateInfo().getBytes()); } catch (IOException e) { @@ -1455,9 +1455,7 @@ public class Jalview2XML state.setAlignwithAlignPanel(viewFrame.isUsedforaligment(ap)); state.setColourwithAlignPanel(viewFrame.isUsedforcolourby(ap)); state.setColourByJmol(viewFrame.isColouredByViewer()); - // FIXME add attribute to schema and enable next line - // state.setType(viewFrame.getViewerType().toString()); - state.setContent(viewFrame.getViewerType().toString()); + state.setType(viewFrame.getViewerType().toString()); pdb.addStructureState(state); } } @@ -3311,7 +3309,8 @@ public class Jalview2XML { structureViewers.put(sviewid, new StructureViewerModel(x, y, width, height, false, - false, true, structureState.getViewId())); + false, true, structureState.getViewId(), + structureState.getType())); // Legacy pre-2.7 conversion JAL-823 : // do not assume any view has to be linked for colour by // sequence @@ -3420,20 +3419,18 @@ public class Jalview2XML } /* - * 2.8.2: stateData contains "chimera..." (session file name), or JMOL state - * string - * - * 2.9: stateData.type contains JMOL or CHIMERA, data is in jar entry + * From 2.9: stateData.type contains JMOL or CHIMERA, data is in jar entry * "viewer_"+stateData.viewId */ - // FIXME use stateData.getType() instead once schema updated - if (ViewerType.CHIMERA.toString().equals(stateData.getStateData()) - || stateData.getStateData().indexOf("chimera") > -1) + if (ViewerType.CHIMERA.toString().equals(stateData.getType())) { createChimeraViewer(viewerData, af, jprovider); } else { + /* + * else Jmol (if pre-2.9, stateData contains JMOL state string) + */ createJmolViewer(viewerData, af, jprovider); } } @@ -3459,7 +3456,7 @@ public class Jalview2XML * 'uniquified' sviewid used to reconstruct the viewer here */ chimeraSessionFile = copyJarEntry(jprovider, - "viewer_" + data.getViewId(), "chimera"); + getViewerJarEntryName(data.getViewId()), "chimera"); Set> fileData = data.getFileData() .entrySet(); @@ -3510,10 +3507,10 @@ public class Jalview2XML * 2.9+: @type is "JMOL", state data is in a Jar file member named "viewer_" * + viewId */ - // FIXME use getType once Castor regenerated for new attribute - if (ViewerType.JMOL.toString().equals(state /* svattrib.getType() */)) + if (ViewerType.JMOL.toString().equals(svattrib.getType())) { - state = readJarEntry(jprovider, "viewer_" + svattrib.getViewId()); + state = readJarEntry(jprovider, + getViewerJarEntryName(svattrib.getViewId())); } List pdbfilenames = new ArrayList(); @@ -3645,6 +3642,18 @@ public class Jalview2XML } /** + * Generates a name for the entry in the project jar file to hold state + * information for a structure viewer + * + * @param viewId + * @return + */ + protected String getViewerJarEntryName(String viewId) + { + return "viewer_" + viewId; + } + + /** * Returns any open frame that matches given structure viewer data. The match * is based on the unique viewId, or (for older project versions) the frame's * geometry.