From f5a779f10f361429eb273c55d66064a8cb1bf4e2 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Fri, 27 Oct 2006 16:17:24 +0000 Subject: [PATCH] PaintRefresher can calculate seqs added or removed --- src/jalview/gui/AlignFrame.java | 170 +++++++++------------------------- src/jalview/gui/AlignmentPanel.java | 31 ++++++- src/jalview/gui/PaintRefresher.java | 97 ++++++++++++++++--- src/jalview/gui/RedundancyPanel.java | 3 +- src/jalview/gui/VamsasClient.java | 44 ++++----- 5 files changed, 179 insertions(+), 166 deletions(-) diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 284989d..2b4b7e0 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -33,7 +33,6 @@ import jalview.datamodel.*; import jalview.io.*; import jalview.jbgui.*; import jalview.schemes.*; -import jalview.util.ShiftList; import jalview.commands.*; import jalview.ws.*; import java.awt.dnd.*; @@ -52,8 +51,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener /** DOCUMENT ME!! */ public static final int DEFAULT_HEIGHT = 500; public AlignmentPanel alignPanel; - AlignViewport viewport; + AlignViewport viewport; Vector alignPanels = new Vector(); @@ -93,7 +92,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener al.setDataset(null); } - addAlignmentPanel(alignPanel); + addAlignmentPanel(alignPanel, true); init(); } @@ -106,8 +105,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { viewport = ap.av; alignPanel = ap; - alignPanel.alignFrame = this; - addAlignmentPanel(ap); + addAlignmentPanel(ap, false); init(); } @@ -176,21 +174,20 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener AlignViewport newview = new AlignViewport(al); - AlignmentPanel copy = new AlignmentPanel(af, newview); - if(viewport.viewName==null) viewport.viewName="View 1"; - copy.av.sequenceSetID = viewport.getSequenceSetId(); - copy.av.viewName = "View " + + newview.sequenceSetID = viewport.getSequenceSetId(); + newview.viewName = "View " + (Desktop.getViewCount(viewport.getSequenceSetId())+1); + AlignmentPanel newap = new AlignmentPanel(af, newview); - addAlignmentPanel(copy); - PaintRefresher.Register(copy, viewport.getSequenceSetId()); - PaintRefresher.Register(alignPanel, - viewport.getSequenceSetId()); + PaintRefresher.Register(newap, viewport.getSequenceSetId()); + PaintRefresher.Register(alignPanel, viewport.getSequenceSetId()); + addAlignmentPanel(newap, true); + tabbedPane.setSelectedIndex(tabbedPane.getTabCount()-1); } break; case KeyEvent.VK_G: @@ -381,21 +378,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener viewport.startSeq + viewport.endSeq - viewport.startSeq); break; - - } } }); } - public void addAlignmentPanel(final AlignmentPanel ap) + public void addAlignmentPanel(final AlignmentPanel ap, + boolean newPanel) { + ap.alignFrame = this; + alignPanels.addElement(ap); int aSize = alignPanels.size(); - tabbedPane.setVisible(aSize>1 || ap.av.viewName!=null); + tabbedPane.setVisible(aSize>1 || ap.av.viewName!=null); if (aSize == 1 && ap.av.viewName==null) { @@ -412,29 +410,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener } tabbedPane.addTab(ap.av.viewName==null?"Original":ap.av.viewName, ap); - } - - ap.av.updateConsensus(ap); - ap.av.updateConservation(ap); + ap.setVisible(false); + } - ap.av.addPropertyChangeListener(new PropertyChangeListener() + if(newPanel) { - public void propertyChange(PropertyChangeEvent evt) - { - if (evt.getPropertyName().equals("alignment")) - { - PaintRefresher.Refresh(ap, ap.av.getSequenceSetId()); - alignmentChanged(); - } - } - }); - + ap.av.updateConsensus(ap); + ap.av.updateConservation(ap); + } } - - public AlignViewport getViewport() { return viewport; @@ -804,18 +791,28 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { try { - for(int i=0; i0) + a1 = source.getHiddenSequences().getFullAlignment().getSequencesArray(); + else + a1 = source.getSequencesArray(); + + SequenceI[] a2; + if (comp.getHiddenSequences().getSize() > 0) + a2 = comp.getHiddenSequences().getFullAlignment().getSequencesArray(); + else + a2 = comp.getSequencesArray(); + + int i, iSize=a1.length, j, jSize=a2.length; + boolean exists = false; + for(i=0; i 0) + a2 = comp.getHiddenSequences().getFullAlignment().getSequencesArray(); + else + a2 = comp.getSequencesArray(); + } + } + + iSize=a1.length; + jSize=a2.length; + + for(j=0; j -1; i--) { if (frames[i] instanceof AlignFrame) { AlignFrame af = (AlignFrame) frames[i]; - af.alignmentChanged(); + af.alignPanel.alignmentChanged(); } } } catch (Exception e) { @@ -71,7 +71,7 @@ public class VamsasClient extends ArchiveClient { /** * this will close all windows currently in Jalview. * - + protected void closeWindows() { JInternalFrame[] frames = Desktop.desktop.getAllFrames(); @@ -81,16 +81,16 @@ public class VamsasClient extends ArchiveClient { } try - { + { for (int i = frames.length - 1; i > -1; i--) { - frames[i].dispose(); + frames[i].dispose(); } } catch (Exception e) { Cache.log.error("Whilst closing windows",e); } - + } - + public void get_update(VamsasArchive doc) { // Close windows - load update. Cache.log.info("Jalview updating from Vamsas Session."); @@ -100,9 +100,9 @@ public class VamsasClient extends ArchiveClient { public void push_update() { watchForChange=false; try { - Thread.sleep(WATCH_SLEEP); + Thread.sleep(WATCH_SLEEP); } catch (Exception e) { - + }; ClientDoc cdoc = getUpdateable(); updateVamsasDocument(cdoc); @@ -113,11 +113,11 @@ public class VamsasClient extends ArchiveClient { if (watcher!=null) { Thread wthread = new Thread() { public void run() { - watcher.run(); + watcher.run(); } }; wthread.start(); - + } // collect all uncached alignments and put them into the vamsas dataset. // store them. @@ -125,12 +125,12 @@ public class VamsasClient extends ArchiveClient { } public void end_session() { // stop any update/watcher thread. - watchForChange=false; // this makes any watch(long) loops return. - // we should also wait arount for this.WATCH_SLEEP to really make sure the watcher thread has stopped. + watchForChange=false; // this makes any watch(long) loops return. + // we should also wait arount for this.WATCH_SLEEP to really make sure the watcher thread has stopped. try { - Thread.sleep(WATCH_SLEEP); + Thread.sleep(WATCH_SLEEP); } catch (Exception e) { - + }; Cache.log.info("Jalview disconnecting from the Vamsas Session."); } @@ -153,7 +153,7 @@ public class VamsasClient extends ArchiveClient { public void updateVamsasDocument(ClientDoc doc) { ensureJvVamsas(); VamsasDatastore vds = new VamsasDatastore(doc, vobj2jv, jv2vobj, baseProvEntry()); - // wander through frames + // wander through frames JInternalFrame[] frames = Desktop.desktop.getAllFrames(); if (frames == null) @@ -162,14 +162,14 @@ public class VamsasClient extends ArchiveClient { } try - { + { //REVERSE ORDER for (int i = frames.length - 1; i > -1; i--) { if (frames[i] instanceof AlignFrame) { AlignFrame af = (AlignFrame) frames[i]; - + // update alignment and root from frame. vds.storeVAMSAS(af.getViewport(), af.getTitle()); } @@ -211,12 +211,12 @@ public class VamsasClient extends ArchiveClient { } } running=false; - + } - + } public void disableGui(boolean b) { - Desktop.instance.setVamsasUpdate(b); + Desktop.instance.setVamsasUpdate(b); } public void startWatcher() { if (watcher==null) -- 1.7.10.2