features.setDescription(sf[index].getDescription());\r
features.setType(sf[index].getType());\r
features.setFeatureGroup(sf[index].getFeatureGroup());\r
+ features.setScore(sf[index].getScore());\r
+ if(sf[index].links!=null)\r
+ {\r
+ for(int l=0; l<sf[index].links.size(); l++)\r
+ {\r
+ OtherData keyValue = new OtherData();\r
+ keyValue.setKey("LINK_"+l);\r
+ keyValue.setValue(sf[index].links.elementAt(l).toString());\r
+ features.addOtherData(keyValue);\r
+ }\r
+ }\r
+ if(sf[index].otherDetails!=null)\r
+ {\r
+ String key;\r
+ Enumeration keys = sf[index].otherDetails.keys();\r
+ while(keys.hasMoreElements())\r
+ {\r
+ key = keys.nextElement().toString();\r
+ OtherData keyValue = new OtherData();\r
+ keyValue.setKey( key );\r
+ keyValue.setValue(\r
+ sf[index].otherDetails.get(key).toString());\r
+ features.addOtherData(keyValue);\r
+ }\r
+ }\r
+\r
jseq.addFeatures(features);\r
index ++;\r
}\r
\r
String [] renderOrder =\r
af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().renderOrder;\r
+\r
+ Vector settingsAdded = new Vector();\r
for(int ro=0; ro<renderOrder.length; ro++)\r
{\r
Setting setting = new Setting();\r
);\r
\r
fs.addSetting(setting);\r
+ settingsAdded.addElement(renderOrder[ro]);\r
+ }\r
+\r
+ //Make sure we save none displayed feature settings\r
+ Enumeration en =\r
+ af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().featureColours.keys();\r
+ while(en.hasMoreElements())\r
+ {\r
+ String key = en.nextElement().toString();\r
+ if(settingsAdded.contains(key))\r
+ continue;\r
+\r
+ Setting setting = new Setting();\r
+ setting.setType(key);\r
+ setting.setColour(\r
+ af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().getColour(key).getRGB()\r
+ );\r
+\r
+ setting.setDisplay(false);\r
\r
+ fs.addSetting(setting);\r
+ settingsAdded.addElement(key);\r
}\r
+\r
jms.setFeatureSettings(fs);\r
\r
}\r
\r
String loadPDBFile(String file, String pdbId)\r
{\r
+ System.out.println("load file "+file);\r
try\r
{\r
JarInputStream jin = null;\r
}\r
while (!entry.getName().equals(pdbId));\r
\r
- DataInputStream in = new DataInputStream(jin);\r
+ BufferedReader in = new BufferedReader(new InputStreamReader(jin));\r
File outFile = File.createTempFile("jalview_pdb", ".txt");\r
outFile.deleteOnExit();\r
- DataOutputStream out = new DataOutputStream(new FileOutputStream(outFile));\r
- int data;\r
- while ( (data = in.read()) != -1)\r
+ PrintWriter out = new PrintWriter(new FileOutputStream(outFile));\r
+ String data;\r
+\r
+ while ( (data = in.readLine()) != null)\r
{\r
- out.write(data);\r
+ out.println(data);\r
}\r
out.close();\r
return outFile.getAbsolutePath();\r
features[f].getBegin(), features[f].getEnd(),\r
features[f].getFeatureGroup());\r
\r
+ sf.setScore(features[f].getScore());\r
+ for(int od=0; od<features[f].getOtherDataCount(); od++)\r
+ {\r
+ OtherData keyValue = features[f].getOtherData(od);\r
+ if(keyValue.getKey().startsWith("LINK"))\r
+ sf.addLink(keyValue.getValue());\r
+ else\r
+ sf.setValue(keyValue.getKey(), keyValue.getValue());\r
+\r
+ }\r
+\r
al.getSequenceAt(i).getDatasetSequence().addSequenceFeature(sf);\r
}\r
}\r
jalview.datamodel.PDBEntry entry = new jalview.datamodel.PDBEntry();\r
entry.setId(ids[p].getId());\r
entry.setType(ids[p].getType());\r
- if(!pdbloaded.containsKey(ids[p].getId()))\r
+ if (ids[p].getFile() != null)\r
{\r
- String tmppdb = loadPDBFile(file, ids[p].getId());\r
- entry.setFile(tmppdb);\r
- pdbloaded.put(ids[p].getId(), tmppdb);\r
+ if (!pdbloaded.containsKey(ids[p].getFile()))\r
+ {\r
+ String tmppdb = loadPDBFile(file, ids[p].getId());\r
+ entry.setFile(tmppdb);\r
+ pdbloaded.put(ids[p].getId(), tmppdb);\r
+ }\r
+ else\r
+ entry.setFile(pdbloaded.get(ids[p].getId()).toString());\r
}\r
- else\r
- entry.setFile(pdbloaded.get(ids[p].getId()).toString());\r
\r
al.getSequenceAt(i).getDatasetSequence().addPDBId(entry);\r
}\r
af.viewport.setWrapAlignment(view.getWrapAlignment());\r
af.wrapMenuItem.setSelected(view.getWrapAlignment());\r
\r
- if (view.getWrapAlignment())\r
- {\r
- af.alignPanel.setWrapAlignment(view.getWrapAlignment());\r
- }\r
- else\r
- {\r
- af.annotationPanelMenuItem.setState(view.getShowAnnotation());\r
- af.viewport.setShowAnnotation(view.getShowAnnotation());\r
- af.alignPanel.setAnnotationVisible(view.getShowAnnotation());\r
- }\r
+ af.alignPanel.setWrapAlignment(view.getWrapAlignment());\r
+\r
+ af.annotationPanelMenuItem.setState(view.getShowAnnotation());\r
+ af.viewport.setShowAnnotation(view.getShowAnnotation());\r
+ af.alignPanel.setAnnotationVisible(view.getShowAnnotation());\r
\r
af.viewport.setShowBoxes(view.getShowBoxes());\r
af.viewBoxesMenuItem.setSelected(view.getShowBoxes());\r