X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FFileLoader.java;h=798875f9c0aab3a2f6f1d6c61750ac6b72ff708d;hb=f37c3fd4fe12799de498de5f397252e9f457fee9;hp=f04b88dc9e3dec958ffab18759a20fadd323f7ec;hpb=8af8526d7448904c67db19f41e237a0eedd55a74;p=jalview.git diff --git a/src/jalview/io/FileLoader.java b/src/jalview/io/FileLoader.java index f04b88d..798875f 100755 --- a/src/jalview/io/FileLoader.java +++ b/src/jalview/io/FileLoader.java @@ -29,7 +29,6 @@ import jalview.bin.Jalview; import jalview.datamodel.AlignmentI; import jalview.datamodel.HiddenColumns; import jalview.datamodel.PDBEntry; -import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.gui.AlignViewport; @@ -200,6 +199,32 @@ public class FileLoader implements Runnable return alignFrame; } + public void LoadFileOntoAlignmentWaitTillLoaded(AlignViewport viewport, + String file, DataSourceType sourceType, FileFormatI format) + { + this.viewport = viewport; + this.file = file; + this.protocol = sourceType; + this.format = format; + _LoadAlignmentFileWaitTillLoaded(); + } + + protected void _LoadAlignmentFileWaitTillLoaded() + { + Thread loader = new Thread(this); + loader.start(); + + while (loader.isAlive()) + { + try + { + Thread.sleep(500); + } catch (Exception ex) + { + } + } + } + public void updateRecentlyOpened() { Vector recent = new Vector(); @@ -255,7 +280,8 @@ public class FileLoader implements Runnable @Override public void run() { - String title = protocol == DataSourceType.PASTE ? "Copied From Clipboard" + String title = protocol == DataSourceType.PASTE + ? "Copied From Clipboard" : file; Runtime rt = Runtime.getRuntime(); try @@ -286,8 +312,7 @@ public class FileLoader implements Runnable + "\" has null or unidentifiable data content!"); if (!Jalview.isHeadlessMode()) { - JvOptionPane.showInternalMessageDialog( - Desktop.desktop, + JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager.getString("label.couldnt_read_data") + " in " + file + "\n" + AppletFormatAdapter.getSupportedFormats(), @@ -314,8 +339,8 @@ public class FileLoader implements Runnable if (source != null) { // Tell the user (developer?) that this is going to cause a problem - System.err - .println("IMPLEMENTATION ERROR: Cannot read consecutive Jalview XML projects from a stream."); + System.err.println( + "IMPLEMENTATION ERROR: Cannot read consecutive Jalview XML projects from a stream."); // We read the data anyway - it might make sense. } alignFrame = new Jalview2XML(raiseGUI).loadJalviewAlign(file); @@ -340,9 +365,10 @@ public class FileLoader implements Runnable if (downloadStructureFile) { String structExt = format.getExtensions().split(",")[0]; - String urlLeafName = file.substring(file.lastIndexOf(System - .getProperty("file.separator")), file - .lastIndexOf(".")); + String urlLeafName = file.substring( + file.lastIndexOf( + System.getProperty("file.separator")), + file.lastIndexOf(".")); String tempStructureFileStr = createNamedJvTempFile( urlLeafName, structExt); UrlDownloadClient.download(file, tempStructureFileStr); @@ -377,8 +403,9 @@ public class FileLoader implements Runnable { // register PDB entries with desktop's structure selection // manager - StructureSelectionManager.getStructureSelectionManager( - Desktop.instance).registerPDBEntry(pdbe); + StructureSelectionManager + .getStructureSelectionManager(Desktop.instance) + .registerPDBEntry(pdbe); } } } @@ -398,45 +425,16 @@ public class FileLoader implements Runnable AlignmentI alignment = viewport.getAlignment(); SequenceI seq = alignment .getSequenceAt(alignment.getAbsoluteHeight() - 1); - alignment.deleteSequence(alignment.getAbsoluteHeight() - 1); - SequenceGroup sg = viewport.getSelectionGroup(); - if (sg != null) + if (seq.hasHMMProfile()) { - seq.insertCharAt(0, sg.getStartRes(), '-'); - seq.insertCharAt(sg.getEndRes() + 1, - alignment.getWidth() - sg.getEndRes(), '-'); - SequenceI topSeq = sg.getSequencesInOrder(alignment)[0]; - int topIndex = alignment.findIndex(topSeq); - alignment.insertSequenceAt(topIndex, seq); - sg.setSeqrep(seq); - viewport.getSelectionGroup().addSequence(seq, false); + /* + * fudge: move HMM consensus sequence from last to first + */ + alignment.deleteSequence(alignment.getAbsoluteHeight() - 1); + alignment.insertSequenceAt(0, seq); } - else - { - for (int i = 0; i < alignment.getAbsoluteHeight(); i++) - { - if (!alignment.getSequenceAt(i).isHMMConsensusSequence()) - { - alignment.getSequences().add(i, seq); - break; - } - } - } - viewport.setAlignment(alignment); - viewport.initInformation(); - viewport.updateInformation(viewport.getAlignPanel()); viewport.getAlignPanel().adjustAnnotationHeight(); viewport.updateSequenceIdColours(); - if (viewport.getAlignPanel().alignFrame - .getSelectedHMM() == null) - { - viewport.getAlignPanel().alignFrame - .setSelectedHMM(seq.getHMM()); - } - viewport.getAlignPanel().repaint(); - viewport.alignmentChanged(viewport.getAlignPanel()); - - } } else @@ -458,8 +456,8 @@ public class FileLoader implements Runnable alignFrame.getViewport().setFeaturesDisplayed(fd); alignFrame.getViewport().setShowSequenceFeatures( ((ComplexAlignFile) source).isShowSeqFeatures()); - ColourSchemeI cs = ColourSchemeMapper.getJalviewColourScheme( - colourSchemeName, al); + ColourSchemeI cs = ColourSchemeMapper + .getJalviewColourScheme(colourSchemeName, al); if (cs != null) { alignFrame.changeColour(cs); @@ -485,8 +483,8 @@ public class FileLoader implements Runnable .applyFeaturesStyle(proxyColourScheme); } alignFrame.statusBar.setText(MessageManager.formatMessage( - "label.successfully_loaded_file", - new String[] { title })); + "label.successfully_loaded_file", new String[] + { title })); if (raiseGUI) { @@ -501,8 +499,8 @@ public class FileLoader implements Runnable try { - alignFrame.setMaximum(jalview.bin.Cache.getDefault( - "SHOW_FULLSCREEN", false)); + alignFrame.setMaximum(jalview.bin.Cache + .getDefault("SHOW_FULLSCREEN", false)); } catch (java.beans.PropertyVetoException ex) { } @@ -515,11 +513,8 @@ public class FileLoader implements Runnable Desktop.instance.stopLoading(); } - final String errorMessage = MessageManager - .getString("label.couldnt_load_file") - + " " - + title - + "\n" + error; + final String errorMessage = MessageManager.getString( + "label.couldnt_load_file") + " " + title + "\n" + error; // TODO: refactor FileLoader to be independent of Desktop / Applet GUI // bits ? if (raiseGUI && Desktop.desktop != null) @@ -530,7 +525,8 @@ public class FileLoader implements Runnable public void run() { JvOptionPane.showInternalMessageDialog(Desktop.desktop, - errorMessage, MessageManager + errorMessage, + MessageManager .getString("label.error_loading_file"), JvOptionPane.WARNING_MESSAGE); } @@ -556,11 +552,11 @@ public class FileLoader implements Runnable @Override public void run() { - JvOptionPane.showInternalMessageDialog( - Desktop.desktop, MessageManager.formatMessage( - "label.problems_opening_file", - new String[] { file }), MessageManager - .getString("label.file_open_error"), + JvOptionPane.showInternalMessageDialog(Desktop.desktop, + MessageManager.formatMessage( + "label.problems_opening_file", new String[] + { file }), + MessageManager.getString("label.file_open_error"), JvOptionPane.WARNING_MESSAGE); } }); @@ -578,11 +574,11 @@ public class FileLoader implements Runnable @Override public void run() { - JvOptionPane.showInternalMessageDialog( - Desktop.desktop, MessageManager.formatMessage( + JvOptionPane.showInternalMessageDialog(Desktop.desktop, + MessageManager.formatMessage( "warn.out_of_memory_loading_file", new String[] - { file }), MessageManager - .getString("label.out_of_memory"), + { file }), + MessageManager.getString("label.out_of_memory"), JvOptionPane.WARNING_MESSAGE); } }); @@ -646,24 +642,10 @@ public class FileLoader implements Runnable String seprator = System.getProperty("file.separator"); String jvTempDir = System.getProperty("java.io.tmpdir") + "jalview" + seprator + System.currentTimeMillis(); - File tempStructFile = new File(jvTempDir + seprator + fileName + "." - + extension); + File tempStructFile = new File( + jvTempDir + seprator + fileName + "." + extension); tempStructFile.mkdirs(); return tempStructFile.toString(); } - /* - * (non-Javadoc) - * - * @see java.lang.Object#finalize() - */ - @Override - protected void finalize() throws Throwable - { - source = null; - alignFrame = null; - viewport = null; - super.finalize(); - } - }