X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FVamsasAppDatastore.java;h=64e40e35690ae2d7e20806216077dc258c990110;hb=ef0377ec8e57164363e74c33d6ede31f85e8ccf7;hp=95f6849883ea3b3eca9e7f124388286388317b4a;hpb=d423f22792e47dbc800ae220a58677f988971d06;p=jalview.git diff --git a/src/jalview/io/VamsasAppDatastore.java b/src/jalview/io/VamsasAppDatastore.java index 95f6849..64e40e3 100644 --- a/src/jalview/io/VamsasAppDatastore.java +++ b/src/jalview/io/VamsasAppDatastore.java @@ -1,13 +1,13 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) + * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * + * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR @@ -20,11 +20,7 @@ package jalview.io; import jalview.bin.Cache; import jalview.datamodel.AlignedCodonFrame; import jalview.datamodel.AlignmentAnnotation; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.AlignmentView; -import jalview.datamodel.DBRefEntry; import jalview.datamodel.GraphLine; -import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.gui.AlignViewport; @@ -34,14 +30,13 @@ import jalview.io.vamsas.Datasetsequence; import jalview.io.vamsas.DatastoreItem; import jalview.io.vamsas.DatastoreRegistry; import jalview.io.vamsas.Rangetype; -import jalview.util.UrlLink; - import java.io.IOException; import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; import java.util.IdentityHashMap; import java.util.Iterator; +import java.util.List; import java.util.Vector; import java.util.jar.JarInputStream; import java.util.jar.JarOutputStream; @@ -51,14 +46,14 @@ import uk.ac.vamsas.objects.core.*; import uk.ac.vamsas.objects.utils.Properties; /* - * + * * static { * org.exolab.castor.util.LocalConfiguration.getInstance().getProperties().setProperty( * "org.exolab.castor.serializer", "org.apache.xml.serialize.XMLSerilazizer"); } - * + * */ /* - * TODO: check/verify consistency for vamsas sync with group associated alignment annotation + * TODO: check/verify consistency for vamsas sync with group associated alignment annotation */ public class VamsasAppDatastore { @@ -424,8 +419,8 @@ public class VamsasAppDatastore { boolean modified = false; // check existing sequences in local and in document. - Vector docseqs = new Vector(alignment - .getAlignmentSequenceAsReference()); + Vector docseqs = new Vector( + alignment.getAlignmentSequenceAsReference()); for (int i = 0; i < jal.getHeight(); i++) { modified |= syncToAlignmentSequence(jal.getSequenceAt(i), @@ -546,12 +541,8 @@ public class VamsasAppDatastore else { // first find the alignment sequence to associate this with. - SequenceI jvalsq = null; - Enumeration jval = av.getAlignment().getSequences() - .elements(); - while (jval.hasMoreElements()) + for (SequenceI jvalsq : av.getAlignment().getSequences()) { - jvalsq = (SequenceI) jval.nextElement(); // saveDatasetSequenceAnnotation(AlSeqMaps,(uk.ac.vamsas.objects.core.Sequence) // sref, aa[i]); if (jvalsq.getDatasetSequence() == aa[i].sequenceRef) @@ -633,11 +624,9 @@ public class VamsasAppDatastore if (aa[i].annotations[a].secondaryStructure != ' ') { Glyph ss = new Glyph(); - ss - .setDict(uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_SS_3STATE); - ss - .setContent(String - .valueOf(aa[i].annotations[a].secondaryStructure)); + ss.setDict(uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_SS_3STATE); + ss.setContent(String + .valueOf(aa[i].annotations[a].secondaryStructure)); ae.addGlyph(ss); } an.addAnnotationElement(ae); @@ -657,10 +646,8 @@ public class VamsasAppDatastore an.setGroup(Integer.toString(aa[i].graphGroup)); if (aa[i].threshold != null && aa[i].threshold.displayed) { - an - .addProperty(Properties.newProperty(THRESHOLD, - Properties.FLOATTYPE, "" - + aa[i].threshold.value)); + an.addProperty(Properties.newProperty(THRESHOLD, + Properties.FLOATTYPE, "" + aa[i].threshold.value)); if (aa[i].threshold.label != null) { an.addProperty(Properties.newProperty(THRESHOLD @@ -708,8 +695,8 @@ public class VamsasAppDatastore { TreePanel tp = (TreePanel) frames[t]; - if (tp.getViewPort().getSequenceSetId().equals( - av.getSequenceSetId())) + if (tp.getViewPort().getSequenceSetId() + .equals(av.getSequenceSetId())) { DatastoreItem vtree = new jalview.io.vamsas.Tree(this, tp, jal, alignment); @@ -888,7 +875,7 @@ public class VamsasAppDatastore * creates/syncs the jvalsq from the alignment sequence */ private boolean syncFromAlignmentSequence(AlignmentSequence valseq, - char valGapchar, char gapChar, Vector dsseqs) + char valGapchar, char gapChar, List dsseqs) { boolean modal = false; @@ -936,8 +923,8 @@ public class VamsasAppDatastore else { alseq = new jalview.datamodel.Sequence(valseq.getName(), valseq - .getSequence().replace(valGapchar, gapChar), (int) valseq - .getStart(), (int) valseq.getEnd()); + .getSequence().replace(valGapchar, gapChar), + (int) valseq.getStart(), (int) valseq.getEnd()); Vobject datsetseq = (Vobject) valseq.getRefid(); if (datsetseq != null) @@ -1037,8 +1024,7 @@ public class VamsasAppDatastore { // we only write an annotation where it really exists. Glyph ss = new Glyph(); - ss - .setDict(uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_SS_3STATE); + ss.setDict(uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_SS_3STATE); ss.setContent(String .valueOf(alan.annotations[a].secondaryStructure)); ae.addGlyph(ss); @@ -1265,7 +1251,7 @@ public class VamsasAppDatastore /** * list of alignment views created when updating Jalview from document. */ - private Vector newAlignmentViews = new Vector(); + private final Vector newAlignmentViews = new Vector(); /** * update local jalview view settings from the stored appdata (if any) @@ -1297,6 +1283,7 @@ public class VamsasAppDatastore jalview.util.jarInputStreamProvider jprovider = new jalview.util.jarInputStreamProvider() { + @Override public String getFilename() { @@ -1304,6 +1291,7 @@ public class VamsasAppDatastore return "Jalview Vamsas Document Client Data"; } + @Override public JarInputStream getJarInputStream() throws IOException { jalview.bin.Cache.log @@ -1343,6 +1331,7 @@ public class VamsasAppDatastore jalview.util.jarInputStreamProvider jarstream = new jalview.util.jarInputStreamProvider() { + @Override public String getFilename() { @@ -1350,6 +1339,7 @@ public class VamsasAppDatastore return "Jalview Vamsas Document User Data"; } + @Override public JarInputStream getJarInputStream() throws IOException { jalview.bin.Cache.log @@ -1448,7 +1438,8 @@ public class VamsasAppDatastore if (mappings != null && mappings.length > 0) { jalview.structure.StructureSelectionManager - .getStructureSelectionManager().addMappings(mappings); + .getStructureSelectionManager(Desktop.instance) + .addMappings(mappings); } } } @@ -1477,6 +1468,8 @@ public class VamsasAppDatastore Object vobject = jv2vobj.remove(oldjvobject); if (vobject == null) { + // NOTE: this happens if user deletes object in one session then updates + // from another client throw new Error( "IMPLEMENTATION ERROR: old jalview object is not bound ! (" + oldjvobject + ")"); @@ -1512,8 +1505,7 @@ public class VamsasAppDatastore { // TODO raise GUI warning if user requests it. jalview.bin.Cache.log - .error( - "Couldn't update jalview client application data. Giving up - local settings probably lost.", + .error("Couldn't update jalview client application data. Giving up - local settings probably lost.", e); } } @@ -1579,7 +1571,7 @@ public class VamsasAppDatastore // ///LOAD DATASET DataSet dataset = root.getDataSet(_ds); int i, iSize = dataset.getSequenceCount(); - Vector dsseqs; + List dsseqs; jalview.datamodel.Alignment jdataset = (jalview.datamodel.Alignment) getvObj2jv(dataset); int jremain = 0; if (jdataset == null) @@ -1626,8 +1618,8 @@ public class VamsasAppDatastore SequenceI[] seqs = new SequenceI[dsseqs.size()]; for (i = 0, iSize = dsseqs.size(); i < iSize; i++) { - seqs[i] = (SequenceI) dsseqs.elementAt(i); - dsseqs.setElementAt(null, i); + seqs[i] = dsseqs.get(i); + dsseqs.set(i, null); } jdataset = new jalview.datamodel.Alignment(seqs); Cache.log.debug("New vamsas dataset imported into jalview."); @@ -1720,8 +1712,7 @@ public class VamsasAppDatastore AlignmentSequence valseq = alignment.getAlignmentSequence(i); jalview.datamodel.Sequence alseq = (jalview.datamodel.Sequence) getvObj2jv(valseq); if (syncFromAlignmentSequence(valseq, valGapchar, gapChar, - dsseqs) - && alseq != null) + dsseqs) && alseq != null) { // updated to sequence from the document @@ -1789,8 +1780,8 @@ public class VamsasAppDatastore SequenceI[] seqs = new SequenceI[dsseqs.size()]; for (i = 0, iSize = dsseqs.size(); i < iSize; i++) { - seqs[i] = (SequenceI) dsseqs.elementAt(i); - dsseqs.setElementAt(null, i); + seqs[i] = dsseqs.get(i); + dsseqs.set(i, null); } jal = new jalview.datamodel.Alignment(seqs); Cache.log.debug("New vamsas alignment imported into jalview " @@ -1867,8 +1858,10 @@ public class VamsasAppDatastore .toString()); av = alignFrame.getViewport(); newAlignmentViews.addElement(av); - String title = alignment.getProvenance().getEntry( - alignment.getProvenance().getEntryCount() - 1) + String title = alignment + .getProvenance() + .getEntry( + alignment.getProvenance().getEntryCount() - 1) .getAction(); if (alignment.getPropertyCount() > 0) { @@ -2059,16 +2052,14 @@ public class VamsasAppDatastore { if (glyphs[g] .getDict() - .equals( - uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_SS_3STATE)) + .equals(uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_SS_3STATE)) { ss = glyphs[g].getContent(); AeContent[HASSECSTR] = true; } else if (glyphs[g] .getDict() - .equals( - uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_HD_HYDRO)) + .equals(uk.ac.vamsas.objects.utils.GlyphDictionary.PROTEIN_HD_HYDRO)) { Cache.log.debug("ignoring hydrophobicity glyph marker."); AeContent[HASHPHOB] = true; @@ -2107,14 +2098,14 @@ public class VamsasAppDatastore if (colour == null) { anot[row][pos] = new jalview.datamodel.Annotation( - (dc != null) ? dc : "", desc, (ss != null) ? ss - .charAt(0) : ' ', val); + (dc != null) ? dc : "", desc, + (ss != null) ? ss.charAt(0) : ' ', val); } else { anot[row][pos] = new jalview.datamodel.Annotation( - (dc != null) ? dc : "", desc, (ss != null) ? ss - .charAt(0) : ' ', val, colour); + (dc != null) ? dc : "", desc, + (ss != null) ? ss.charAt(0) : ' ', val, colour); } } else