Merge branch 'bug/JAL-3141_backupfiles_prefs_widget_disable_bug' into merge/develop_b...
authorBen Soares <bsoares@dundee.ac.uk>
Wed, 22 May 2019 11:18:01 +0000 (12:18 +0100)
committerBen Soares <bsoares@dundee.ac.uk>
Wed, 22 May 2019 11:18:01 +0000 (12:18 +0100)
Merging three unmerged commits

1  2 
src/jalview/gui/Desktop.java
src/jalview/jbgui/GDesktop.java

@@@ -20,6 -20,8 +20,6 @@@
   */
  package jalview.gui;
  
 -import static jalview.util.UrlConstants.SEQUENCE_ID;
 -
  import jalview.api.AlignViewportI;
  import jalview.api.AlignmentViewPanel;
  import jalview.bin.Cache;
@@@ -80,11 -82,9 +80,11 @@@ import java.beans.PropertyChangeListene
  import java.io.BufferedInputStream;
  import java.io.File;
  import java.io.FileOutputStream;
 +import java.io.FileWriter;
  import java.io.IOException;
  import java.net.URL;
  import java.util.ArrayList;
 +import java.util.HashMap;
  import java.util.Hashtable;
  import java.util.List;
  import java.util.ListIterator;
@@@ -107,6 -107,7 +107,6 @@@ import javax.swing.JCheckBox
  import javax.swing.JComboBox;
  import javax.swing.JComponent;
  import javax.swing.JDesktopPane;
 -import javax.swing.JFrame;
  import javax.swing.JInternalFrame;
  import javax.swing.JLabel;
  import javax.swing.JMenuItem;
@@@ -145,10 -146,6 +145,10 @@@ public class Desktop extends jalview.jb
  
    private static final String EXPERIMENTAL_FEATURES = "EXPERIMENTAL_FEATURES";
  
 +  protected static final String CONFIRM_KEYBOARD_QUIT = "CONFIRM_KEYBOARD_QUIT";
 +
 +  public static HashMap<String, FileWriter> savingFiles = new HashMap<>();
 +
    private JalviewChangeSupport changeSupport = new JalviewChangeSupport();
  
    /**
  
      doConfigureStructurePrefs();
      setTitle("Jalview " + jalview.bin.Cache.getProperty("VERSION"));
 -    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 +    /*
 +    if (!Platform.isAMac())
 +    {
 +      // this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 +    }
 +    else
 +    {
 +     this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
 +    }
 +    */
 +
 +    try
 +    {
 +      APQHandlers.setAPQHandlers(this);
 +    } catch (Exception e)
 +    {
 +      System.out.println("Exception when trying to set APQHandlers");
 +      e.printStackTrace();
 +    } catch (Throwable t)
 +    {
 +      System.out.println("Throwable when trying to set APQHandlers");
 +      t.printStackTrace();
 +    }
 +
 +
 +    addWindowListener(new WindowAdapter()
 +    {
 +
 +      @Override
 +      public void windowClosing(WindowEvent ev)
 +      {
 +        quit();
 +      }
 +    });
 +
      boolean selmemusage = jalview.bin.Cache.getDefault("SHOW_MEMUSAGE",
              false);
 +
      boolean showjconsole = jalview.bin.Cache.getDefault("SHOW_JAVA_CONSOLE",
              false);
      desktop = new MyDesktopPane(selmemusage);
      showMemusage.setSelected(selmemusage);
      desktop.setBackground(Color.white);
 +
      getContentPane().setLayout(new BorderLayout());
      // alternate config - have scrollbars - see notes in JAL-153
      // JScrollPane sp = new JScrollPane();
                      + System.getProperty("java.version") + "\n"
                      + System.getProperty("os.arch") + " "
                      + System.getProperty("os.name") + " "
 -                    + System.getProperty("os.version"));
 +                    + System.getProperty("os.version")
 +                    + (jalview.bin.Cache.getProperty("VERSION").equals("DEVELOPMENT")
 +                                    ? "\nJava path:"
 +                                            + System.getProperty(
 +                                                    "java.home")
 +                                            + File.separator + "bin"
 +                                            + File.separator + "java"
 +                                    : "")
 +            );
  
      showConsole(showjconsole);
  
      KeyStroke ctrlWKey = KeyStroke.getKeyStroke(KeyEvent.VK_W,
              InputEvent.CTRL_DOWN_MASK);
      KeyStroke cmdWKey = KeyStroke.getKeyStroke(KeyEvent.VK_W,
 -            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
 +            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx());
  
      InputMap inputMap = frame
              .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    {
      String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT");
      JalviewFileChooser chooser = JalviewFileChooser
-             .forRead(Cache.getProperty("LAST_DIRECTORY"), fileFormat, true);
+             .forRead(Cache.getProperty("LAST_DIRECTORY"), fileFormat, BackupFiles.getEnabled());
  
      chooser.setFileView(new JalviewFileView());
      chooser.setDialogTitle(
    @Override
    public void quit()
    {
 +    //System.out.println("********** Desktop.quit()");
 +    //System.out.println(savingFiles.toString());
      Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
      jalview.bin.Cache.setProperty("SCREENGEOMETRY_WIDTH",
              screen.width + "");
          "Jalview Project (old)" };
      JalviewFileChooser chooser = new JalviewFileChooser(
              Cache.getProperty("LAST_DIRECTORY"), suffix, desc,
-             "Jalview Project", true, true); // last two booleans: allFiles,
+             "Jalview Project", true, BackupFiles.getEnabled()); // last two booleans: allFiles,
                                              // allowBackupFiles
      chooser.setFileView(new JalviewFileView());
      chooser.setDialogTitle(MessageManager.getString("label.restore_state"));
            while (li.hasNext())
            {
              String link = li.next();
 -            if (link.contains(SEQUENCE_ID)
 +            if (link.contains(jalview.util.UrlConstants.SEQUENCE_ID)
                      && !UrlConstants.isDefaultString(link))
              {
                check = true;
    {
      getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
              .put(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
 -                    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()),
 +                    jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()),
                      "Quit");
      getRootPane().getActionMap().put("Quit", new AbstractAction()
      {
        progressBarHandlers = new Hashtable<>();
      }
  
 -    if (progressBars.get(new Long(id)) != null)
 +    if (progressBars.get(Long.valueOf(id)) != null)
      {
 -      JPanel panel = progressBars.remove(new Long(id));
 -      if (progressBarHandlers.contains(new Long(id)))
 +      JPanel panel = progressBars.remove(Long.valueOf(id));
 +      if (progressBarHandlers.contains(Long.valueOf(id)))
        {
 -        progressBarHandlers.remove(new Long(id));
 +        progressBarHandlers.remove(Long.valueOf(id));
        }
        removeProgressPanel(panel);
      }
      else
      {
 -      progressBars.put(new Long(id), addProgressPanel(message));
 +      progressBars.put(Long.valueOf(id), addProgressPanel(message));
      }
    }
  
            final IProgressIndicatorHandler handler)
    {
      if (progressBarHandlers == null
 -            || !progressBars.containsKey(new Long(id)))
 +            || !progressBars.containsKey(Long.valueOf(id)))
      {
        throw new Error(MessageManager.getString(
                "error.call_setprogressbar_before_registering_handler"));
      }
 -    progressBarHandlers.put(new Long(id), handler);
 -    final JPanel progressPanel = progressBars.get(new Long(id));
 +    progressBarHandlers.put(Long.valueOf(id), handler);
 +    final JPanel progressPanel = progressBars.get(Long.valueOf(id));
      if (handler.canCancel())
      {
        JButton cancel = new JButton(
@@@ -26,6 -26,7 +26,6 @@@ import jalview.util.MessageManager
  import jalview.util.Platform;
  
  import java.awt.FlowLayout;
 -import java.awt.Toolkit;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  
@@@ -160,7 -161,7 +160,7 @@@ public class GDesktop extends JFram
              .setText(MessageManager.getString("label.load_tree_from_file"));
      inputLocalFileMenuItem.setAccelerator(
              javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O,
 -                    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
 +                    jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(),
                      false));
      inputLocalFileMenuItem
              .addActionListener(new java.awt.event.ActionListener()
        }
      });
  
 +    Float specversion = Float.parseFloat(System.getProperty("java.specification.version"));
 +    
      desktopMenubar.add(FileMenu);
      desktopMenubar.add(toolsMenu);
      VamsasMenu.setVisible(false);
      FileMenu.add(inputMenu);
      FileMenu.add(inputSequence);
      FileMenu.addSeparator();
-     FileMenu.add(saveState);
+     //FileMenu.add(saveState);
      FileMenu.add(saveAsState);
      FileMenu.add(loadState);
      FileMenu.addSeparator();
      VamsasMenu.add(vamsasImport);
      VamsasMenu.add(vamsasSave);
      VamsasMenu.add(vamsasStop);
 -    toolsMenu.add(preferences);
 +    if (!Platform.isAMac() || specversion < 11)
 +    {
 +      toolsMenu.add(preferences);
 +    }
      toolsMenu.add(showMemusage);
      toolsMenu.add(showConsole);
      toolsMenu.add(showNews);
     */
    protected void quit()
    {
 +    //System.out.println("********** GDesktop.quit()");
    }
  
    /**