X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FDesktop.java;fp=src%2Fjalview%2Fgui%2FDesktop.java;h=c835248bc5cd047a615113394e0cc835f85f2200;hb=53b2ec17b88081e402f60deab2723750bc4867d1;hp=c76c396889bdbd12e767e2c50e184183fe47da4d;hpb=6babd7c2387996384a49042ed4290095c13d5ed9;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index c76c396..c835248 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -23,6 +23,7 @@ package jalview.gui; import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.bin.Cache; +import jalview.bin.Instance; import jalview.bin.Jalview; import jalview.gui.ImageExporter.ImageWriterI; import jalview.io.BackupFiles; @@ -47,6 +48,7 @@ import jalview.util.MessageManager; import jalview.util.Platform; import jalview.util.UrlConstants; import jalview.viewmodel.AlignmentViewport; +import jalview.ws.jws1.Discoverer; import jalview.ws.params.ParamManager; import jalview.ws.utils.UrlDownloadClient; @@ -191,51 +193,9 @@ public class Desktop extends jalview.jbgui.GDesktop listener); } - /** - * Singleton Desktop instance only in Java; - */ - private static Desktop instance; - - public static Desktop getInstance() - { - if (instance == null) - { - new Desktop(true); - } - Desktop d; - @SuppressWarnings("unused") - ThreadGroup g = Thread.currentThread().getThreadGroup(); - /** - * @j2sNative d = g._jalviewDesktopInstance; - */ - { - d = instance; - } - return d; - } - - private static void setInstance(Desktop d) - { - @SuppressWarnings("unused") - ThreadGroup g = Thread.currentThread().getThreadGroup(); - /** - * @j2sNative g._jalviewDesktopInstance = d; - */ - { - instance = d; - } - } - - private MyDesktopPane desktopPane; - public static MyDesktopPane getDesktopPane() { - return getInstance().desktopPane; - } - - private void setDesktopPane(MyDesktopPane pane) - { - getInstance().desktopPane = pane; + return Instance.getDesktop().desktopPane; } static int openFrameCount = 0; @@ -244,7 +204,7 @@ public class Desktop extends jalview.jbgui.GDesktop static final int yOffset = 30; - public jalview.ws.jws1.Discoverer discoverer; + public Discoverer discoverer; public Object[] jalviewClipboard; @@ -254,6 +214,9 @@ public class Desktop extends jalview.jbgui.GDesktop public JInternalFrame conservationSlider, PIDSlider; + /** + * just an instance (for testng, probably); no actual frames + */ private boolean instanceOnly; class MyDesktopManager implements DesktopManager @@ -275,7 +238,7 @@ public class Desktop extends jalview.jbgui.GDesktop } catch (NullPointerException npe) { Point p = getMousePosition(); - getInstance().showPasteMenu(p.x, p.y); + showPasteMenu(p.x, p.y); } } @@ -323,14 +286,14 @@ public class Desktop extends jalview.jbgui.GDesktop public void endDraggingFrame(JComponent f) { delegate.endDraggingFrame(f); - getDesktopPane().repaint(); + desktopPane.repaint(); } @Override public void endResizingFrame(JComponent f) { delegate.endResizingFrame(f); - getDesktopPane().repaint(); + desktopPane.repaint(); } @Override @@ -379,10 +342,11 @@ public class Desktop extends jalview.jbgui.GDesktop } + public MyDesktopPane desktopPane; + public Desktop(boolean forInstance) { instanceOnly = true; - setInstance(this); } /** * Creates a new Desktop object. @@ -394,7 +358,7 @@ public class Desktop extends jalview.jbgui.GDesktop * block are spawned off as threads rather than waited for during this * constructor. */ - setInstance(this); + Instance.setDesktop(this); if (!Platform.isJS()) { doVamsasClientCheck(); @@ -407,10 +371,10 @@ public class Desktop extends jalview.jbgui.GDesktop false); boolean showjconsole = jalview.bin.Cache.getDefault("SHOW_JAVA_CONSOLE", false); - setDesktopPane(new MyDesktopPane(selmemusage)); + desktopPane = new MyDesktopPane(selmemusage); showMemusage.setSelected(selmemusage); - getDesktopPane().setBackground(Color.white); + desktopPane.setBackground(Color.white); getContentPane().setLayout(new BorderLayout()); // alternate config - have scrollbars - see notes in JAL-153 // JScrollPane sp = new JScrollPane(); @@ -423,17 +387,17 @@ public class Desktop extends jalview.jbgui.GDesktop getRootPane().putClientProperty("swingjs.overflow.hidden", "false"); } - getContentPane().add(getDesktopPane(), BorderLayout.CENTER); - getDesktopPane().setDragMode(JDesktopPane.OUTLINE_DRAG_MODE); + getContentPane().add(desktopPane, BorderLayout.CENTER); + desktopPane.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE); // This line prevents Windows Look&Feel resizing all new windows to maximum // if previous window was maximised - getDesktopPane().setDesktopManager(new MyDesktopManager( + desktopPane.setDesktopManager(new MyDesktopManager( (Platform.isWindowsAndNotJS() ? new DefaultDesktopManager() : Platform.isAMacAndNotJS() ? new AquaInternalFrameManager( - getDesktopPane().getDesktopManager()) - : getDesktopPane().getDesktopManager()))); + desktopPane.getDesktopManager()) + : desktopPane.getDesktopManager()))); Rectangle dims = getLastKnownDimensions(""); if (dims != null) @@ -522,7 +486,7 @@ public class Desktop extends jalview.jbgui.GDesktop } - this.setDropTarget(new java.awt.dnd.DropTarget(getDesktopPane(), this)); + this.setDropTarget(new java.awt.dnd.DropTarget(desktopPane, this)); this.addWindowListener(new WindowAdapter() { @@ -554,7 +518,7 @@ public class Desktop extends jalview.jbgui.GDesktop } } }); - getDesktopPane().addMouseListener(ma); + desktopPane.addMouseListener(ma); } @@ -652,10 +616,10 @@ public class Desktop extends jalview.jbgui.GDesktop public void run() { long now = System.currentTimeMillis(); - Desktop.getInstance().setProgressBar( + setProgressBar( MessageManager.getString("status.refreshing_news"), now); jvnews.refreshNews(); - Desktop.getInstance().setProgressBar(null, now); + setProgressBar(null, now); jvnews.showNews(); } }).start(); @@ -902,7 +866,7 @@ public class Desktop extends jalview.jbgui.GDesktop // A HEADLESS STATE WHEN NO DESKTOP EXISTS. MUST RETURN // IF JALVIEW IS RUNNING HEADLESS // /////////////////////////////////////////////// - if (getInstance().instanceOnly || Jalview.isHeadlessMode()) + if (Instance.getDesktop().instanceOnly || Jalview.isHeadlessMode()) { return; } @@ -980,7 +944,7 @@ public class Desktop extends jalview.jbgui.GDesktop { menuItem.removeActionListener(menuItem.getActionListeners()[0]); } - getInstance().windowMenu.remove(menuItem); + Instance.getDesktop().windowMenu.remove(menuItem); }; }); @@ -1004,7 +968,7 @@ public class Desktop extends jalview.jbgui.GDesktop getDesktopPane().add(frame); - getInstance().windowMenu.add(menuItem); + Instance.getDesktop().windowMenu.add(menuItem); frame.toFront(); try @@ -1061,7 +1025,7 @@ public class Desktop extends jalview.jbgui.GDesktop { if (!internalCopy) { - Desktop.getInstance().jalviewClipboard = null; + Instance.getDesktop().jalviewClipboard = null; } internalCopy = false; @@ -1514,12 +1478,12 @@ public class Desktop extends jalview.jbgui.GDesktop @Override public void closeAll_actionPerformed(ActionEvent e) { - if (getDesktopPane() == null) + if (desktopPane == null) { return; } // TODO show a progress bar while closing? - JInternalFrame[] frames = getDesktopPane().getAllFrames(); + JInternalFrame[] frames = desktopPane.getAllFrames(); for (int i = 0; i < frames.length; i++) { try @@ -1904,7 +1868,7 @@ public class Desktop extends jalview.jbgui.GDesktop { progressPanel = new JPanel(new GridLayout(1, 1)); totalProgressCount = 0; - getInstance().getContentPane().add(progressPanel, BorderLayout.SOUTH); + getContentPane().add(progressPanel, BorderLayout.SOUTH); } JPanel thisprogress = new JPanel(new BorderLayout(10, 5)); JProgressBar progressBar = new JProgressBar(); @@ -1917,7 +1881,7 @@ public class Desktop extends jalview.jbgui.GDesktop ((GridLayout) progressPanel.getLayout()).setRows( ((GridLayout) progressPanel.getLayout()).getRows() + 1); ++totalProgressCount; - getInstance().validate(); + validate(); return thisprogress; } @@ -2099,7 +2063,7 @@ public class Desktop extends jalview.jbgui.GDesktop { source.viewport.setGatherViewsHere(true); source.viewport.setExplodedGeometry(source.getBounds()); - JInternalFrame[] frames = getDesktopPane().getAllFrames(); + JInternalFrame[] frames = getAllFrames(); String viewId = source.viewport.getSequenceSetId(); for (int t = 0; t < frames.length; t++) @@ -2494,7 +2458,7 @@ public class Desktop extends jalview.jbgui.GDesktop public JInternalFrame[] getAllFrames() { - return getDesktopPane().getAllFrames(); + return desktopPane.getAllFrames(); } /** @@ -2580,7 +2544,7 @@ public class Desktop extends jalview.jbgui.GDesktop }); msgPanel.add(jcb); - JvOptionPane.showMessageDialog(Desktop.getDesktopPane(), msgPanel, + JvOptionPane.showMessageDialog(desktopPane, msgPanel, MessageManager .getString("label.SEQUENCE_ID_no_longer_used"), JvOptionPane.WARNING_MESSAGE); @@ -2780,7 +2744,7 @@ public class Desktop extends jalview.jbgui.GDesktop } catch (Exception ex) { jalview.bin.Cache.log.error("Groovy Shell Creation failed.", ex); - JvOptionPane.showInternalMessageDialog(Desktop.getDesktopPane(), + JvOptionPane.showInternalMessageDialog(desktopPane, MessageManager.getString("label.couldnt_create_groovy_shell"), MessageManager.getString("label.groovy_support_failed"), @@ -3038,7 +3002,7 @@ public class Desktop extends jalview.jbgui.GDesktop // todo: changesupport handlers need to be transferred if (discoverer == null) { - discoverer = new jalview.ws.jws1.Discoverer(); + discoverer = Discoverer.getInstance(); // register PCS handler for getDesktop(). discoverer.addPropertyChangeListener(changeSupport); } @@ -3158,7 +3122,7 @@ public class Desktop extends jalview.jbgui.GDesktop */ public static void showUrl(final String url) { - showUrl(url, Desktop.getInstance()); + showUrl(url, Instance.getDesktop()); } /** @@ -3207,7 +3171,7 @@ public class Desktop extends jalview.jbgui.GDesktop public static ParamManager getUserParameterStore() { - Desktop d = getInstance(); + Desktop d = Instance.getDesktop(); if (d.wsparamManager == null) { d.wsparamManager = new WsParamSetManager(); @@ -3454,7 +3418,7 @@ public class Desktop extends jalview.jbgui.GDesktop String topViewId = myTopFrame.viewport.getSequenceSetId(); String bottomViewId = myBottomFrame.viewport.getSequenceSetId(); - JInternalFrame[] frames = getDesktopPane().getAllFrames(); + JInternalFrame[] frames = desktopPane.getAllFrames(); for (JInternalFrame frame : frames) { if (frame instanceof SplitFrame && frame != source) @@ -3499,7 +3463,7 @@ public class Desktop extends jalview.jbgui.GDesktop public static groovy.ui.Console getGroovyConsole() { - return getInstance().groovyConsole; + return Instance.getDesktop().groovyConsole; } /** @@ -3752,7 +3716,7 @@ public class Desktop extends jalview.jbgui.GDesktop Class structureViewerClass) { List result = new ArrayList<>(); - JInternalFrame[] frames = Desktop.getInstance().getAllFrames(); + JInternalFrame[] frames = getAllFrames(); for (JInternalFrame frame : frames) {