git://source.jalview.org
/
jalview.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e542a2b
)
block edit bug fixed
author
amwaterhouse
<Andrew Waterhouse>
Thu, 19 May 2005 17:53:46 +0000
(17:53 +0000)
committer
amwaterhouse
<Andrew Waterhouse>
Thu, 19 May 2005 17:53:46 +0000
(17:53 +0000)
src/jalview/gui/SeqPanel.java
patch
|
blob
|
history
diff --git
a/src/jalview/gui/SeqPanel.java
b/src/jalview/gui/SeqPanel.java
index
162f978
..
c43acf9
100755
(executable)
--- a/
src/jalview/gui/SeqPanel.java
+++ b/
src/jalview/gui/SeqPanel.java
@@
-13,12
+13,8
@@
public class SeqPanel extends JPanel
public SeqCanvas seqCanvas;
\r
public AlignmentPanel ap;
\r
\r
public SeqCanvas seqCanvas;
\r
public AlignmentPanel ap;
\r
\r
- protected int startres;
\r
protected int lastres;
\r
protected int lastres;
\r
- protected int endres;
\r
-
\r
protected int startseq;
\r
protected int startseq;
\r
- protected int padseq;
\r
\r
protected AlignViewport av;
\r
\r
\r
protected AlignViewport av;
\r
\r
@@
-100,13
+96,7
@@
public class SeqPanel extends JPanel
\r
public void doMouseReleased(MouseEvent evt) {
\r
\r
\r
public void doMouseReleased(MouseEvent evt) {
\r
\r
- int x = evt.getX();
\r
- int res = x/av.getCharWidth() + av.getStartRes();
\r
-
\r
- endres = res;
\r
-
\r
startseq = -1;
\r
startseq = -1;
\r
- startres = -1;
\r
lastres = -1;
\r
if(seqEditOccurred>-1)
\r
updateConservation(seqEditOccurred);
\r
lastres = -1;
\r
if(seqEditOccurred>-1)
\r
updateConservation(seqEditOccurred);
\r
@@
-114,7
+104,6
@@
public class SeqPanel extends JPanel
seqEditOccurred = -1;
\r
\r
ap.repaint();
\r
seqEditOccurred = -1;
\r
\r
ap.repaint();
\r
-
\r
}
\r
\r
public void doMousePressed(MouseEvent evt) {
\r
}
\r
\r
public void doMousePressed(MouseEvent evt) {
\r
@@
-137,19
+126,12
@@
public class SeqPanel extends JPanel
\r
startseq = seq;
\r
\r
\r
startseq = seq;
\r
\r
- if (startseq == (av.getAlignment().getHeight() - 1))
\r
- padseq = 1;
\r
- else
\r
- padseq = 1;
\r
-
\r
- startres = res;
\r
lastres = res;
\r
\r
}
\r
else
\r
{
\r
startseq = -1;
\r
lastres = res;
\r
\r
}
\r
else
\r
{
\r
startseq = -1;
\r
- startres = -1;
\r
lastres = -1;
\r
}
\r
\r
lastres = -1;
\r
}
\r
\r
@@
-229,16
+211,19
@@
public class SeqPanel extends JPanel
}
\r
\r
public void doMouseDragged(MouseEvent evt) {
\r
}
\r
\r
public void doMouseDragged(MouseEvent evt) {
\r
+
\r
// If we're dragging we're editing
\r
// If we're dragging we're editing
\r
+ int res = evt.getX() / av.getCharWidth() + av.getStartRes();
\r
+ if (res < 0)
\r
+ res = 0;
\r
\r
\r
- if(lastres==-1)
\r
+ if (lastres == -1 || lastres == res)
\r
return;
\r
\r
return;
\r
\r
- int x = evt.getX();
\r
+ boolean dragRight = true;
\r
+ if (res < av.getAlignment().getWidth() && res < lastres)
\r
+ dragRight = false;
\r
\r
\r
- int res = x/av.getCharWidth() + av.getStartRes();
\r
- if (res < 0)
\r
- res = 0;
\r
\r
if (res != lastres)
\r
{
\r
\r
if (res != lastres)
\r
{
\r
@@
-247,41
+232,48
@@
public class SeqPanel extends JPanel
{
\r
SequenceGroup sg = av.getSelectionGroup();
\r
if(sg==null)
\r
{
\r
SequenceGroup sg = av.getSelectionGroup();
\r
if(sg==null)
\r
- av.getAlignment().findGroup(startseq);
\r
- if (sg != null)
\r
{
\r
{
\r
- boolean deleteAllowed = false;
\r
- if (res < av.getAlignment().getWidth() && res < lastres)
\r
+ lastres=-1;
\r
+ return;
\r
+ }
\r
+
\r
+ // drag to right
\r
+ if(dragRight)
\r
+ sg.setEndRes(sg.getEndRes() + (res-lastres));
\r
+
\r
+ // drag to left
\r
+ else
\r
{
\r
{
\r
- /// Are we able to delete?
\r
- boolean allGaps = true;
\r
- for (int i = 0; i < sg.getSize(); i++)
\r
+ /// Are we able to delete?
\r
+ // ie are all columns blank?
\r
+ boolean deleteAllowed = false;
\r
+ for (int s = 0; s < sg.getSize(); s++)
\r
{
\r
{
\r
- SequenceI s = sg.getSequenceAt(i);
\r
- for (int j = lastres-1; j >= res && allGaps; j--)
\r
+ SequenceI seq = sg.getSequenceAt(s);
\r
+ for (int j=res; j<lastres; j++)
\r
{
\r
{
\r
- if (!jalview.util.Comparison.isGap(s.getSequence().charAt(j)))
\r
- {
\r
- res = j + 1;
\r
- allGaps = false;
\r
- }
\r
- }
\r
-
\r
- if(!deleteAllowed && allGaps)
\r
+ if(seq.getSequence().length()<=j)
\r
+ continue;
\r
+
\r
+ if(!jalview.util.Comparison.isGap(seq.getSequence().charAt(j)))
\r
+ {
\r
+ // Not a gap, block edit not valid
\r
+ res=j+1;
\r
+ deleteAllowed = false;
\r
+ continue;
\r
+ }
\r
deleteAllowed = true;
\r
deleteAllowed = true;
\r
+ }
\r
}
\r
}
\r
- }
\r
-
\r
- // drag to right
\r
- if (res < av.getAlignment().getWidth() && res > lastres)
\r
- sg.setEndRes(sg.getEndRes() + 1);
\r
-
\r
- // drag to left
\r
- else if (deleteAllowed && res < av.getAlignment().getWidth() &&
\r
- res < lastres)
\r
- sg.setEndRes(sg.getEndRes() - 1);
\r
\r
\r
+ if(!deleteAllowed)
\r
+ {
\r
+ lastres = -1;
\r
+ return;
\r
+ }
\r
\r
\r
+ sg.setEndRes(sg.getEndRes() - (lastres-res));
\r
+ }
\r
\r
\r
for (int i = 0; i < sg.getSize(); i++)
\r
\r
\r
for (int i = 0; i < sg.getSize(); i++)
\r
@@
-290,21
+282,20
@@
public class SeqPanel extends JPanel
int k = av.alignment.findIndex(s);
\r
\r
// drag to right
\r
int k = av.alignment.findIndex(s);
\r
\r
// drag to right
\r
- if (res < av.getAlignment().getWidth() && res > lastres)
\r
+ if (dragRight)
\r
for (int j = lastres; j < res; j++)
\r
insertChar(j, k);
\r
\r
// drag to left
\r
for (int j = lastres; j < res; j++)
\r
insertChar(j, k);
\r
\r
// drag to left
\r
- else if (deleteAllowed && res < av.getAlignment().getWidth() && res < lastres)
\r
+ else
\r
{
\r
for (int j = res; j < lastres; j++)
\r
{
\r
{
\r
for (int j = res; j < lastres; j++)
\r
{
\r
- deleteChar(j, k);
\r
- startres = res;
\r
+ if(s.getLength()>j)
\r
+ deleteChar(res, k);
\r
}
\r
}
\r
}
\r
}
\r
}
\r
}
\r
- }
\r
}
\r
else /////Editing a single sequence///////////
\r
{
\r
}
\r
else /////Editing a single sequence///////////
\r
{
\r
@@
-317,15
+308,13
@@
public class SeqPanel extends JPanel
else if (res < av.getAlignment().getWidth() && res < lastres)
\r
{
\r
// dragging to the left
\r
else if (res < av.getAlignment().getWidth() && res < lastres)
\r
{
\r
// dragging to the left
\r
- for (int j = res; j < lastres; j++)
\r
+ for (int j = lastres; j > res; j--)
\r
{
\r
{
\r
- deleteChar(j, startseq);
\r
- startres = res;
\r
+ deleteChar(res, startseq);
\r
}
\r
}
\r
\r
}
\r
}
\r
}
\r
\r
}
\r
-
\r
}
\r
\r
lastres = res;
\r
}
\r
\r
lastres = res;
\r
@@
-347,8
+336,10
@@
public class SeqPanel extends JPanel
{
\r
\r
if ( jalview.util.Comparison.isGap( av.alignment.getSequenceAt(seq).getSequence().charAt(j)))
\r
{
\r
\r
if ( jalview.util.Comparison.isGap( av.alignment.getSequenceAt(seq).getSequence().charAt(j)))
\r
- av.alignment.getSequenceAt(seq).deleteCharAt(j);
\r
+ { av.alignment.getSequenceAt(seq).deleteCharAt(j);
\r
\r
\r
+ }
\r
+ else System.out.println("err "+seq+" "+j);
\r
av.alignment.getWidth();
\r
repaint();
\r
seqEditOccurred=seq;
\r
av.alignment.getWidth();
\r
repaint();
\r
seqEditOccurred=seq;
\r