X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=9ed81abb1cb5984c3603944798777a07342f4f66;hb=3e6b14950a06bb87c147493e4dfff0c4491ea25b;hp=c673af1f879178665ee72784aa35cc6fbc0abbde;hpb=4831e7f2dece110dee88b3fe802d50b845ed9603;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index c673af1..9ed81ab 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.*; @@ -83,6 +81,8 @@ public class PopupMenu extends JPopupMenu JMenuItem discoverPDB = new JMenuItem(); JMenu outputMenu = new JMenu(); JMenuItem sequenceFeature = new JMenuItem(); + JMenuItem textColour = new JMenuItem(); + JMenu jMenu1 = new JMenu(); /** * Creates a new PopupMenu object. @@ -144,8 +144,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) @@ -181,7 +180,7 @@ public class PopupMenu extends JPopupMenu add(menuItem); if(ap.av.getSelectionGroup() !=null - && ap.av.getSelectionGroup().getSize(false)>1) + && ap.av.getSelectionGroup().getSize()>1) { menuItem = new JMenuItem("Represent Group with " + seq.getName()); menuItem.addActionListener(new java.awt.event.ActionListener() @@ -452,7 +451,7 @@ public class PopupMenu extends JPopupMenu { public void actionPerformed(ActionEvent e) { - upperCase_actionPerformed(e); + changeCase(e); } }); copy.setText("Copy"); @@ -468,7 +467,7 @@ public class PopupMenu extends JPopupMenu { public void actionPerformed(ActionEvent e) { - lowerCase_actionPerformed(e); + changeCase(e); } }); toggle.setText("Toggle Case"); @@ -476,7 +475,7 @@ public class PopupMenu extends JPopupMenu { public void actionPerformed(ActionEvent e) { - toggle_actionPerformed(e); + changeCase(e); } }); pdbMenu.setText("Associate Structure with Sequence"); @@ -513,23 +512,25 @@ public class PopupMenu extends JPopupMenu sequenceFeature_actionPerformed(e); } }); + textColour.setText("Text Colour"); + textColour.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + textColour_actionPerformed(e); + } + }); + jMenu1.setText("Group"); add(groupMenu); add(sequenceMenu); groupMenu.add(editMenu); groupMenu.add(outputMenu); - groupMenu.addSeparator(); groupMenu.add(sequenceFeature); - groupMenu.addSeparator(); - groupMenu.add(groupName); - groupMenu.add(unGroupMenuItem); - groupMenu.add(colourMenu); - groupMenu.add(showBoxes); - groupMenu.add(showText); - groupMenu.add(showColourText); - groupMenu.add(outline); - sequenceMenu.add(sequenceName); + groupMenu.add(jMenu1); + sequenceMenu.add(sequenceName); sequenceMenu.add(pdbMenu); + colourMenu.add(textColour); colourMenu.add(noColourmenuItem); colourMenu.add(clustalColour); colourMenu.add(BLOSUM62Colour); @@ -576,6 +577,13 @@ public class PopupMenu extends JPopupMenu pdbMenu.add(pdbFromFile); pdbMenu.add(enterPDB); pdbMenu.add(discoverPDB); + jMenu1.add(groupName); + jMenu1.add(unGroupMenuItem); + jMenu1.add(colourMenu); + jMenu1.add(showBoxes); + jMenu1.add(showText); + jMenu1.add(showColourText); + jMenu1.add(outline); noColourmenuItem.setText("None"); noColourmenuItem.addActionListener(new java.awt.event.ActionListener() { @@ -710,7 +718,7 @@ public class PopupMenu extends JPopupMenu protected void clustalColour_actionPerformed(ActionEvent e) { SequenceGroup sg = getGroup(); - sg.cs = new ClustalxColourScheme(sg.getSequences(true), + sg.cs = new ClustalxColourScheme(sg.getSequences(ap.av.hiddenRepSequences), ap.av.alignment.getWidth()); refresh(); } @@ -816,9 +824,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(ap.av.hiddenRepSequences), sg.getStartRes(), + sg.getEndRes() + 1)); int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs, getGroup().getName()); @@ -864,8 +872,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(ap.av.hiddenRepSequences), + sg.getStartRes(), + sg.getEndRes() + 1)); refresh(); } @@ -880,8 +889,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(ap.av.hiddenRepSequences), + sg.getStartRes(), + sg.getEndRes() + 1)); refresh(); } @@ -912,8 +922,9 @@ public class PopupMenu extends JPopupMenu { Conservation c = new Conservation("Group", ResidueProperties.propHash, 3, - sg.getSequences(true), 0, - ap.av.alignment.getWidth()); + sg.getSequences(ap.av.hiddenRepSequences), + sg.getStartRes(), + sg.getEndRes() + 1); c.calculate(); c.verdict(false, ap.av.ConsPercGaps); @@ -952,31 +963,6 @@ public class PopupMenu extends JPopupMenu groupName.setText(reply); } - /** - * DOCUMENT ME! - * - * @param e DOCUMENT ME! - */ - protected void analyze_actionPerformed(ActionEvent e) - { - CutAndPasteTransfer cap = new CutAndPasteTransfer(); - JInternalFrame frame = new JInternalFrame(); - frame.setContentPane(cap); - Desktop.addInternalFrame(frame, "Analyze this - ", 400, 300); - - SequenceGroup sg = getGroup(); - StringBuffer sb = new StringBuffer(); - - for (int i = 0; i < sg.getSize(false); i++) - { - Sequence tmp = (Sequence) sg.getSequences(false).elementAt(i); - sb.append(tmp.getSequence(sg.getStartRes(), sg.getEndRes() + 1)); - sb.append("\n"); - } - - sb.append("Something amazing will happen soon"); - cap.setText(sb.toString()); - } /** * DOCUMENT ME! @@ -1040,13 +1026,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()); + } /** @@ -1136,34 +1124,33 @@ public class PopupMenu extends JPopupMenu void hideSequences(boolean representGroup) { SequenceGroup sg = ap.av.getSelectionGroup(); - if(sg==null || sg.getSize(false)<1) + if(sg==null || sg.getSize()<1) { ap.av.hideSequence(new SequenceI[]{sequence}); return; } - int gsize = sg.getSize(false); - SequenceI [] hseqs; + ap.av.setSelectionGroup(null); - hseqs = new SequenceI[ representGroup ? gsize-1 : gsize ]; + if (representGroup) + { + ap.av.hideRepSequences(sequence, sg); - int index = 0; - for(int i=0; i 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(ap.av.hiddenRepSequences), + startEnd, caseChange + ); + + ap.alignFrame.addHistoryItem(caseCommand); + + + ap.av.firePropertyChange("alignment", null, + ap.av.getAlignment().getSequences()); + } } public void outputText_actionPerformed(ActionEvent e) { CutAndPasteTransfer cap = new CutAndPasteTransfer(); + cap.setForInput(null); Desktop.addInternalFrame(cap, "Alignment output - " + e.getActionCommand(), 600, 500); @@ -1328,7 +1335,7 @@ public class PopupMenu extends JPopupMenu if(sg==null) return; - int gSize= sg.getSize(false); + int gSize= sg.getSize(); SequenceI [] seqs = new SequenceI[gSize]; SequenceFeature [] features = new SequenceFeature[gSize]; @@ -1337,13 +1344,7 @@ public class PopupMenu extends JPopupMenu seqs[i] = sg.getSequenceAt(i).getDatasetSequence(); int start = sg.getSequenceAt(i).findPosition(sg.getStartRes()); int end = sg.findEndRes(sg.getSequenceAt(i)); - - features[i] = new SequenceFeature( - "", - "Search Results", null, - start, - end, - "Search Results"); + features[i] = new SequenceFeature(null,null, null,start,end,"Jalview"); } if (ap.seqPanel.seqCanvas.getFeatureRenderer() @@ -1354,4 +1355,11 @@ public class PopupMenu extends JPopupMenu ap.highlightSearchResults(null); } } + + public void textColour_actionPerformed(ActionEvent e) + { + SequenceGroup sg = getGroup(); + if (sg != null) + new TextColourChooser().chooseColour(ap, sg); + } }