X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=e44ccdc140091260439f56005ee38829c96d7c06;hb=14bfc6fb57f123b815f08dbf5b35544abd33b3af;hp=4d29919da9baa4e6b7bab0faf3e4a4098809cb81;hpb=e59b5440bc187007607a070ee1cb4874b7f79c76;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 4d29919..e44ccdc 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -194,9 +194,9 @@ public class AlignFrame extends GAlignFrame /** * Current filename for this alignment */ - String fileName = null; + private String fileName = null; - File fileObject; + private File fileObject; /** * Creates a new AlignFrame object with specific width and height. @@ -851,25 +851,23 @@ public class AlignFrame extends GAlignFrame private PropertyChangeListener addServiceListeners() { PropertyChangeListener serviceListener = new PropertyChangeListener() - { - @Override - public void propertyChange(PropertyChangeEvent evt) - { - { - SwingUtilities.invokeLater(new Runnable() - { - - @Override - public void run() - { - System.err.println( - "Rebuild WS Menu for service change"); - BuildWebServiceMenu(); - } + { + @Override + public void propertyChange(PropertyChangeEvent evt) + { + { + SwingUtilities.invokeLater(new Runnable() + { - }); - } - } + @Override + public void run() + { + System.err.println("Rebuild WS Menu for service change"); + BuildWebServiceMenu(); + } + }); + } + } }; Desktop.getInstance().addJalviewPropertyChangeListener("services", @@ -1055,83 +1053,86 @@ public class AlignFrame extends GAlignFrame @Override public void reload_actionPerformed(ActionEvent e) { - if (fileName != null) + if (fileName == null) { - // TODO: JAL-1108 - ensure all associated frames are closed regardless of - // originating file's format - // TODO: work out how to recover feature settings for correct view(s) when - // file is reloaded. - if (FileFormat.Jalview.equals(currentFileFormat)) + return; + } + // TODO: JAL-1108 - ensure all associated frames are closed regardless of + // originating file's format + // TODO: work out how to recover feature settings for correct view(s) when + // file is reloaded. + if (FileFormat.Jalview.equals(currentFileFormat)) + { + JInternalFrame[] frames = Desktop.getDesktopPane().getAllFrames(); + for (int i = 0; i < frames.length; i++) { - JInternalFrame[] frames = Desktop.getDesktopPane().getAllFrames(); - for (int i = 0; i < frames.length; i++) + if (frames[i] instanceof AlignFrame && frames[i] != this + && ((AlignFrame) frames[i]).fileName != null + && ((AlignFrame) frames[i]).fileName.equals(fileName)) { - if (frames[i] instanceof AlignFrame && frames[i] != this - && ((AlignFrame) frames[i]).fileName != null - && ((AlignFrame) frames[i]).fileName.equals(fileName)) + try + { + frames[i].setSelected(true); + Desktop.getInstance().closeAssociatedWindows(); + } catch (java.beans.PropertyVetoException ex) { - try - { - frames[i].setSelected(true); - Desktop.getInstance().closeAssociatedWindows(); - } catch (java.beans.PropertyVetoException ex) - { - } } - } - Desktop.getInstance().closeAssociatedWindows(); - FileLoader loader = new FileLoader(); - DataSourceType protocol = fileName.startsWith("http:") - ? DataSourceType.URL - : DataSourceType.FILE; - loader.loadFile(viewport, fileName, protocol, currentFileFormat); } - else - { - Rectangle bounds = this.getBounds(); + Desktop.getInstance().closeAssociatedWindows(); + + FileLoader loader = new FileLoader(); + DataSourceType protocol = fileName.startsWith("http:") + ? DataSourceType.URL + : DataSourceType.FILE; + loader.loadFile(viewport, + (fileObject == null ? fileName : fileObject), protocol, + currentFileFormat); + } + else + { + Rectangle bounds = this.getBounds(); - FileLoader loader = new FileLoader(); + FileLoader loader = new FileLoader(); - AlignFrame newframe = null; + AlignFrame newframe = null; - if (fileObject == null) - { + if (fileObject == null) + { - DataSourceType protocol = (fileName.startsWith("http:") - ? DataSourceType.URL - : DataSourceType.FILE); - newframe = loader.loadFileWaitTillLoaded(fileName, protocol, - currentFileFormat); - } - else - { - newframe = loader.loadFileWaitTillLoaded(fileObject, - DataSourceType.FILE, currentFileFormat); - } + DataSourceType protocol = (fileName.startsWith("http:") + ? DataSourceType.URL + : DataSourceType.FILE); + newframe = loader.loadFileWaitTillLoaded(fileName, protocol, + currentFileFormat); + } + else + { + newframe = loader.loadFileWaitTillLoaded(fileObject, + DataSourceType.FILE, currentFileFormat); + } - newframe.setBounds(bounds); - if (featureSettings != null && featureSettings.isShowing()) + newframe.setBounds(bounds); + if (featureSettings != null && featureSettings.isShowing()) + { + final Rectangle fspos = featureSettings.frame.getBounds(); + // TODO: need a 'show feature settings' function that takes bounds - + // need to refactor Desktop.addFrame + newframe.featureSettings_actionPerformed(null); + final FeatureSettings nfs = newframe.featureSettings; + Jalview.execRunnable(new Runnable() { - final Rectangle fspos = featureSettings.frame.getBounds(); - // TODO: need a 'show feature settings' function that takes bounds - - // need to refactor Desktop.addFrame - newframe.featureSettings_actionPerformed(null); - final FeatureSettings nfs = newframe.featureSettings; - SwingUtilities.invokeLater(new Runnable() + @Override + public void run() { - @Override - public void run() - { - nfs.frame.setBounds(fspos); - } - }); - this.featureSettings.close(); - this.featureSettings = null; - } - this.closeMenuItem_actionPerformed(true); + nfs.frame.setBounds(fspos); + } + }); + this.featureSettings.close(); + this.featureSettings = null; } + this.closeMenuItem_actionPerformed(true); } } @@ -3395,13 +3396,11 @@ public class AlignFrame extends GAlignFrame // undecorated overview with defined size frame.setName(Jalview.getAppID("overview")); // - Dimension dim = (Dimension) Platform.getEmbeddedAttribute(frame, - Platform.EMBEDDED_DIM); + Dimension dim = Platform.getDimIfEmbedded(frame, -1, -1); if (dim != null && dim.width == 0) { dim = null; // hidden, not embedded } - OverviewPanel overview = new OverviewPanel(alignPanel, dim); frame.setContentPane(overview); @@ -3780,7 +3779,8 @@ public class AlignFrame extends GAlignFrame frameTitle += this.title; - Desktop.addInternalFrame(tp, frameTitle, 600, 500); + Dimension dim = Platform.getDimIfEmbedded(tp, 600, 500); + Desktop.addInternalFrame(tp, frameTitle, dim.width, dim.height); } /** @@ -4132,15 +4132,24 @@ public class AlignFrame extends GAlignFrame if (nf.getTree() != null) { tp = new TreePanel(alignPanel, nf, treeTitle, input); - - tp.setSize(w, h); + Dimension dim = Platform.getDimIfEmbedded(tp, -1, -1); + if (dim == null) + { + dim = new Dimension(w, h); + } + else + { + // no offset, either + x = 0; + } + tp.setSize(dim.width, dim.height); if (x > 0 && y > 0) { tp.setLocation(x, y); } - Desktop.addInternalFrame(tp, treeTitle, w, h); + Desktop.addInternalFrame(tp, treeTitle, dim.width, dim.height); } } catch (Exception ex) { @@ -4158,6 +4167,10 @@ public class AlignFrame extends GAlignFrame */ public void BuildWebServiceMenu() { + if (Jalview.isSynchronous()) + { + return; + } while (buildingMenu) { try @@ -4530,7 +4543,6 @@ public class AlignFrame extends GAlignFrame { viewport.setShowSequenceFeatures(true); showSeqFeatures.setSelected(true); - alignPanel.getAlignment().resetColors(); } } @@ -5148,12 +5160,12 @@ public class AlignFrame extends GAlignFrame }); rfetch.add(fetchr); - new Thread(new Runnable() + Jalview.execThread(new Thread(new Runnable() { @Override public void run() { - javax.swing.SwingUtilities.invokeLater(new Runnable() + Jalview.execRunnable(new Runnable() { @Override public void run() @@ -5372,7 +5384,7 @@ public class AlignFrame extends GAlignFrame } }); } - }).start(); + })); }