X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=6d3f073abfd2d5341407a02e30f777b9cac19894;hb=1a56a24b084eadd78387eabf71dc7114e356bd00;hp=e11830ccb0c15d1c290c006cc6d6ac4961294584;hpb=7749f0e593d610c517dfd6796cf6087191b189ad;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index e11830c..6d3f073 100755 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -21,11 +21,9 @@ package jalview.gui; import MCview.*; import jalview.analysis.*; - import jalview.datamodel.*; - - import jalview.schemes.*; +import jalview.commands.ChangeCaseCommand; import java.awt.*; import java.awt.event.*; @@ -144,8 +142,7 @@ public class PopupMenu extends JPopupMenu if (seq != null) { - int start = Math.max(sequence.getName().length()-15, 0); - sequenceMenu.setText(sequence.getName().substring(start)); + sequenceMenu.setText(sequence.getName()); JMenuItem menuItem; if( seq.getDatasetSequence().getPDBId() != null) @@ -452,7 +449,7 @@ public class PopupMenu extends JPopupMenu { public void actionPerformed(ActionEvent e) { - upperCase_actionPerformed(e); + changeCase(e); } }); copy.setText("Copy"); @@ -468,7 +465,7 @@ public class PopupMenu extends JPopupMenu { public void actionPerformed(ActionEvent e) { - lowerCase_actionPerformed(e); + changeCase(e); } }); toggle.setText("Toggle Case"); @@ -476,7 +473,7 @@ public class PopupMenu extends JPopupMenu { public void actionPerformed(ActionEvent e) { - toggle_actionPerformed(e); + changeCase(e); } }); pdbMenu.setText("Associate Structure with Sequence"); @@ -523,12 +520,12 @@ public class PopupMenu extends JPopupMenu groupMenu.addSeparator(); groupMenu.add(groupName); groupMenu.add(unGroupMenuItem); - groupMenu.add(colourMenu); + groupMenu.add(colourMenu); groupMenu.add(showBoxes); - groupMenu.add(showText); - groupMenu.add(showColourText); + groupMenu.add(showText); + groupMenu.add(showColourText); groupMenu.add(outline); - sequenceMenu.add(sequenceName); + sequenceMenu.add(sequenceName); sequenceMenu.add(pdbMenu); colourMenu.add(noColourmenuItem); colourMenu.add(clustalColour); @@ -816,9 +813,9 @@ public class PopupMenu extends JPopupMenu if (abovePIDColour.isSelected()) { - sg.cs.setConsensus(AAFrequency.calculate( - sg.getSequences(true), 0, - ap.av.alignment.getWidth())); + sg.cs.setConsensus(AAFrequency.calculate( + sg.getSequences(true), sg.getStartRes(), + sg.getEndRes() + 1)); int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs, getGroup().getName()); @@ -864,8 +861,9 @@ public class PopupMenu extends JPopupMenu { SequenceGroup sg = getGroup(); sg.cs = new PIDColourScheme(); - sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), 0, - ap.av.alignment.getWidth())); + sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), + sg.getStartRes(), + sg.getEndRes() + 1)); refresh(); } @@ -880,8 +878,9 @@ public class PopupMenu extends JPopupMenu sg.cs = new Blosum62ColourScheme(); - sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), 0, - ap.av.alignment.getWidth())); + sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true), + sg.getStartRes(), + sg.getEndRes() + 1)); refresh(); } @@ -912,8 +911,9 @@ public class PopupMenu extends JPopupMenu { Conservation c = new Conservation("Group", ResidueProperties.propHash, 3, - sg.getSequences(true), 0, - ap.av.alignment.getWidth()); + sg.getSequences(true), + sg.getStartRes(), + sg.getEndRes() + 1); c.calculate(); c.verdict(false, ap.av.ConsPercGaps); @@ -1040,13 +1040,15 @@ public class PopupMenu extends JPopupMenu } s = s.replace(' ', '_'); - sequence.getDatasetSequence().setName(s); sequence.setName(s); ap.repaint(); } - sequence.getDatasetSequence().setDescription(description.getText()); sequence.setDescription(description.getText()); + + ap.av.firePropertyChange("alignment", null, + ap.av.getAlignment().getSequences()); + } /** @@ -1176,59 +1178,77 @@ public class PopupMenu extends JPopupMenu ap.alignFrame.cut_actionPerformed(null); } - public void upperCase_actionPerformed(ActionEvent e) - { - changeCase(e.getSource()); - } - - public void lowerCase_actionPerformed(ActionEvent e) - { - changeCase(e.getSource()); - } - - public void toggle_actionPerformed(ActionEvent e) - { - changeCase(e.getSource()); - } - - void changeCase(Object source) + void changeCase(ActionEvent e) { + Object source = e.getSource(); SequenceGroup sg = ap.av.getSelectionGroup(); + Vector regions = new Vector(); if (sg != null) { - for (int g = 0; g < sg.getSize(true); g++) + int start = sg.getStartRes(); + int end = sg.getEndRes() + 1; + + do { - int start = sg.getStartRes(); - int end = sg.getEndRes() + 1; + if (ap.av.hasHiddenColumns) + { + if(start==0) + start = ap.av.colSel.adjustForHiddenColumns(start); + + end = ap.av.colSel.getHiddenBoundaryRight(start); + if (start == end) + end = sg.getEndRes() + 1; + if (end > sg.getEndRes()) + end = sg.getEndRes() + 1; + } + + regions.addElement(new int[] + {start, end}); - do + if (ap.av.hasHiddenColumns) { - if (ap.av.hasHiddenColumns) - { - end = ap.av.colSel.getHiddenBoundaryRight(start); - if (start == end) - end = sg.getEndRes() + 1; - if (end > sg.getEndRes()) - end = sg.getEndRes() + 1; - } + start = ap.av.colSel.adjustForHiddenColumns(end); + start = ap.av.colSel.getHiddenBoundaryLeft(start) + 1; + } + } + while (end < sg.getEndRes()); - if (source == toggle) - ( (SequenceI) sg.getSequences(true).elementAt(g)) - .toggleCase(start, end); - else - ( (SequenceI) sg.getSequences(true).elementAt(g)) - .changeCase(source == upperCase, start, end); + int[][] startEnd = new int[regions.size()][2]; + for (int i = 0; i < regions.size(); i++) + { + startEnd[i] = (int[]) regions.elementAt(i); + } - if (ap.av.hasHiddenColumns) - { - start = ap.av.colSel.adjustForHiddenColumns(end); - start = ap.av.colSel.getHiddenBoundaryLeft(start) + 1; - } - } - while (end < sg.getEndRes()); + String description; + int caseChange; + + if(source==toggle) + { + description = "Toggle Case"; + caseChange = ChangeCaseCommand.TOGGLE_CASE; } - PaintRefresher.Refresh(this, ap.av.getSequenceSetId()); + else if(source==upperCase) + { + description = "To Upper Case"; + caseChange = ChangeCaseCommand.TO_UPPER; + } + else + { + description = "To Lower Case"; + caseChange = ChangeCaseCommand.TO_LOWER; + } + + ChangeCaseCommand caseCommand = new ChangeCaseCommand( + description, sg.getSequencesAsArray(true), startEnd, caseChange + ); + + ap.alignFrame.addHistoryItem(caseCommand); + + + ap.av.firePropertyChange("alignment", null, + ap.av.getAlignment().getSequences()); + } }