X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=dc8f72b78c35cd63fee4a65aa7e678c02202b9aa;hb=81d90a3969ade80091512d829a4fd2850d85b7bc;hp=3ab31327b2ec15ac5e2f6807ce0113016c96ea6f;hpb=b59132cb08bb83359dd7fcb17c50a964d4b162c5;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 3ab3132..dc8f72b 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -27,6 +27,8 @@ import jalview.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; +import java.io.InputStreamReader; +import java.io.BufferedReader; public class AlignFrame extends GAlignFrame @@ -44,8 +46,18 @@ public class AlignFrame alignPanel = new AlignmentPanel(this, viewport); add(alignPanel); alignPanel.validate(); + + this.addWindowListener(new WindowAdapter() + { + public void windowClosing(WindowEvent e) + { + closeMenuItem_actionPerformed(null); + } + }); + } + public AlignFrame(AlignmentI al, jalview.bin.JalviewLite applet) { this.applet = applet; @@ -55,7 +67,6 @@ public class AlignFrame alignPanel.validate(); String treeFile = applet.getParameter("treeFile"); - TreePanel treepanel = null; if (treeFile != null) { try @@ -80,6 +91,16 @@ public class AlignFrame } } + this.addWindowListener(new WindowAdapter() + { + public void windowClosing(WindowEvent e) + { + closeMenuItem_actionPerformed(null); + } + }); + + + } public void inputText_actionPerformed(ActionEvent e) @@ -105,6 +126,7 @@ public class AlignFrame public void closeMenuItem_actionPerformed(ActionEvent e) { + PaintRefresher.components.remove(viewport.alignment); dispose(); } @@ -278,30 +300,55 @@ public class AlignFrame orderedSeqs.put(index + "", seq); } - int index = 0; + int index = 0, startRes, endRes; + char ch; + for (int i = 0; i < sg.getSize(); i++) { - SequenceI seq = null; - while (seq == null) - { - if (orderedSeqs.containsKey(index + "")) + SequenceI seq = null; + + while (seq == null) { - seq = (SequenceI) orderedSeqs.get(index + ""); - index++; - break; + if (orderedSeqs.containsKey(index + "")) + { + seq = (SequenceI) orderedSeqs.get(index + ""); + index++; + + break; + } + else + { + index++; + } } - else + + //FIND START RES + //Returns residue following index if gap + startRes = seq.findPosition(sg.getStartRes()); + + //FIND END RES + //Need to find the residue preceeding index if gap + endRes = 0; + + for (int j = 0; j < sg.getEndRes()+1 && j < seq.getLength(); j++) { - index++; + ch = seq.getCharAt(j); + if (!jalview.util.Comparison.isGap( (ch))) + { + endRes++; + } } - } - copiedSequences.append(seq.getName() + "\t" + - seq.findPosition(sg.getStartRes()) + "\t" - + seq.findPosition(sg.getEndRes()) + "\t" - + - sg.getSequenceAt(i).getSequence(sg.getStartRes(), - sg.getEndRes() + 1) + "\n"); + if(endRes>0) + { + endRes += seq.getStart() -1; + } + + copiedSequences.append(seq.getName() + "\t" + + startRes + "\t" + + endRes + "\t" + + seq.getSequence(sg.getStartRes(), + sg.getEndRes() + 1) + "\n"); } } @@ -460,10 +507,10 @@ public class AlignFrame { sg.addSequence(viewport.getAlignment().getSequenceAt(i), false); } - sg.setEndRes(viewport.alignment.getWidth()); + sg.setEndRes(viewport.alignment.getWidth()-1); viewport.setSelectionGroup(sg); alignPanel.repaint(); - PaintRefresher.Refresh(null); + PaintRefresher.Refresh(null, viewport.alignment); } public void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e) @@ -471,7 +518,7 @@ public class AlignFrame viewport.setSelectionGroup(null); viewport.getColumnSelection().clear(); viewport.setSelectionGroup(null); - PaintRefresher.Refresh(null); + PaintRefresher.Refresh(null, viewport.alignment); } public void invertSequenceMenuItem_actionPerformed(ActionEvent e) @@ -482,7 +529,7 @@ public class AlignFrame sg.addOrRemove(viewport.getAlignment().getSequenceAt(i), false); } - PaintRefresher.Refresh(null); + PaintRefresher.Refresh(null, viewport.alignment); } public void remove2LeftMenuItem_actionPerformed(ActionEvent e) @@ -549,9 +596,19 @@ public class AlignFrame addHistoryItem(new HistoryItem("Remove Gapped Columns", viewport.alignment, HistoryItem.HIDE)); + + //This is to maintain viewport position on first residue + //of first sequence + SequenceI seq = viewport.alignment.getSequenceAt(0); + int startRes = seq.findPosition(viewport.startRes); + viewport.getAlignment().removeGaps(); + + viewport.setStartRes(seq.findIndex(startRes)-1); + viewport.updateConservation(); viewport.updateConsensus(); + resetAllClustalSchemes(); alignPanel.repaint(); } @@ -560,6 +617,11 @@ public class AlignFrame addHistoryItem(new HistoryItem("Remove Gaps", viewport.alignment, HistoryItem.HIDE)); + //This is to maintain viewport position on first residue + //of first sequence + SequenceI seq = viewport.alignment.getSequenceAt(0); + int startRes = seq.findPosition(viewport.startRes); + SequenceI current; int jSize; @@ -567,7 +629,9 @@ public class AlignFrame int start=0, end = viewport.alignment.getWidth(); - if(viewport.getSelectionGroup()!=null) + if (viewport.getSelectionGroup() != null + && viewport.getSelectionGroup().sequences != null + && viewport.getSelectionGroup().sequences.size()>0) { seqs = viewport.getSelectionGroup().sequences; start = viewport.getSelectionGroup().getStartRes(); @@ -595,11 +659,35 @@ public class AlignFrame while(j < end && j < jSize) ; } + viewport.setStartRes(seq.findIndex(startRes)-1); + resetAllClustalSchemes(); viewport.updateConservation(); viewport.updateConsensus(); alignPanel.repaint(); } + void resetAllClustalSchemes() + { + if(viewport.getGlobalColourScheme()!=null + && viewport.getGlobalColourScheme() instanceof ClustalxColourScheme) + { + ((ClustalxColourScheme)viewport.getGlobalColourScheme()). + resetClustalX(viewport.alignment.getSequences(), + viewport.alignment.getWidth()); + } + + int s, sSize = viewport.alignment.getGroups().size(); + for(s=0; s -1) + { + version = line.substring(line.indexOf("=") + 1); + } + } + } + catch (Exception ex) + { + ex.printStackTrace(); + } + } + + Frame frame = new Frame(); - frame.add(new AboutPanel()); + frame.add(new AboutPanel(version)); jalview.bin.JalviewLite.addFrame(frame, "Jalview", 580, 200); }