+ case KeyEvent.VK_PAGE_UP:
+ if (viewport.wrapAlignment)
+ {
+ alignPanel.scrollUp(true);
+ }
+ else
+ {
+ alignPanel.setScrollValues(viewport.startRes,
+ viewport.startSeq
+ - viewport.endSeq + viewport.startSeq);
+ }
+ break;
+
+ case KeyEvent.VK_PAGE_DOWN:
+ if (viewport.wrapAlignment)
+ {
+ alignPanel.scrollUp(false);
+ }
+ else
+ {
+ alignPanel.setScrollValues(viewport.startRes,
+ viewport.startSeq
+ + viewport.endSeq - viewport.startSeq);
+ }
+ break;
+
+ case KeyEvent.VK_Z:
+ if (evt.isControlDown())
+ {
+ undoMenuItem_actionPerformed();
+ }
+ break;
+
+ case KeyEvent.VK_Y:
+ if (evt.isControlDown())
+ {
+ redoMenuItem_actionPerformed();
+ }
+ break;
+
+ case KeyEvent.VK_L:
+ if (evt.isControlDown())
+ {
+ trimAlignment(true);
+ }
+ break;
+
+ case KeyEvent.VK_R:
+ if (evt.isControlDown())
+ {
+ trimAlignment(false);
+ }
+ break;
+
+ case KeyEvent.VK_E:
+ if (evt.isControlDown())
+ {
+ if (evt.isShiftDown())
+ {
+ this.removeAllGapsMenuItem_actionPerformed();
+ }
+ else
+ {
+ removeGappedColumnMenuItem_actionPerformed();
+ }
+ }
+ break;
+ case KeyEvent.VK_I:
+ if (evt.isControlDown())
+ {
+ if (evt.isAltDown())
+ {
+ viewport.invertColumnSelection();
+ }
+ else
+ {
+ this.invertSequenceMenuItem_actionPerformed();
+ }
+ }
+ break;
+
+ case KeyEvent.VK_U:
+ if (evt.isControlDown())
+ {
+ this.deleteGroups_actionPerformed();
+ }
+ break;
+
+ case KeyEvent.VK_T:
+ if (evt.isControlDown())
+ {
+ newView(null);
+ }
+ break;
+
+ }
+ alignPanel.paintAlignment(true);
+ }
+
+ public void keyReleased(KeyEvent evt)
+ {}
+
+ public void keyTyped(KeyEvent evt)
+ {}
+
+ public void itemStateChanged(ItemEvent evt)
+ {
+ if (evt.getSource() == colourTextMenuItem)
+ {
+ colourTextMenuItem_actionPerformed();
+ }
+ else if (evt.getSource() == wrapMenuItem)
+ {
+ wrapMenuItem_actionPerformed();
+ }
+ else if (evt.getSource() == scaleAbove)
+ {
+ viewport.setScaleAboveWrapped(scaleAbove.getState());
+ }
+ else if (evt.getSource() == scaleLeft)
+ {
+ viewport.setScaleLeftWrapped(scaleLeft.getState());
+ }
+ else if (evt.getSource() == scaleRight)
+ {
+ viewport.setScaleRightWrapped(scaleRight.getState());
+ }
+ else if (evt.getSource() == seqLimits)
+ {
+ seqLimits_itemStateChanged();
+ }
+ else if (evt.getSource() == viewBoxesMenuItem)
+ {
+ viewport.setShowBoxes(viewBoxesMenuItem.getState());
+ }
+ else if (evt.getSource() == viewTextMenuItem)
+ {
+ viewport.setShowText(viewTextMenuItem.getState());
+ }
+ else if (evt.getSource() == renderGapsMenuItem)
+ {
+ viewport.setRenderGaps(renderGapsMenuItem.getState());
+ }
+ else if (evt.getSource() == annotationPanelMenuItem)
+ {
+ viewport.setShowAnnotation(annotationPanelMenuItem.getState());
+ alignPanel.setAnnotationVisible(annotationPanelMenuItem.getState());
+ }
+ else if (evt.getSource() == sequenceFeatures)
+ {
+ viewport.showSequenceFeatures(sequenceFeatures.getState());
+ alignPanel.seqPanel.seqCanvas.repaint();
+ }
+ else if (evt.getSource() == conservationMenuItem)
+ {
+ conservationMenuItem_actionPerformed();
+ }
+ else if (evt.getSource() == abovePIDThreshold)
+ {
+ abovePIDThreshold_actionPerformed();
+ }
+ else if (evt.getSource() == applyToAllGroups)
+ {
+ viewport.setColourAppliesToAllGroups(applyToAllGroups.getState());
+ }
+ else if (evt.getSource() == autoCalculate)
+ {
+ viewport.autocalculateConsensus = autoCalculate.getState();
+ } else if (evt.getSource() == this.centreColumnLabelFlag)
+ {
+ centreColumnLabelFlag_stateChanged();
+ }
+
+ alignPanel.paintAlignment(true);
+ }
+
+ private void centreColumnLabelFlag_stateChanged()
+ {
+ viewport.centreColumnLabels = centreColumnLabelFlag.getState();
+ this.alignPanel.annotationPanel.repaint();
+ }
+
+ public void actionPerformed(ActionEvent evt)
+ {
+ Object source = evt.getSource();
+
+ if (source == inputText)
+ {
+ inputText_actionPerformed();
+ }
+ else if (source == loadTree)
+ {
+ loadTree_actionPerformed();
+ }
+ else if (source == loadApplication)
+ {
+ launchFullApplication();
+ }
+ else if (source == loadAnnotations)
+ {
+ loadAnnotations();
+ }
+ else if (source == outputAnnotations)
+ {
+ outputAnnotations(true);
+ }
+ else if (source == outputFeatures)
+ {
+ outputFeatures(true, "Jalview");
+ }
+ else if (source == closeMenuItem)
+ {
+ closeMenuItem_actionPerformed();
+ }
+ else if (source == copy)
+ {
+ copy_actionPerformed();
+ }
+ else if (source == undoMenuItem)
+ {
+ undoMenuItem_actionPerformed();
+ }
+ else if (source == redoMenuItem)
+ {
+ redoMenuItem_actionPerformed();
+ }
+ else if (source == inputText)
+ {
+ inputText_actionPerformed();
+ }
+ else if (source == closeMenuItem)
+ {
+ closeMenuItem_actionPerformed();
+ }
+ else if (source == undoMenuItem)
+ {
+ undoMenuItem_actionPerformed();
+ }
+ else if (source == redoMenuItem)
+ {
+ redoMenuItem_actionPerformed();
+ }
+ else if (source == copy)
+ {
+ copy_actionPerformed();
+ }
+ else if (source == pasteNew)
+ {
+ pasteNew_actionPerformed();
+ }
+ else if (source == pasteThis)
+ {
+ pasteThis_actionPerformed();
+ }
+ else if (source == cut)
+ {
+ cut_actionPerformed();
+ }
+ else if (source == delete)
+ {
+ delete_actionPerformed();
+ }
+ else if (source == deleteGroups)
+ {
+ deleteGroups_actionPerformed();
+ }
+ else if (source == selectAllSequenceMenuItem)
+ {
+ selectAllSequenceMenuItem_actionPerformed();
+ }
+ else if (source == deselectAllSequenceMenuItem)
+ {
+ deselectAllSequenceMenuItem_actionPerformed();
+ }
+ else if (source == invertSequenceMenuItem)
+ {
+ invertSequenceMenuItem_actionPerformed();
+ }
+ else if (source == invertColSel)
+ {
+ viewport.invertColumnSelection();
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == remove2LeftMenuItem)
+ {
+ trimAlignment(true);
+ }
+ else if (source == remove2RightMenuItem)
+ {
+ trimAlignment(false);
+ }
+ else if (source == removeGappedColumnMenuItem)
+ {
+ removeGappedColumnMenuItem_actionPerformed();
+ }
+ else if (source == removeAllGapsMenuItem)
+ {
+ removeAllGapsMenuItem_actionPerformed();
+ }
+ else if (source == findMenuItem)
+ {
+ findMenuItem_actionPerformed();
+ }
+ else if (source == font)
+ {
+ new FontChooser(alignPanel);
+ }
+ else if (source == newView)
+ {
+ newView(null);
+ }
+ else if (source == showColumns)
+ {
+ viewport.showAllHiddenColumns();
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == showSeqs)
+ {
+ viewport.showAllHiddenSeqs();
+ }
+ else if (source == hideColumns)
+ {
+ viewport.hideSelectedColumns();
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == hideSequences && viewport.getSelectionGroup() != null)
+ {
+ viewport.hideAllSelectedSeqs();
+ }
+ else if (source == featureSettings)
+ {
+ new FeatureSettings(alignPanel);
+ }
+ else if(source== alProperties)
+ {
+ StringBuffer contents = new StringBuffer();
+
+ float avg = 0;
+ int min=Integer.MAX_VALUE, max=0;
+ for(int i=0; i<viewport.alignment.getHeight(); i++)
+ {
+ int size = viewport.alignment.getSequenceAt(i).getEnd()
+ -viewport.alignment.getSequenceAt(i).getStart();
+ avg += size;
+ if(size>max)
+ max = size;
+ if(size<min)
+ min = size;
+ }
+ avg = avg/(float)viewport.alignment.getHeight();
+
+ contents.append("\nSequences: "+ viewport.alignment.getHeight());
+ contents.append("\nMinimum Sequence Length: "+min);
+ contents.append("\nMaximum Sequence Length: "+max);
+ contents.append("\nAverage Length: "+(int)avg);
+
+ if (((Alignment)viewport.alignment).alignmentProperties != null)
+ {
+ Hashtable props = ((Alignment)viewport.alignment).alignmentProperties;
+ Enumeration en = props.keys();
+ while(en.hasMoreElements())
+ {
+ String key = en.nextElement().toString();
+ contents.append("\n"+key+"\t"+props.get(key));
+ }
+ }
+
+ CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);
+ cap.setText(contents.toString());
+ Frame frame = new Frame();
+ frame.add(cap);
+ jalview.bin.JalviewLite.addFrame(frame,
+ "Alignment Properties: "+getTitle()
+ , 400, 250);
+ }
+ else if (source == overviewMenuItem)
+ {
+ overviewMenuItem_actionPerformed();
+ }
+ else if (source == noColourmenuItem)
+ {
+ changeColour(null);
+ }
+ else if (source == clustalColour)
+ {
+ abovePIDThreshold.setState(false);
+ changeColour(new ClustalxColourScheme(viewport.alignment.getSequences(),
+ viewport.alignment.getWidth()));
+ }
+ else if (source == zappoColour)
+ {
+ changeColour(new ZappoColourScheme());
+ }
+ else if (source == taylorColour)
+ {
+ changeColour(new TaylorColourScheme());
+ }
+ else if (source == hydrophobicityColour)
+ {
+ changeColour(new HydrophobicColourScheme());
+ }
+ else if (source == helixColour)
+ {
+ changeColour(new HelixColourScheme());
+ }
+ else if (source == strandColour)
+ {
+ changeColour(new StrandColourScheme());