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:
b35cf05
)
Change Case is undoable
author
amwaterhouse
<Andrew Waterhouse>
Tue, 24 Oct 2006 11:23:29 +0000
(11:23 +0000)
committer
amwaterhouse
<Andrew Waterhouse>
Tue, 24 Oct 2006 11:23:29 +0000
(11:23 +0000)
src/jalview/gui/PopupMenu.java
patch
|
blob
|
history
diff --git
a/src/jalview/gui/PopupMenu.java
b/src/jalview/gui/PopupMenu.java
index
e11830c
..
7d08688
100755
(executable)
--- a/
src/jalview/gui/PopupMenu.java
+++ b/
src/jalview/gui/PopupMenu.java
@@
-21,11
+21,9
@@
package jalview.gui;
import MCview.*;
\r
\r
import jalview.analysis.*;
\r
import MCview.*;
\r
\r
import jalview.analysis.*;
\r
-
\r
import jalview.datamodel.*;
\r
import jalview.datamodel.*;
\r
-
\r
-
\r
import jalview.schemes.*;
\r
import jalview.schemes.*;
\r
+import jalview.commands.ChangeCaseCommand;
\r
\r
import java.awt.*;
\r
import java.awt.event.*;
\r
\r
import java.awt.*;
\r
import java.awt.event.*;
\r
@@
-1194,40
+1192,70
@@
public class PopupMenu extends JPopupMenu
void changeCase(Object source)
\r
{
\r
SequenceGroup sg = ap.av.getSelectionGroup();
\r
void changeCase(Object source)
\r
{
\r
SequenceGroup sg = ap.av.getSelectionGroup();
\r
+ Vector regions = new Vector();
\r
if (sg != null)
\r
{
\r
if (sg != null)
\r
{
\r
- for (int g = 0; g < sg.getSize(true); g++)
\r
+ int start = sg.getStartRes();
\r
+ int end = sg.getEndRes() + 1;
\r
+
\r
+ do
\r
{
\r
{
\r
- int start = sg.getStartRes();
\r
- int end = sg.getEndRes() + 1;
\r
+ if (ap.av.hasHiddenColumns)
\r
+ {
\r
+ if(start==0)
\r
+ start = ap.av.colSel.adjustForHiddenColumns(start);
\r
+
\r
+ end = ap.av.colSel.getHiddenBoundaryRight(start);
\r
+ if (start == end)
\r
+ end = sg.getEndRes() + 1;
\r
+ if (end > sg.getEndRes())
\r
+ end = sg.getEndRes() + 1;
\r
+ }
\r
+
\r
+ regions.addElement(new int[]
\r
+ {start, end});
\r
\r
\r
- do
\r
+ if (ap.av.hasHiddenColumns)
\r
{
\r
{
\r
- if (ap.av.hasHiddenColumns)
\r
- {
\r
- end = ap.av.colSel.getHiddenBoundaryRight(start);
\r
- if (start == end)
\r
- end = sg.getEndRes() + 1;
\r
- if (end > sg.getEndRes())
\r
- end = sg.getEndRes() + 1;
\r
- }
\r
+ start = ap.av.colSel.adjustForHiddenColumns(end);
\r
+ start = ap.av.colSel.getHiddenBoundaryLeft(start) + 1;
\r
+ }
\r
+ }
\r
+ while (end < sg.getEndRes());
\r
\r
\r
- if (source == toggle)
\r
- ( (SequenceI) sg.getSequences(true).elementAt(g))
\r
- .toggleCase(start, end);
\r
- else
\r
- ( (SequenceI) sg.getSequences(true).elementAt(g))
\r
- .changeCase(source == upperCase, start, end);
\r
+ int[][] startEnd = new int[regions.size()][2];
\r
+ for (int i = 0; i < regions.size(); i++)
\r
+ {
\r
+ startEnd[i] = (int[]) regions.elementAt(i);
\r
+ }
\r
\r
\r
- if (ap.av.hasHiddenColumns)
\r
- {
\r
- start = ap.av.colSel.adjustForHiddenColumns(end);
\r
- start = ap.av.colSel.getHiddenBoundaryLeft(start) + 1;
\r
- }
\r
\r
\r
- }
\r
- while (end < sg.getEndRes());
\r
+ String description;
\r
+ int caseChange;
\r
+
\r
+ if(source==toggle)
\r
+ {
\r
+ description = "Toggle Case";
\r
+ caseChange = ChangeCaseCommand.TOGGLE_CASE;
\r
+ }
\r
+ else if(source==upperCase)
\r
+ {
\r
+ description = "To Upper Case";
\r
+ caseChange = ChangeCaseCommand.TO_UPPER;
\r
}
\r
}
\r
+ else
\r
+ {
\r
+ description = "To Lower Case";
\r
+ caseChange = ChangeCaseCommand.TO_LOWER;
\r
+ }
\r
+
\r
+ ChangeCaseCommand caseCommand = new ChangeCaseCommand(
\r
+ description, sg.getSequencesAsArray(true), startEnd, caseChange
\r
+ );
\r
+
\r
+ ap.alignFrame.addHistoryItem(caseCommand);
\r
+
\r
+
\r
PaintRefresher.Refresh(this, ap.av.getSequenceSetId());
\r
}
\r
}
\r
PaintRefresher.Refresh(this, ap.av.getSequenceSetId());
\r
}
\r
}
\r