X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=2ef31a27f3c5cb6d9833c4bd879eeadb1cdb5f6c;hb=e7921fdc9d6ab87ef91bb7781dd7d9316e671e3f;hp=4fa840858477186647d2338223c3ab48555273a3;hpb=04e88679fd837e9fe36d186e5eacdd5f13a89927;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 4fa8408..2ef31a2 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -131,6 +131,7 @@ import java.awt.event.MouseEvent; import java.awt.print.PageFormat; import java.awt.print.PrinterJob; import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; @@ -193,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. @@ -413,10 +414,24 @@ public class AlignFrame extends GAlignFrame if (Desktop.getDesktopPane() != null) { this.setDropTarget(new java.awt.dnd.DropTarget(this, this)); - if (!Platform.isJS()) + PropertyChangeListener serviceListener = (Platform.isJS() ? null + : addServiceListeners()); + addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() { - addServiceListeners(); - } + @Override + public void internalFrameClosed( + javax.swing.event.InternalFrameEvent evt) + { + // System.out.println("deregistering discoverer listener"); + if (serviceListener != null) + { + Desktop.getInstance().removeJalviewPropertyChangeListener( + "services", serviceListener); + } + closeMenuItem_actionPerformed(true); + } + }); + setGUINucleotide(); } @@ -833,43 +848,30 @@ public class AlignFrame extends GAlignFrame } /* Set up intrinsic listeners for dynamically generated GUI bits. */ - private void addServiceListeners() + private PropertyChangeListener addServiceListeners() { - final java.beans.PropertyChangeListener thisListener; - Desktop.getInstance().addJalviewPropertyChangeListener("services", - thisListener = new java.beans.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(); - } - - }); - } - } - }); - addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() + PropertyChangeListener serviceListener = new PropertyChangeListener() { @Override - public void internalFrameClosed( - javax.swing.event.InternalFrameEvent evt) + public void propertyChange(PropertyChangeEvent evt) { - // System.out.println("deregistering discoverer listener"); - Desktop.getInstance().removeJalviewPropertyChangeListener("services", - thisListener); - closeMenuItem_actionPerformed(true); + { + SwingUtilities.invokeLater(new Runnable() + { + + @Override + public void run() + { + System.err.println("Rebuild WS Menu for service change"); + BuildWebServiceMenu(); + } + }); + } } - }); + }; + + Desktop.getInstance().addJalviewPropertyChangeListener("services", + serviceListener); // Finally, build the menu once to get current service state new Thread(new Runnable() { @@ -879,6 +881,7 @@ public class AlignFrame extends GAlignFrame BuildWebServiceMenu(); } }).start(); + return serviceListener; } /** @@ -1050,6 +1053,7 @@ public class AlignFrame extends GAlignFrame @Override public void reload_actionPerformed(ActionEvent e) { + System.out.println("AlignFrame.reload " + fileName); if (fileName != null) { // TODO: JAL-1108 - ensure all associated frames are closed regardless of @@ -1081,7 +1085,9 @@ public class AlignFrame extends GAlignFrame DataSourceType protocol = fileName.startsWith("http:") ? DataSourceType.URL : DataSourceType.FILE; - loader.loadFile(viewport, fileName, protocol, currentFileFormat); + loader.loadFile(viewport, + (fileObject == null ? fileName : fileObject), protocol, + currentFileFormat); } else { @@ -3390,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); @@ -3775,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); } /** @@ -4127,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) {