JAL-2446 merged to spike branch
[jalview.git] / src / jalview / gui / VamsasApplication.java
index 3671b39..d58cb5a 100644 (file)
@@ -23,6 +23,7 @@ package jalview.gui;
 import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.io.VamsasAppDatastore;
@@ -32,18 +33,17 @@ import jalview.structure.StructureSelectionManager;
 import jalview.structure.VamsasListener;
 import jalview.structure.VamsasSource;
 import jalview.util.MessageManager;
+import jalview.viewmodel.AlignmentViewport;
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.io.IOException;
-import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.IdentityHashMap;
 import java.util.Iterator;
 
 import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
 
 import uk.ac.vamsas.client.ClientHandle;
 import uk.ac.vamsas.client.IClient;
@@ -156,7 +156,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       {
         if (sess != null)
         {
-          throw new Error(MessageManager.getString("error.implementation_error_cannot_import_vamsas_doc"));
+          throw new Error(
+                  MessageManager
+                          .getString("error.implementation_error_cannot_import_vamsas_doc"));
         }
         try
         {
@@ -172,13 +174,15 @@ public class VamsasApplication implements SelectionSource, VamsasSource
           }
         } catch (InvalidSessionDocumentException e)
         {
-          JOptionPane
+          JvOptionPane
                   .showInternalMessageDialog(
                           Desktop.desktop,
 
-                          MessageManager.getString("label.vamsas_doc_couldnt_be_opened_as_new_session"),
-                          MessageManager.getString("label.vamsas_document_import_failed"),
-                          JOptionPane.ERROR_MESSAGE);
+                          MessageManager
+                                  .getString("label.vamsas_doc_couldnt_be_opened_as_new_session"),
+                          MessageManager
+                                  .getString("label.vamsas_document_import_failed"),
+                          JvOptionPane.ERROR_MESSAGE);
 
         }
       }
@@ -263,7 +267,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
   {
     if (!inSession())
     {
-      throw new Error(MessageManager.getString("error.implementation_error_vamsas_operation_not_init"));
+      throw new Error(
+              MessageManager
+                      .getString("error.implementation_error_vamsas_operation_not_init"));
     }
     addDocumentUpdateHandler();
     addStoreDocumentHandler();
@@ -315,6 +321,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
     Thread udthread = new Thread(new Runnable()
     {
 
+      @Override
       public void run()
       {
         Cache.log.info("Jalview updating to the Vamsas Session.");
@@ -347,7 +354,11 @@ public class VamsasApplication implements SelectionSource, VamsasSource
   public void end_session(boolean promptUser)
   {
     if (!inSession())
-      throw new Error(MessageManager.getString("error.jalview_no_connected_vamsas_session"));
+    {
+      throw new Error(
+              MessageManager
+                      .getString("error.jalview_no_connected_vamsas_session"));
+    }
     Cache.log.info("Jalview disconnecting from the Vamsas Session.");
     try
     {
@@ -629,6 +640,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
     final VamsasApplication client = this;
     vclient.addDocumentUpdateHandler(new PropertyChangeListener()
     {
+      @Override
       public void propertyChange(PropertyChangeEvent evt)
       {
         Cache.log.debug("Dealing with document update event.");
@@ -646,21 +658,22 @@ public class VamsasApplication implements SelectionSource, VamsasSource
             uk.ac.vamsas.client.Events.DOCUMENT_REQUESTTOCLOSE,
             new PropertyChangeListener()
             {
+              @Override
               public void propertyChange(PropertyChangeEvent evt)
               {
                 if (client.promptUser)
                 {
                   Cache.log
                           .debug("Asking user if the vamsas session should be stored.");
-                  int reply = JOptionPane
+                  int reply = JvOptionPane
                           .showInternalConfirmDialog(
                                   Desktop.desktop,
                                   "The current VAMSAS session has unsaved data - do you want to save it ?",
                                   "VAMSAS Session Shutdown",
-                                  JOptionPane.YES_NO_OPTION,
-                                  JOptionPane.QUESTION_MESSAGE);
+                                  JvOptionPane.YES_NO_OPTION,
+                                  JvOptionPane.QUESTION_MESSAGE);
 
-                  if (reply == JOptionPane.YES_OPTION)
+                  if (reply == JvOptionPane.YES_OPTION)
                   {
                     Cache.log.debug("Prompting for vamsas store filename.");
                     Desktop.instance.vamsasSave_actionPerformed(null);
@@ -715,7 +728,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
         return;
       }
 
-      throw new Error(MessageManager.getString("error.implementation_error_cannot_recover_vamsas_object_mappings"));
+      throw new Error(
+              MessageManager
+                      .getString("error.implementation_error_cannot_recover_vamsas_object_mappings"));
     }
     jv2vobj.clear();
     Iterator el = _backup_jv2vobj.entrySet().iterator();
@@ -762,6 +777,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
         {
           String last = null;
 
+          @Override
           public void handleMessage(Message message)
           {
             if (vobj2jv == null)
@@ -805,7 +821,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
               {
                 // TODO: rationalise : can only clear a selection over a
                 // referred to object
-                ssm.sendSelection(null, null, me);
+                ssm.sendSelection(null, null, null, me);
                 return;
               }
               Class type = null;
@@ -939,7 +955,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
               }
               if (send)
               {
-                ssm.sendSelection(jselection, colsel, me);
+                ssm.sendSelection(jselection, colsel, null, me);
               }
               // discard message.
               for (int c = 0; c < jvobjs.length; c++)
@@ -958,11 +974,14 @@ public class VamsasApplication implements SelectionSource, VamsasSource
 
           int i = -1;
 
-          public void mouseOver(SequenceI seq, int index,
+          @Override
+          public void mouseOverSequence(SequenceI seq, int index,
                   VamsasSource source)
           {
             if (jv2vobj == null)
+            {
               return;
+            }
             if (seq != last || i != index)
             {
               VorbaId v = (VorbaId) jv2vobj.get(seq);
@@ -983,8 +1002,10 @@ public class VamsasApplication implements SelectionSource, VamsasSource
         selecter = new SelectionListener()
         {
 
+          @Override
           public void selection(SequenceGroup seqsel,
-                  ColumnSelection colsel, SelectionSource source)
+                  ColumnSelection colsel, HiddenColumns hidden,
+                  SelectionSource source)
           {
             if (vobj2jv == null)
             {
@@ -998,7 +1019,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
               AlignmentI visal = null;
               if (source instanceof AlignViewport)
               {
-                visal = ((AlignViewport) source).getAlignment();
+                visal = ((AlignmentViewport) source).getAlignment();
               }
               SelectionMessage sm = null;
               if ((seqsel == null || seqsel.getSize() == 0)
@@ -1008,9 +1029,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
                 if (source instanceof AlignViewport)
                 {
                   // the empty selection.
-                  sm = new SelectionMessage("jalview", new String[]
-                  { ((AlignViewport) source).getSequenceSetId() }, null,
-                          true);
+                  sm = new SelectionMessage("jalview",
+                          new String[] { ((AlignmentViewport) source)
+                                  .getSequenceSetId() }, null, true);
                 }
                 else
                 {
@@ -1050,18 +1071,18 @@ public class VamsasApplication implements SelectionSource, VamsasSource
                   {
                     // gather selected columns outwith the sequence positions
                     // too
-                    Enumeration cols = colsel.getSelected().elements();
-                    while (cols.hasMoreElements())
+                    for (Integer ival : colsel.getSelected())
                     {
-                      int ival = ((Integer) cols.nextElement()).intValue();
                       Pos p = new Pos();
-                      p.setI(ival + 1);
+                      p.setI(ival.intValue() + 1);
                       range.addPos(p);
                     }
                   }
                   else
                   {
-                    int[] intervals = colsel.getVisibleContigs(
+                    // int[] intervals = colsel.getVisibleContigs(
+                    // seqsel.getStartRes(), seqsel.getEndRes() + 1);
+                    int[] intervals = hidden.getVisibleContigs(
                             seqsel.getStartRes(), seqsel.getEndRes() + 1);
                     for (int iv = 0; iv < intervals.length; iv += 2)
                     {