JAL-1953 2.11.2 with Archeopteryx!
[jalview.git] / src / jalview / gui / VamsasApplication.java
index 6003416..dabec6d 100644 (file)
@@ -21,6 +21,7 @@
 package jalview.gui;
 
 import jalview.bin.Cache;
+import jalview.bin.Console;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.HiddenColumns;
@@ -201,8 +202,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
 
     } catch (Exception e)
     {
-      jalview.bin.Cache.log.error("Couldn't instantiate vamsas client !",
-              e);
+      Console.error("Couldn't instantiate vamsas client !", e);
       return false;
     }
     return true;
@@ -225,12 +225,12 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       }
     } catch (Error e)
     {
-      Cache.log.warn(
+      Console.warn(
               "Probable SERIOUS VAMSAS client incompatibility - carrying on regardless",
               e);
     } catch (Exception e)
     {
-      Cache.log.warn(
+      Console.warn(
               "Probable VAMSAS client incompatibility - carrying on regardless",
               e);
     }
@@ -244,7 +244,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
   private ClientHandle getJalviewHandle()
   {
     return new ClientHandle("jalview.bin.Jalview",
-            jalview.bin.Cache.getProperty("VERSION"));
+            Cache.getProperty("VERSION"));
   }
 
   /**
@@ -264,19 +264,18 @@ public class VamsasApplication implements SelectionSource, VamsasSource
   {
     if (!inSession())
     {
-      throw new Error(MessageManager.getString(
-              "error.implementation_error_vamsas_operation_not_init"));
+      throw new Error(
+              "Implementation error! Vamsas Operations when client not initialised and connected");
     }
     addDocumentUpdateHandler();
     addStoreDocumentHandler();
     startSession();
     inInitialUpdate = true;
-    Cache.log.debug(
-            "Jalview loading the Vamsas Session for the first time.");
+    Console.debug("Jalview loading the Vamsas Session for the first time.");
     dealWithDocumentUpdate(false); // we don't push an update out to the
     inInitialUpdate = false;
     // document yet.
-    Cache.log.debug("... finished update for the first time.");
+    Console.debug("... finished update for the first time.");
   }
 
   /**
@@ -306,7 +305,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       }
     } catch (Exception e)
     {
-      Cache.log.warn(
+      Console.warn(
               "Exception whilst refreshing jalview windows after a vamsas document update.",
               e);
     }
@@ -320,10 +319,10 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       @Override
       public void run()
       {
-        Cache.log.info("Jalview updating to the Vamsas Session.");
+        Console.info("Jalview updating to the Vamsas Session.");
 
         dealWithDocumentUpdate(true);
-        Cache.log.info("Jalview finished updating to the Vamsas Session.");
+        Console.info("Jalview finished updating to the Vamsas Session.");
       }
 
     }, "UpdateVamsas");
@@ -351,10 +350,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
   {
     if (!inSession())
     {
-      throw new Error(MessageManager
-              .getString("error.jalview_no_connected_vamsas_session"));
+      throw new Error("Jalview not connected to Vamsas session");
     }
-    Cache.log.info("Jalview disconnecting from the Vamsas Session.");
+    Console.info("Jalview disconnecting from the Vamsas Session.");
     try
     {
       if (joinedSession)
@@ -362,12 +360,12 @@ public class VamsasApplication implements SelectionSource, VamsasSource
         boolean ourprompt = this.promptUser;
         this.promptUser = promptUser;
         vclient.finalizeClient();
-        Cache.log.info("Jalview has left the session.");
+        Console.info("Jalview has left the session.");
         this.promptUser = ourprompt; // restore default value
       }
       else
       {
-        Cache.log.warn(
+        Console.warn(
                 "JV Client leaving a session that's its not joined yet.");
       }
       joinedSession = false;
@@ -378,13 +376,13 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       vobj2jv = null;
     } catch (Exception e)
     {
-      Cache.log.error("Vamsas Session finalization threw exceptions!", e);
+      Console.error("Vamsas Session finalization threw exceptions!", e);
     }
   }
 
   public void updateJalview(IClientDocument cdoc)
   {
-    Cache.log.debug("Jalview updating from sesion document ..");
+    Console.debug("Jalview updating from sesion document ..");
     ensureJvVamsas();
     VamsasAppDatastore vds = new VamsasAppDatastore(cdoc, vobj2jv, jv2vobj,
             baseProvEntry(), alRedoState);
@@ -393,7 +391,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       vds.updateToJalview();
     } catch (Exception e)
     {
-      Cache.log.error("Failed to update Jalview from vamsas document.", e);
+      Console.error("Failed to update Jalview from vamsas document.", e);
     }
     try
     {
@@ -405,10 +403,10 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       }
     } catch (Exception e)
     {
-      Cache.log.error(
+      Console.error(
               "Exception when updating Jalview settings from Appdata.", e);
     }
-    Cache.log.debug(".. finished updating from sesion document.");
+    Console.debug(".. finished updating from sesion document.");
 
   }
 
@@ -482,10 +480,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
             } catch (Exception e)
             {
               errorsDuringUpdate = true;
-              Cache.log.error("Exception synchronizing " + af.getTitle()
-                      + " "
-                      + (af.getViewport().viewName == null ? ""
-                              : " view " + af.getViewport().viewName)
+              Console.error("Exception synchronizing " + af.getTitle() + " "
+                      + (af.getViewport().getViewName() == null ? ""
+                              : " view " + af.getViewport().getViewName())
                       + " to document.", e);
               stored = false;
             }
@@ -520,7 +517,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       }
     } catch (Exception e)
     {
-      Cache.log.error("Exception synchronizing Views to Document :", e);
+      Console.error("Exception synchronizing Views to Document :", e);
       errorsDuringUpdate = true;
     }
 
@@ -537,7 +534,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       }
     } catch (Exception e)
     {
-      Cache.log.error("Client Appdata Write exception", e);
+      Console.error("Client Appdata Write exception", e);
       errorsDuringAppUpdate = true;
     }
     vds.clearSkipList();
@@ -565,32 +562,32 @@ public class VamsasApplication implements SelectionSource, VamsasSource
   {
     int storedviews = 0;
     // called by update handler for document update.
-    Cache.log.debug("Updating jalview from changed vamsas document.");
+    Console.debug("Updating jalview from changed vamsas document.");
     disableGui(true);
     try
     {
       long time = System.currentTimeMillis();
       IClientDocument cdoc = vclient.getClientDocument();
-      if (Cache.log.isDebugEnabled())
+      if (Console.isDebugEnabled())
       {
-        Cache.log.debug("Time taken to get ClientDocument = "
+        Console.debug("Time taken to get ClientDocument = "
                 + (System.currentTimeMillis() - time));
         time = System.currentTimeMillis();
       }
       if (fromJalview)
       {
         storedviews += updateVamsasDocument(cdoc);
-        if (Cache.log.isDebugEnabled())
+        if (Console.isDebugEnabled())
         {
-          Cache.log.debug(
+          Console.debug(
                   "Time taken to update Vamsas Document from jalview\t= "
                           + (System.currentTimeMillis() - time));
           time = System.currentTimeMillis();
         }
         cdoc.setVamsasRoots(cdoc.getVamsasRoots());
-        if (Cache.log.isDebugEnabled())
+        if (Console.isDebugEnabled())
         {
-          Cache.log.debug("Time taken to set Document Roots\t\t= "
+          Console.debug("Time taken to set Document Roots\t\t= "
                   + (System.currentTimeMillis() - time));
           time = System.currentTimeMillis();
         }
@@ -598,9 +595,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       else
       {
         updateJalview(cdoc);
-        if (Cache.log.isDebugEnabled())
+        if (Console.isDebugEnabled())
         {
-          Cache.log.debug(
+          Console.debug(
                   "Time taken to update Jalview from vamsas document Roots\t= "
                           + (System.currentTimeMillis() - time));
           time = System.currentTimeMillis();
@@ -608,9 +605,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource
 
       }
       vclient.updateDocument(cdoc);
-      if (Cache.log.isDebugEnabled())
+      if (Console.isDebugEnabled())
       {
-        Cache.log.debug("Time taken to update Session Document\t= "
+        Console.debug("Time taken to update Session Document\t= "
                 + (System.currentTimeMillis() - time));
         time = System.currentTimeMillis();
       }
@@ -624,7 +621,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       recover_objectMappingBackup();
       storedviews = 0;
     }
-    Cache.log.debug("Finished updating from document change.");
+    Console.debug("Finished updating from document change.");
     disableGui(false);
     return storedviews;
   }
@@ -637,12 +634,12 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       @Override
       public void propertyChange(PropertyChangeEvent evt)
       {
-        Cache.log.debug("Dealing with document update event.");
+        Console.debug("Dealing with document update event.");
         client.dealWithDocumentUpdate(false);
-        Cache.log.debug("finished dealing with event.");
+        Console.debug("finished dealing with event.");
       }
     });
-    Cache.log.debug("Added Jalview handler for vamsas document updates.");
+    Console.debug("Added Jalview handler for vamsas document updates.");
   }
 
   private void addStoreDocumentHandler()
@@ -657,7 +654,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
               {
                 if (client.promptUser)
                 {
-                  Cache.log.debug(
+                  Console.debug(
                           "Asking user if the vamsas session should be stored.");
                   int reply = JvOptionPane.showInternalConfirmDialog(
                           Desktop.desktop,
@@ -668,27 +665,27 @@ public class VamsasApplication implements SelectionSource, VamsasSource
 
                   if (reply == JvOptionPane.YES_OPTION)
                   {
-                    Cache.log.debug("Prompting for vamsas store filename.");
+                    Console.debug("Prompting for vamsas store filename.");
                     Desktop.instance.vamsasSave_actionPerformed(null);
-                    Cache.log
-                            .debug("Finished attempt at storing document.");
+                    Console.debug("Finished attempt at storing document.");
                   }
-                  Cache.log.debug(
+                  Console.debug(
                           "finished dealing with REQUESTTOCLOSE event.");
                 }
                 else
                 {
-                  Cache.log.debug(
+                  Console.debug(
                           "Ignoring store document request (promptUser==false)");
                 }
               }
             });
-    Cache.log.debug("Added Jalview handler for vamsas document updates.");
+    Console.debug("Added Jalview handler for vamsas document updates.");
   }
 
   public void disableGui(boolean b)
   {
-    Desktop.instance.setVamsasUpdate(b);
+    // JAL-3311 TODO: remove this class!
+    // Desktop.instance.setVamsasUpdate(b);
   }
 
   Hashtable _backup_vobj2jv;
@@ -721,8 +718,8 @@ public class VamsasApplication implements SelectionSource, VamsasSource
         return;
       }
 
-      throw new Error(MessageManager.getString(
-              "error.implementation_error_cannot_recover_vamsas_object_mappings"));
+      throw new Error(
+              "IMPLEMENTATION ERROR: Cannot recover vamsas object mappings - no backup was made");
     }
     jv2vobj.clear();
     Iterator el = _backup_jv2vobj.entrySet().iterator();
@@ -756,7 +753,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
       } catch (Exception e)
       {
         // Complain to GUI
-        Cache.log.error("Failed to join vamsas session.", e);
+        Console.error("Failed to join vamsas session.", e);
         vclient = null;
       }
       try
@@ -785,16 +782,16 @@ public class VamsasApplication implements SelectionSource, VamsasSource
               {
                 return;
               }
-              // if (Cache.log.isDebugEnabled())
+              // if (Cache.isDebugEnabled())
               // {
-              // Cache.log.debug("Received MouseOverMessage "+mm.getVorbaID()+"
+              // Cache.debug("Received MouseOverMessage "+mm.getVorbaID()+"
               // "+mm.getPosition());
               // }
               Object jvobj = vobj2jv.get(mm.getVorbaID());
               if (jvobj != null && jvobj instanceof SequenceI)
               {
                 last = mstring;
-                // Cache.log.debug("Handling Mouse over "+mm.getVorbaID()+"
+                // Cache.debug("Handling Mouse over "+mm.getVorbaID()+"
                 // bound to "+jvobj+" at "+mm.getPosition());
                 // position is character position in aligned sequence
                 ssm.mouseOverVamsasSequence((SequenceI) jvobj,
@@ -980,7 +977,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
               if (v != null)
               {
                 // this should really be a trace message.
-                // Cache.log.debug("Mouse over " + v.getId() + " bound to "
+                // Cache.debug("Mouse over " + v.getId() + " bound to "
                 // + seq + " at " + index);
                 last = seq;
                 i = index;
@@ -1001,7 +998,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
           {
             if (vobj2jv == null)
             {
-              Cache.log.warn(
+              Console.warn(
                       "Selection listener still active for dead session.");
               // not in a session.
               return;
@@ -1074,16 +1071,16 @@ public class VamsasApplication implements SelectionSource, VamsasSource
                   }
                   else
                   {
-                    // 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)
+                    Iterator<int[]> intervals = hidden
+                            .getVisContigsIterator(seqsel.getStartRes(),
+                                    seqsel.getEndRes() + 1, false);
+                    while (intervals.hasNext())
                     {
+                      int[] region = intervals.next();
                       Seg s = new Seg();
-                      s.setStart(intervals[iv] + 1); // vamsas indices begin at
-                      // 1, not zero.
-                      s.setEnd(intervals[iv + 1] + 1);
+                      s.setStart(region[0] + 1); // vamsas indices begin at 1,
+                                                 // not zero.
+                      s.setEnd(region[1] + 1);
                       s.setInclusive(true);
                       range.addSeg(s);
                     }
@@ -1101,7 +1098,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
               if (sm != null)
               {
                 sm.validate(); // debug
-                Cache.log.debug("Selection Message\n" + sm.getRawMessage());
+                Console.debug("Selection Message\n" + sm.getRawMessage());
                 pm.sendMessage(sm);
               }
             }
@@ -1112,7 +1109,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource
         ssm.addSelectionListener(selecter);
       } catch (Exception e)
       {
-        Cache.log.error("Failed to init Vamsas Picking", e);
+        Console.error("Failed to init Vamsas Picking", e);
       }
     }
   }