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;
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();
}
}
/* 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()
{
BuildWebServiceMenu();
}
}).start();
+ return serviceListener;
}
/**
}
JInternalFrame frame = new JInternalFrame();
- final OverviewPanel overview = new OverviewPanel(alignPanel);
+
+ // BH 2019.07.26 we allow for an embedded
+ // undecorated overview with defined size
+ frame.setName(Jalview.getAppID("overview"));
+ //
+ Dimension dim = (Dimension) Platform.getEmbeddedAttribute(frame,
+ Platform.EMBEDDED_DIM);
+ if (dim != null && dim.width == 0)
+ {
+ dim = null; // hidden, not embedded
+ }
+
+ OverviewPanel overview = new OverviewPanel(alignPanel, dim);
+
frame.setContentPane(overview);
+ if (dim == null)
+ {
+ dim = new Dimension();
+ // was frame.getSize(), but that is 0,0 at this point;
+ }
+ else
+ {
+ // we are imbedding, and so we have an undecorated frame
+ // and we can set the the frame dimensions accordingly.
+ }
+ // allowing for unresizable option using, style="resize:none"
+ boolean resizable = (Platform.getEmbeddedAttribute(frame,
+ "resize") != "none");
Desktop.addInternalFrame(frame, MessageManager
.formatMessage("label.overview_params", new Object[]
- { this.getTitle() }), true, frame.getWidth(), frame.getHeight(),
- true, true, "overview");
+ { this.getTitle() }), true, dim.width, dim.height, resizable,
+ true);
frame.pack();
frame.setLayer(JLayeredPane.PALETTE_LAYER);
frame.addInternalFrameListener(