git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-2360 refactoring for JalviewColourScheme enum,
[jalview.git]
/
src
/
jalview
/
gui
/
Jalview2XML.java
diff --git
a/src/jalview/gui/Jalview2XML.java
b/src/jalview/gui/Jalview2XML.java
index
86f8146
..
2629f0a
100644
(file)
--- a/
src/jalview/gui/Jalview2XML.java
+++ b/
src/jalview/gui/Jalview2XML.java
@@
-20,6
+20,7
@@
*/
package jalview.gui;
*/
package jalview.gui;
+import jalview.analysis.Conservation;
import jalview.api.FeatureColourI;
import jalview.api.ViewStyleI;
import jalview.api.structures.JalviewStructureDisplayI;
import jalview.api.FeatureColourI;
import jalview.api.ViewStyleI;
import jalview.api.structures.JalviewStructureDisplayI;
@@
-36,6
+37,8
@@
import jalview.datamodel.StructureViewerModel;
import jalview.datamodel.StructureViewerModel.StructureData;
import jalview.ext.varna.RnaModel;
import jalview.gui.StructureViewer.ViewerType;
import jalview.datamodel.StructureViewerModel.StructureData;
import jalview.ext.varna.RnaModel;
import jalview.gui.StructureViewer.ViewerType;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.schemabinding.version2.AlcodMap;
import jalview.schemabinding.version2.AlcodonFrame;
import jalview.schemabinding.version2.Annotation;
import jalview.schemabinding.version2.AlcodMap;
import jalview.schemabinding.version2.AlcodonFrame;
import jalview.schemabinding.version2.Annotation;
@@
-126,7
+129,6
@@
import java.util.jar.JarInputStream;
import java.util.jar.JarOutputStream;
import javax.swing.JInternalFrame;
import java.util.jar.JarOutputStream;
import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import org.exolab.castor.xml.Marshaller;
import javax.swing.SwingUtilities;
import org.exolab.castor.xml.Marshaller;
@@
-313,6
+315,7
@@
public class Jalview2XML
}
return sq;
}
}
return sq;
}
+
/**
* @return true if the forward reference was fully resolved
*/
/**
* @return true if the forward reference was fully resolved
*/
@@
-387,35
+390,44
@@
public class Jalview2XML
public void resolveFrefedSequences()
{
public void resolveFrefedSequences()
{
- Iterator<SeqFref> nextFref=frefedSequence.iterator();
- int toresolve=frefedSequence.size();
- int unresolved=0,failedtoresolve=0;
- while (nextFref.hasNext()) {
+ Iterator<SeqFref> nextFref = frefedSequence.iterator();
+ int toresolve = frefedSequence.size();
+ int unresolved = 0, failedtoresolve = 0;
+ while (nextFref.hasNext())
+ {
SeqFref ref = nextFref.next();
if (ref.isResolvable())
{
SeqFref ref = nextFref.next();
if (ref.isResolvable())
{
- try {
+ try
+ {
if (ref.resolve())
{
nextFref.remove();
if (ref.resolve())
{
nextFref.remove();
- } else {
+ }
+ else
+ {
failedtoresolve++;
}
failedtoresolve++;
}
- } catch (Exception x) {
- System.err.println("IMPLEMENTATION ERROR: Failed to resolve forward reference for sequence "+ref.getSref());
+ } catch (Exception x)
+ {
+ System.err
+ .println("IMPLEMENTATION ERROR: Failed to resolve forward reference for sequence "
+ + ref.getSref());
x.printStackTrace();
failedtoresolve++;
x.printStackTrace();
failedtoresolve++;
- }
- } else {
+ }
+ }
+ else
+ {
unresolved++;
}
}
unresolved++;
}
}
- if (unresolved>0)
+ if (unresolved > 0)
{
System.err.println("Jalview Project Import: There were " + unresolved
+ " forward references left unresolved on the stack.");
}
{
System.err.println("Jalview Project Import: There were " + unresolved
+ " forward references left unresolved on the stack.");
}
- if (failedtoresolve>0)
+ if (failedtoresolve > 0)
{
System.err.println("SERIOUS! " + failedtoresolve
+ " resolvable forward references failed to resolve.");
{
System.err.println("SERIOUS! " + failedtoresolve
+ " resolvable forward references failed to resolve.");
@@
-794,7
+806,7
@@
public class Jalview2XML
JSeq jseq;
Set<String> calcIdSet = new HashSet<String>();
// record the set of vamsas sequence XML POJO we create.
JSeq jseq;
Set<String> calcIdSet = new HashSet<String>();
// record the set of vamsas sequence XML POJO we create.
- HashMap<String,Sequence> vamsasSetIds = new HashMap<String,Sequence>();
+ HashMap<String, Sequence> vamsasSetIds = new HashMap<String, Sequence>();
// SAVE SEQUENCES
for (final SequenceI jds : rjal.getSequences())
{
// SAVE SEQUENCES
for (final SequenceI jds : rjal.getSequences())
{
@@
-847,8
+859,7
@@
public class Jalview2XML
if (av.isHiddenRepSequence(jds))
{
jalview.datamodel.SequenceI[] reps = av
if (av.isHiddenRepSequence(jds))
{
jalview.datamodel.SequenceI[] reps = av
- .getRepresentedSequences(jds)
- .getSequencesInOrder(rjal);
+ .getRepresentedSequences(jds).getSequencesInOrder(rjal);
for (int h = 0; h < reps.length; h++)
{
for (int h = 0; h < reps.length; h++)
{
@@
-982,17
+993,16
@@
public class Jalview2XML
}
}
}
}
- if (entry.getProperty() != null && !entry.getProperty().isEmpty())
+ Enumeration<String> props = entry.getProperties();
+ if (props.hasMoreElements())
{
PdbentryItem item = new PdbentryItem();
{
PdbentryItem item = new PdbentryItem();
- Hashtable properties = entry.getProperty();
- Enumeration en2 = properties.keys();
- while (en2.hasMoreElements())
+ while (props.hasMoreElements())
{
Property prop = new Property();
{
Property prop = new Property();
- String key = en2.nextElement().toString();
+ String key = props.nextElement();
prop.setName(key);
prop.setName(key);
- prop.setValue(properties.get(key).toString());
+ prop.setValue(entry.getProperty(key).toString());
item.addProperty(prop);
}
pdb.addPdbentryItem(item);
item.addProperty(prop);
}
pdb.addPdbentryItem(item);
@@
-1176,7
+1186,7
@@
public class Jalview2XML
}
else
{
}
else
{
- jGroup.setColour(ColourSchemeProperty.getColourName(sg.cs));
+ jGroup.setColour(sg.cs.getSchemeName());
}
}
else if (sg.cs instanceof jalview.schemes.AnnotationColourGradient)
}
}
else if (sg.cs instanceof jalview.schemes.AnnotationColourGradient)
@@
-1192,7
+1202,7
@@
public class Jalview2XML
}
else
{
}
else
{
- jGroup.setColour(ColourSchemeProperty.getColourName(sg.cs));
+ jGroup.setColour(sg.cs.getSchemeName());
}
jGroup.setPidThreshold(sg.cs.getThreshold());
}
jGroup.setPidThreshold(sg.cs.getThreshold());
@@
-1340,8
+1350,7
@@
public class Jalview2XML
for (String featureType : renderOrder)
{
FeatureColourI fcol = ap.getSeqPanel().seqCanvas
for (String featureType : renderOrder)
{
FeatureColourI fcol = ap.getSeqPanel().seqCanvas
- .getFeatureRenderer()
- .getFeatureStyle(featureType);
+ .getFeatureRenderer().getFeatureStyle(featureType);
Setting setting = new Setting();
setting.setType(featureType);
if (!fcol.isSimpleColour())
Setting setting = new Setting();
setting.setType(featureType);
if (!fcol.isSimpleColour())
@@
-1354,8
+1363,8
@@
public class Jalview2XML
setting.setAutoScale(fcol.isAutoScaled());
setting.setThreshold(fcol.getThreshold());
// -1 = No threshold, 0 = Below, 1 = Above
setting.setAutoScale(fcol.isAutoScaled());
setting.setThreshold(fcol.getThreshold());
// -1 = No threshold, 0 = Below, 1 = Above
- setting.setThreshstate(fcol.isAboveThreshold() ? 1
- : (fcol.isBelowThreshold() ? 0 : -1));
+ setting.setThreshstate(fcol.isAboveThreshold() ? 1 : (fcol
+ .isBelowThreshold() ? 0 : -1));
}
else
{
}
else
{
@@
-1377,8
+1386,7
@@
public class Jalview2XML
// is groups actually supposed to be a map here ?
Iterator<String> en = ap.getSeqPanel().seqCanvas
// is groups actually supposed to be a map here ?
Iterator<String> en = ap.getSeqPanel().seqCanvas
- .getFeatureRenderer()
- .getFeatureGroups().iterator();
+ .getFeatureRenderer().getFeatureGroups().iterator();
Vector<String> groupsAdded = new Vector<String>();
while (en.hasNext())
{
Vector<String> groupsAdded = new Vector<String>();
while (en.hasNext())
{
@@
-1715,8
+1723,7
@@
public class Jalview2XML
}
else
{
}
else
{
- ac.setColourScheme(ColourSchemeProperty.getColourName(acg
- .getBaseColour()));
+ ac.setColourScheme(ColourSchemeProperty.getColourName(acg.getBaseColour()));
}
ac.setMaxColour(acg.getMaxColour().getRGB());
}
ac.setMaxColour(acg.getMaxColour().getRGB());
@@
-2536,6
+2543,8
@@
public class Jalview2XML
SplitFrame sf = createSplitFrame(dnaFrame, af);
addedToSplitFrames.add(dnaFrame);
addedToSplitFrames.add(af);
SplitFrame sf = createSplitFrame(dnaFrame, af);
addedToSplitFrames.add(dnaFrame);
addedToSplitFrames.add(af);
+ dnaFrame.setMenusForViewport();
+ af.setMenusForViewport();
if (af.viewport.isGatherViewsHere())
{
gatherTo.add(sf);
if (af.viewport.isGatherViewsHere())
{
gatherTo.add(sf);
@@
-2557,6
+2566,7
@@
public class Jalview2XML
Viewport view = candidate.getKey();
Desktop.addInternalFrame(af, view.getTitle(), view.getWidth(),
view.getHeight());
Viewport view = candidate.getKey();
Desktop.addInternalFrame(af, view.getTitle(), view.getWidth(),
view.getHeight());
+ af.setMenusForViewport();
System.err.println("Failed to restore view " + view.getTitle()
+ " to split frame");
}
System.err.println("Failed to restore view " + view.getTitle()
+ " to split frame");
}
@@
-2626,10
+2636,10
@@
public class Jalview2XML
@Override
public void run()
{
@Override
public void run()
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
finalErrorMessage, "Error "
+ (saving ? "saving" : "loading")
finalErrorMessage, "Error "
+ (saving ? "saving" : "loading")
- + " Jalview file", JOptionPane.WARNING_MESSAGE);
+ + " Jalview file", JvOptionPane.WARNING_MESSAGE);
}
});
}
}
});
}
@@
-2660,14
+2670,16
@@
public class Jalview2XML
* @param pdbId
* @return
*/
* @param pdbId
* @return
*/
- String loadPDBFile(jarInputStreamProvider jprovider, String pdbId)
+ String loadPDBFile(jarInputStreamProvider jprovider, String pdbId,
+ String origFile)
{
if (alreadyLoadedPDB.containsKey(pdbId))
{
return alreadyLoadedPDB.get(pdbId).toString();
}
{
if (alreadyLoadedPDB.containsKey(pdbId))
{
return alreadyLoadedPDB.get(pdbId).toString();
}
- String tempFile = copyJarEntry(jprovider, pdbId, "jalview_pdb");
+ String tempFile = copyJarEntry(jprovider, pdbId, "jalview_pdb",
+ origFile);
if (tempFile != null)
{
alreadyLoadedPDB.put(pdbId, tempFile);
if (tempFile != null)
{
alreadyLoadedPDB.put(pdbId, tempFile);
@@
-2684,14
+2696,26
@@
public class Jalview2XML
* @param prefix
* a prefix for the temporary file name, must be at least three
* characters long
* @param prefix
* a prefix for the temporary file name, must be at least three
* characters long
+ * @param origFile
+ * null or original file - so new file can be given the same suffix
+ * as the old one
* @return
*/
protected String copyJarEntry(jarInputStreamProvider jprovider,
* @return
*/
protected String copyJarEntry(jarInputStreamProvider jprovider,
- String jarEntryName, String prefix)
+ String jarEntryName, String prefix, String origFile)
{
BufferedReader in = null;
PrintWriter out = null;
{
BufferedReader in = null;
PrintWriter out = null;
-
+ String suffix = ".tmp";
+ if (origFile == null)
+ {
+ origFile = jarEntryName;
+ }
+ int sfpos = origFile.lastIndexOf(".");
+ if (sfpos > -1 && sfpos < (origFile.length() - 3))
+ {
+ suffix = "." + origFile.substring(sfpos + 1);
+ }
try
{
JarInputStream jin = jprovider.getJarInputStream();
try
{
JarInputStream jin = jprovider.getJarInputStream();
@@
-2709,7
+2733,7
@@
public class Jalview2XML
if (entry != null)
{
in = new BufferedReader(new InputStreamReader(jin, UTF_8));
if (entry != null)
{
in = new BufferedReader(new InputStreamReader(jin, UTF_8));
- File outFile = File.createTempFile(prefix, ".tmp");
+ File outFile = File.createTempFile(prefix, suffix);
outFile.deleteOnExit();
out = new PrintWriter(new FileOutputStream(outFile));
String data;
outFile.deleteOnExit();
out = new PrintWriter(new FileOutputStream(outFile));
String data;
@@
-2798,7
+2822,6
@@
public class Jalview2XML
List<SequenceI> hiddenSeqs = null;
List<SequenceI> hiddenSeqs = null;
-
List<SequenceI> tmpseqs = new ArrayList<SequenceI>();
boolean multipleView = false;
List<SequenceI> tmpseqs = new ArrayList<SequenceI>();
boolean multipleView = false;
@@
-2815,13
+2838,16
@@
public class Jalview2XML
if (!incompleteSeqs.containsKey(seqId))
{
// may not need this check, but keep it for at least 2.9,1 release
if (!incompleteSeqs.containsKey(seqId))
{
// may not need this check, but keep it for at least 2.9,1 release
- if (tmpSeq.getStart()!=jseqs[i].getStart() || tmpSeq.getEnd()!=jseqs[i].getEnd())
- {
+ if (tmpSeq.getStart() != jseqs[i].getStart()
+ || tmpSeq.getEnd() != jseqs[i].getEnd())
+ {
System.err
.println("Warning JAL-2154 regression: updating start/end for sequence "
+ tmpSeq.toString() + " to " + jseqs[i]);
}
System.err
.println("Warning JAL-2154 regression: updating start/end for sequence "
+ tmpSeq.toString() + " to " + jseqs[i]);
}
- } else {
+ }
+ else
+ {
incompleteSeqs.remove(seqId);
}
if (vamsasSeq.length > vi && vamsasSeq[vi].getId().equals(seqId))
incompleteSeqs.remove(seqId);
}
if (vamsasSeq.length > vi && vamsasSeq[vi].getId().equals(seqId))
@@
-2991,11
+3017,13
@@
public class Jalview2XML
entry.setType(PDBEntry.Type.FILE);
}
}
entry.setType(PDBEntry.Type.FILE);
}
}
- if (ids[p].getFile() != null)
+ // jprovider is null when executing 'New View'
+ if (ids[p].getFile() != null && jprovider != null)
{
if (!pdbloaded.containsKey(ids[p].getFile()))
{
{
if (!pdbloaded.containsKey(ids[p].getFile()))
{
- entry.setFile(loadPDBFile(jprovider, ids[p].getId()));
+ entry.setFile(loadPDBFile(jprovider, ids[p].getId(),
+ ids[p].getFile()));
}
else
{
}
else
{
@@
-3004,12
+3032,11
@@
public class Jalview2XML
}
if (ids[p].getPdbentryItem() != null)
{
}
if (ids[p].getPdbentryItem() != null)
{
- entry.setProperty(new Hashtable());
for (PdbentryItem item : ids[p].getPdbentryItem())
{
for (Property pr : item.getProperty())
{
for (PdbentryItem item : ids[p].getPdbentryItem())
{
for (Property pr : item.getProperty())
{
- entry.getProperty().put(pr.getName(), pr.getValue());
+ entry.setProperty(pr.getName(), pr.getValue());
}
}
}
}
}
}
@@
-3374,9
+3401,8
@@
public class Jalview2XML
}
if (jGroup.getConsThreshold() != 0)
{
}
if (jGroup.getConsThreshold() != 0)
{
- jalview.analysis.Conservation c = new jalview.analysis.Conservation(
- "All", ResidueProperties.propHash, 3,
- sg.getSequences(null), 0, sg.getWidth() - 1);
+ Conservation c = new Conservation("All", sg.getSequences(null),
+ 0, sg.getWidth() - 1);
c.calculate();
c.verdict(false, 25);
sg.cs.setConservation(c);
c.calculate();
c.verdict(false, 25);
sg.cs.setConservation(c);
@@
-3565,7
+3591,7
@@
public class Jalview2XML
String rnaTitle = ss.getTitle();
String sessionState = ss.getViewerState();
String tempStateFile = copyJarEntry(jprovider, sessionState,
String rnaTitle = ss.getTitle();
String sessionState = ss.getViewerState();
String tempStateFile = copyJarEntry(jprovider, sessionState,
- "varna");
+ "varna", null);
RnaModel rna = new RnaModel(rnaTitle, ann, seq, null, gapped);
appVarna.addModelSession(rna, rnaTitle, tempStateFile);
}
RnaModel rna = new RnaModel(rnaTitle, ann, seq, null, gapped);
appVarna.addModelSession(rna, rnaTitle, tempStateFile);
}
@@
-3740,7
+3766,8
@@
public class Jalview2XML
// Originally : ids[p].getFile()
// : TODO: verify external PDB file recovery still works in normal
// jalview project load
// Originally : ids[p].getFile()
// : TODO: verify external PDB file recovery still works in normal
// jalview project load
- jpdb.setFile(loadPDBFile(jprovider, ids[p].getId()));
+ jpdb.setFile(loadPDBFile(jprovider, ids[p].getId(),
+ ids[p].getFile()));
jpdb.setId(ids[p].getId());
int x = structureState.getXpos();
jpdb.setId(ids[p].getId());
int x = structureState.getXpos();
@@
-3751,7
+3778,8
@@
public class Jalview2XML
// Probably don't need to do this anymore...
// Desktop.desktop.getComponentAt(x, y);
// TODO: NOW: check that this recovers the PDB file correctly.
// Probably don't need to do this anymore...
// Desktop.desktop.getComponentAt(x, y);
// TODO: NOW: check that this recovers the PDB file correctly.
- String pdbFile = loadPDBFile(jprovider, ids[p].getId());
+ String pdbFile = loadPDBFile(jprovider, ids[p].getId(),
+ ids[p].getFile());
jalview.datamodel.SequenceI seq = seqRefIds.get(jseqs[i]
.getId() + "");
if (sviewid == null)
jalview.datamodel.SequenceI seq = seqRefIds.get(jseqs[i]
.getId() + "");
if (sviewid == null)
@@
-3911,7
+3939,7
@@
public class Jalview2XML
*/
String viewerJarEntryName = getViewerJarEntryName(data.getViewId());
chimeraSessionFile = copyJarEntry(jprovider, viewerJarEntryName,
*/
String viewerJarEntryName = getViewerJarEntryName(data.getViewId());
chimeraSessionFile = copyJarEntry(jprovider, viewerJarEntryName,
- "chimera");
+ "chimera", null);
Set<Entry<File, StructureData>> fileData = data.getFileData()
.entrySet();
Set<Entry<File, StructureData>> fileData = data.getFileData()
.entrySet();
@@
-3992,6
+4020,11
@@
public class Jalview2XML
// filename
// translation differently.
StructureData filedat = oldFiles.get(new File(oldfilenam));
// filename
// translation differently.
StructureData filedat = oldFiles.get(new File(oldfilenam));
+ if (filedat == null)
+ {
+ String reformatedOldFilename = oldfilenam.replaceAll("/", "\\\\");
+ filedat = oldFiles.get(new File(reformatedOldFilename));
+ }
newFileLoc.append(Platform.escapeString(filedat.getFilePath()));
pdbfilenames.add(filedat.getFilePath());
pdbids.add(filedat.getPdbId());
newFileLoc.append(Platform.escapeString(filedat.getFilePath()));
pdbfilenames.add(filedat.getFilePath());
pdbids.add(filedat.getPdbId());
@@
-4197,8
+4230,7
@@
public class Jalview2XML
StructureData filedat = oldFiles.get(id);
String pdbFile = filedat.getFilePath();
SequenceI[] seq = filedat.getSeqList().toArray(new SequenceI[0]);
StructureData filedat = oldFiles.get(id);
String pdbFile = filedat.getFilePath();
SequenceI[] seq = filedat.getSeqList().toArray(new SequenceI[0]);
- binding.getSsm().setMapping(seq, null, pdbFile,
- jalview.io.AppletFormatAdapter.FILE);
+ binding.getSsm().setMapping(seq, null, pdbFile, DataSourceType.FILE);
binding.addSequenceForStructFile(pdbFile, seq);
}
// and add the AlignmentPanel's reference to the view panel
binding.addSequenceForStructFile(pdbFile, seq);
}
// and add the AlignmentPanel's reference to the view panel
@@
-4313,7
+4345,7
@@
public class Jalview2XML
af = new AlignFrame(al, view.getWidth(), view.getHeight(),
uniqueSeqSetId, viewId);
af = new AlignFrame(al, view.getWidth(), view.getHeight(),
uniqueSeqSetId, viewId);
- af.setFileName(file, "Jalview");
+ af.setFileName(file, FileFormat.Jalview);
for (int i = 0; i < JSEQ.length; i++)
{
for (int i = 0; i < JSEQ.length; i++)
{
@@
-4696,7
+4728,8
@@
public class Jalview2XML
);
}
);
}
- if (viewAnnColour.getColourScheme().equals("None"))
+ if (viewAnnColour.getColourScheme().equals(
+ ResidueColourScheme.NONE))
{
cs = new AnnotationColourGradient(
annAlignment.getAlignmentAnnotation()[i],
{
cs = new AnnotationColourGradient(
annAlignment.getAlignmentAnnotation()[i],
@@
-4744,7
+4777,7
@@
public class Jalview2XML
}
/*
}
/*
- * if (viewAnnColour.getColourScheme().equals("None" )) { sg.cs =
+ * if (viewAnnColour.getColourScheme().equals(ResidueColourScheme.NONE)) { sg.cs =
* new AnnotationColourGradient(
* annAlignment.getAlignmentAnnotation()[i], new
* java.awt.Color(viewAnnColour. getMinColour()), new
* new AnnotationColourGradient(
* annAlignment.getAlignmentAnnotation()[i], new
* java.awt.Color(viewAnnColour. getMinColour()), new