viewIds.add(viewId);
try
{
- writeJarEntry(jout, "viewer_" + viewId,
+ writeJarEntry(jout, getViewerJarEntryName(viewId),
viewFrame.getStateInfo().getBytes());
} catch (IOException e)
{
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);
}
}
{
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
}
/*
- * 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);
}
}
* 'uniquified' sviewid used to reconstruct the viewer here
*/
chimeraSessionFile = copyJarEntry(jprovider,
- "viewer_" + data.getViewId(), "chimera");
+ getViewerJarEntryName(data.getViewId()), "chimera");
Set<Entry<File, StructureData>> fileData = data.getFileData()
.entrySet();
* 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<String> pdbfilenames = new ArrayList<String>();
}
/**
+ * 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.