JAL-2282 Changed DB accession id token to $DB_ACCESSION$; updated
[jalview.git] / src / jalview / gui / Desktop.java
index 7e442fa..b1b913b 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -82,9 +82,12 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Semaphore;
 
 import javax.swing.AbstractAction;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
 import javax.swing.DefaultDesktopManager;
 import javax.swing.DesktopManager;
 import javax.swing.JButton;
+import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
 import javax.swing.JComponent;
 import javax.swing.JDesktopPane;
@@ -382,6 +385,8 @@ public class Desktop extends jalview.jbgui.GDesktop implements
 
     showNews.setVisible(false);
 
+    checkURLLinks();
+
     this.addWindowListener(new WindowAdapter()
     {
       @Override
@@ -941,6 +946,9 @@ public class Desktop extends jalview.jbgui.GDesktop implements
   public void drop(DropTargetDropEvent evt)
   {
     boolean success = true;
+    // JAL-1552 - acceptDrop required before getTransferable call for
+    // Java's Transferable for native dnd
+    evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
     Transferable t = evt.getTransferable();
     java.util.List<String> files = new ArrayList<String>();
     java.util.List<String> protocols = new ArrayList<String>();
@@ -2253,6 +2261,55 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     new Thread(jvq).start();
   }
 
+  public void checkURLLinks()
+  {
+    // Thread off the URL link checker
+    addDialogThread(new Runnable()
+    {
+      @Override
+      public void run()
+      {
+        if (Cache.getDefault("CHECKURLLINKS", true))
+        {
+          // check in case URL links use old style tokens ($SEQUENCE_ID$ for
+          // sequence id _or_ accession id)
+          JPanel msgPanel = new JPanel();
+          msgPanel.setLayout(new BoxLayout(msgPanel, BoxLayout.PAGE_AXIS));
+          msgPanel.add(Box.createVerticalGlue());
+          JLabel msg = new JLabel(
+                  MessageManager
+                          .getString("label.SEQUENCE_ID_for_DB_ACCESSION1"));
+          JLabel msg2 = new JLabel(
+                  MessageManager
+                          .getString("label.SEQUENCE_ID_for_DB_ACCESSION2"));
+          msgPanel.add(msg);
+          msgPanel.add(msg2);
+
+          final JCheckBox jcb = new JCheckBox(
+                  MessageManager.getString("label.do_not_display_again"));
+          jcb.addActionListener(new ActionListener()
+          {
+
+            @Override
+            public void actionPerformed(ActionEvent e)
+            {
+              // update Cache settings if checkbox is selected
+              if (jcb.isSelected())
+              {
+                Cache.setProperty("CHECKURLLINKS", "false");
+              }
+            }
+          });
+          msgPanel.add(jcb);
+
+          JOptionPane.showMessageDialog(null, msgPanel, MessageManager
+                  .getString("label.SEQUENCE_ID_no_longer_used"),
+                  JOptionPane.WARNING_MESSAGE);
+        }
+      }
+    });
+    }
+
   /**
    * Proxy class for JDesktopPane which optionally displays the current memory
    * usage and highlights the desktop area with a red bar if free memory runs
@@ -3180,7 +3237,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     {
       // Works on Windows and MacOSX
       Cache.log.debug("Drop handled as javaFileListFlavor");
-      evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
       for (Object file : (List) t
               .getTransferData(DataFlavor.javaFileListFlavor))
       {
@@ -3197,7 +3253,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
       {
         Cache.log.debug("Drop handled as uriListFlavor");
         // This is used by Unix drag system
-        evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
         data = (String) t.getTransferData(uriListFlavor);
       }
       if (data == null)
@@ -3252,7 +3307,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
           {
             Cache.log.debug("Supported transfer dataflavor: "
                     + fl.toString());
-            evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
             Object df = t.getTransferData(fl);
             if (df != null)
             {