X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FVamsasApplication.java;h=7881ec9d1af7aca6dd9172bf01d7da1b241b341a;hb=a1984b1c8c273ed33c7ce9283039f4027dcae2de;hp=afb6df4a2aa23a6490cb08d56a497bdbb162333e;hpb=c73c8c28e34bdcac21e89aa89b69e85dad9e0189;p=jalview.git diff --git a/src/jalview/gui/VamsasApplication.java b/src/jalview/gui/VamsasApplication.java index afb6df4..7881ec9 100644 --- a/src/jalview/gui/VamsasApplication.java +++ b/src/jalview/gui/VamsasApplication.java @@ -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; @@ -43,7 +44,6 @@ 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,9 +156,8 @@ 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 { @@ -174,15 +173,13 @@ public class VamsasApplication implements SelectionSource, VamsasSource } } catch (InvalidSessionDocumentException e) { - JOptionPane - .showInternalMessageDialog( - Desktop.desktop, + 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); } } @@ -204,8 +201,8 @@ public class VamsasApplication implements SelectionSource, VamsasSource } catch (Exception e) { - jalview.bin.Cache.log - .error("Couldn't instantiate vamsas client !", e); + Cache.error("Couldn't instantiate vamsas client !", + e); return false; } return true; @@ -228,14 +225,14 @@ public class VamsasApplication implements SelectionSource, VamsasSource } } catch (Error e) { - Cache.log - .warn("Probable SERIOUS VAMSAS client incompatibility - carrying on regardless", - e); + Cache.warn( + "Probable SERIOUS VAMSAS client incompatibility - carrying on regardless", + e); } catch (Exception e) { - Cache.log - .warn("Probable VAMSAS client incompatibility - carrying on regardless", - e); + Cache.warn( + "Probable VAMSAS client incompatibility - carrying on regardless", + e); } } @@ -247,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")); } /** @@ -268,19 +265,18 @@ public class VamsasApplication implements SelectionSource, VamsasSource if (!inSession()) { throw new Error( - MessageManager - .getString("error.implementation_error_vamsas_operation_not_init")); + "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."); + Cache.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."); + Cache.debug("... finished update for the first time."); } /** @@ -310,9 +306,9 @@ public class VamsasApplication implements SelectionSource, VamsasSource } } catch (Exception e) { - Cache.log - .warn("Exception whilst refreshing jalview windows after a vamsas document update.", - e); + Cache.warn( + "Exception whilst refreshing jalview windows after a vamsas document update.", + e); } } @@ -324,10 +320,10 @@ public class VamsasApplication implements SelectionSource, VamsasSource @Override public void run() { - Cache.log.info("Jalview updating to the Vamsas Session."); + Cache.info("Jalview updating to the Vamsas Session."); dealWithDocumentUpdate(true); - Cache.log.info("Jalview finished updating to the Vamsas Session."); + Cache.info("Jalview finished updating to the Vamsas Session."); } }); @@ -355,11 +351,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."); + Cache.info("Jalview disconnecting from the Vamsas Session."); try { if (joinedSession) @@ -367,13 +361,13 @@ public class VamsasApplication implements SelectionSource, VamsasSource boolean ourprompt = this.promptUser; this.promptUser = promptUser; vclient.finalizeClient(); - Cache.log.info("Jalview has left the session."); + Cache.info("Jalview has left the session."); this.promptUser = ourprompt; // restore default value } else { - Cache.log - .warn("JV Client leaving a session that's its not joined yet."); + Cache.warn( + "JV Client leaving a session that's its not joined yet."); } joinedSession = false; vclient = null; @@ -383,13 +377,13 @@ public class VamsasApplication implements SelectionSource, VamsasSource vobj2jv = null; } catch (Exception e) { - Cache.log.error("Vamsas Session finalization threw exceptions!", e); + Cache.error("Vamsas Session finalization threw exceptions!", e); } } public void updateJalview(IClientDocument cdoc) { - Cache.log.debug("Jalview updating from sesion document .."); + Cache.debug("Jalview updating from sesion document .."); ensureJvVamsas(); VamsasAppDatastore vds = new VamsasAppDatastore(cdoc, vobj2jv, jv2vobj, baseProvEntry(), alRedoState); @@ -398,7 +392,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource vds.updateToJalview(); } catch (Exception e) { - Cache.log.error("Failed to update Jalview from vamsas document.", e); + Cache.error("Failed to update Jalview from vamsas document.", e); } try { @@ -410,10 +404,10 @@ public class VamsasApplication implements SelectionSource, VamsasSource } } catch (Exception e) { - Cache.log.error( + Cache.error( "Exception when updating Jalview settings from Appdata.", e); } - Cache.log.debug(".. finished updating from sesion document."); + Cache.debug(".. finished updating from sesion document."); } @@ -487,11 +481,10 @@ public class VamsasApplication implements SelectionSource, VamsasSource } catch (Exception e) { errorsDuringUpdate = true; - Cache.log.error("Exception synchronizing " - + af.getTitle() + Cache.error("Exception synchronizing " + af.getTitle() + " " - + (af.getViewport().viewName == null ? "" : " view " - + af.getViewport().viewName) + + (af.getViewport().getViewName() == null ? "" + : " view " + af.getViewport().getViewName()) + " to document.", e); stored = false; } @@ -526,7 +519,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource } } catch (Exception e) { - Cache.log.error("Exception synchronizing Views to Document :", e); + Cache.error("Exception synchronizing Views to Document :", e); errorsDuringUpdate = true; } @@ -543,7 +536,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource } } catch (Exception e) { - Cache.log.error("Client Appdata Write exception", e); + Cache.error("Client Appdata Write exception", e); errorsDuringAppUpdate = true; } vds.clearSkipList(); @@ -571,32 +564,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."); + Cache.debug("Updating jalview from changed vamsas document."); disableGui(true); try { long time = System.currentTimeMillis(); IClientDocument cdoc = vclient.getClientDocument(); - if (Cache.log.isDebugEnabled()) + if (Cache.isDebugEnabled()) { - Cache.log.debug("Time taken to get ClientDocument = " + Cache.debug("Time taken to get ClientDocument = " + (System.currentTimeMillis() - time)); time = System.currentTimeMillis(); } if (fromJalview) { storedviews += updateVamsasDocument(cdoc); - if (Cache.log.isDebugEnabled()) + if (Cache.isDebugEnabled()) { - Cache.log - .debug("Time taken to update Vamsas Document from jalview\t= " + Cache.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 (Cache.isDebugEnabled()) { - Cache.log.debug("Time taken to set Document Roots\t\t= " + Cache.debug("Time taken to set Document Roots\t\t= " + (System.currentTimeMillis() - time)); time = System.currentTimeMillis(); } @@ -604,19 +597,19 @@ public class VamsasApplication implements SelectionSource, VamsasSource else { updateJalview(cdoc); - if (Cache.log.isDebugEnabled()) + if (Cache.isDebugEnabled()) { - Cache.log - .debug("Time taken to update Jalview from vamsas document Roots\t= " + Cache.debug( + "Time taken to update Jalview from vamsas document Roots\t= " + (System.currentTimeMillis() - time)); time = System.currentTimeMillis(); } } vclient.updateDocument(cdoc); - if (Cache.log.isDebugEnabled()) + if (Cache.isDebugEnabled()) { - Cache.log.debug("Time taken to update Session Document\t= " + Cache.debug("Time taken to update Session Document\t= " + (System.currentTimeMillis() - time)); time = System.currentTimeMillis(); } @@ -630,7 +623,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource recover_objectMappingBackup(); storedviews = 0; } - Cache.log.debug("Finished updating from document change."); + Cache.debug("Finished updating from document change."); disableGui(false); return storedviews; } @@ -643,12 +636,12 @@ public class VamsasApplication implements SelectionSource, VamsasSource @Override public void propertyChange(PropertyChangeEvent evt) { - Cache.log.debug("Dealing with document update event."); + Cache.debug("Dealing with document update event."); client.dealWithDocumentUpdate(false); - Cache.log.debug("finished dealing with event."); + Cache.debug("finished dealing with event."); } }); - Cache.log.debug("Added Jalview handler for vamsas document updates."); + Cache.debug("Added Jalview handler for vamsas document updates."); } private void addStoreDocumentHandler() @@ -663,39 +656,38 @@ public class VamsasApplication implements SelectionSource, VamsasSource { if (client.promptUser) { - Cache.log - .debug("Asking user if the vamsas session should be stored."); - int reply = JOptionPane - .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); - - if (reply == JOptionPane.YES_OPTION) + Cache.debug( + "Asking user if the vamsas session should be stored."); + int reply = JvOptionPane.showInternalConfirmDialog( + Desktop.desktop, + "The current VAMSAS session has unsaved data - do you want to save it ?", + "VAMSAS Session Shutdown", + JvOptionPane.YES_NO_OPTION, + JvOptionPane.QUESTION_MESSAGE); + + if (reply == JvOptionPane.YES_OPTION) { - Cache.log.debug("Prompting for vamsas store filename."); + Cache.debug("Prompting for vamsas store filename."); Desktop.instance.vamsasSave_actionPerformed(null); - Cache.log - .debug("Finished attempt at storing document."); + Cache.debug("Finished attempt at storing document."); } - Cache.log - .debug("finished dealing with REQUESTTOCLOSE event."); + Cache.debug( + "finished dealing with REQUESTTOCLOSE event."); } else { - Cache.log - .debug("Ignoring store document request (promptUser==false)"); + Cache.debug( + "Ignoring store document request (promptUser==false)"); } } }); - Cache.log.debug("Added Jalview handler for vamsas document updates."); + Cache.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; @@ -729,8 +721,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource } throw new Error( - MessageManager - .getString("error.implementation_error_cannot_recover_vamsas_object_mappings")); + "IMPLEMENTATION ERROR: Cannot recover vamsas object mappings - no backup was made"); } jv2vobj.clear(); Iterator el = _backup_jv2vobj.entrySet().iterator(); @@ -764,7 +755,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource } catch (Exception e) { // Complain to GUI - Cache.log.error("Failed to join vamsas session.", e); + Cache.error("Failed to join vamsas session.", e); vclient = null; } try @@ -793,16 +784,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, @@ -821,7 +812,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; @@ -937,8 +928,8 @@ public class VamsasApplication implements SelectionSource, VamsasSource { jselection.setStartRes(prange[p + l] - 1); } - if (jselection.getEndRes() <= maxWidth - && prange[p + u] == (jselection.getEndRes() + 2)) + if (jselection.getEndRes() <= maxWidth && prange[p + + u] == (jselection.getEndRes() + 2)) { jselection.setEndRes(prange[p + u] - 1); } @@ -955,7 +946,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++) @@ -988,7 +979,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; @@ -1004,12 +995,13 @@ public class VamsasApplication implements SelectionSource, VamsasSource @Override public void selection(SequenceGroup seqsel, - ColumnSelection colsel, SelectionSource source) + ColumnSelection colsel, HiddenColumns hidden, + SelectionSource source) { if (vobj2jv == null) { - Cache.log - .warn("Selection listener still active for dead session."); + Cache.warn( + "Selection listener still active for dead session."); // not in a session. return; } @@ -1022,15 +1014,17 @@ public class VamsasApplication implements SelectionSource, VamsasSource } SelectionMessage sm = null; if ((seqsel == null || seqsel.getSize() == 0) - && (colsel == null || colsel.getSelected() == null || colsel - .getSelected().size() == 0)) + && (colsel == null || colsel.getSelected() == null + || colsel.getSelected().size() == 0)) { if (source instanceof AlignViewport) { // the empty selection. sm = new SelectionMessage("jalview", - new String[] { ((AlignmentViewport) source) - .getSequenceSetId() }, null, true); + new String[] + { ((AlignmentViewport) source) + .getSequenceSetId() }, + null, true); } else { @@ -1079,14 +1073,16 @@ public class VamsasApplication implements SelectionSource, VamsasSource } else { - int[] intervals = colsel.getVisibleContigs( - seqsel.getStartRes(), seqsel.getEndRes() + 1); - for (int iv = 0; iv < intervals.length; iv += 2) + Iterator 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); } @@ -1104,7 +1100,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource if (sm != null) { sm.validate(); // debug - Cache.log.debug("Selection Message\n" + sm.getRawMessage()); + Cache.debug("Selection Message\n" + sm.getRawMessage()); pm.sendMessage(sm); } } @@ -1115,7 +1111,7 @@ public class VamsasApplication implements SelectionSource, VamsasSource ssm.addSelectionListener(selecter); } catch (Exception e) { - Cache.log.error("Failed to init Vamsas Picking", e); + Cache.error("Failed to init Vamsas Picking", e); } } }