X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=b2d41e8935bec20c6141000dd1cf9cc7e008d9bd;hb=12cc8cf9004b54db1b9fafa21d22d119bb874dfc;hp=08c1aa94a041ace080c816a955f25139056e7347;hpb=77c35fa912621cbadcf5ec74da4c6d45de6322e1;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 08c1aa9..b2d41e8 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -24,18 +24,18 @@ import java.util.*; import java.awt.*; import java.awt.datatransfer.*; +import java.awt.dnd.*; import java.awt.event.*; import java.awt.print.*; import javax.swing.*; import jalview.analysis.*; +import jalview.commands.*; import jalview.datamodel.*; import jalview.io.*; import jalview.jbgui.*; import jalview.schemes.*; -import jalview.commands.*; import jalview.ws.*; -import java.awt.dnd.*; /** * DOCUMENT ME! @@ -43,7 +43,8 @@ import java.awt.dnd.*; * @author $author$ * @version $Revision$ */ -public class AlignFrame extends GAlignFrame implements DropTargetListener +public class AlignFrame + extends GAlignFrame implements DropTargetListener { /** DOCUMENT ME!! */ public static final int DEFAULT_WIDTH = 700; @@ -56,13 +57,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener Vector alignPanels = new Vector(); - /** DOCUMENT ME!! */ String currentFileFormat = null; String fileName = null; - /** * Creates a new AlignFrame object. * @@ -73,7 +72,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener this(al, null, width, height); } - /** * new alignment window with hidden columns * @param al AlignmentI @@ -87,7 +85,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener alignPanel = new AlignmentPanel(this, viewport); - if(al.getDataset()==null) + if (al.getDataset() == null) { al.setDataset(null); } @@ -118,240 +116,269 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener BLOSUM62Colour.setEnabled(false); conservationMenuItem.setEnabled(false); modifyConservation.setEnabled(false); - // PIDColour.setEnabled(false); - // abovePIDThreshold.setEnabled(false); - // modifyPID.setEnabled(false); + // PIDColour.setEnabled(false); + // abovePIDThreshold.setEnabled(false); + // modifyPID.setEnabled(false); } String sortby = jalview.bin.Cache.getDefault("SORT_ALIGNMENT", "No sort"); if (sortby.equals("Id")) + { sortIDMenuItem_actionPerformed(null); + } else if (sortby.equals("Pairwise Identity")) + { sortPairwiseMenuItem_actionPerformed(null); + } if (Desktop.desktop != null) - { - addServiceListeners(); - setGUINucleotide(viewport.alignment.isNucleotide()); - } + { + addServiceListeners(); + setGUINucleotide(viewport.alignment.isNucleotide()); + } - setMenusFromViewport(viewport); + setMenusFromViewport(viewport); - if (viewport.wrapAlignment) - { - wrapMenuItem_actionPerformed(null); - } + if (viewport.wrapAlignment) + { + wrapMenuItem_actionPerformed(null); + } - addKeyListener(); + if (jalview.bin.Cache.getDefault("SHOW_OVERVIEW",false)) + { + this.overviewMenuItem_actionPerformed(null); + } + + addKeyListener(); } public void setFileName(String file, String format) { - fileName = file; - currentFileFormat = format; - reload.setEnabled(true); + fileName = file; + currentFileFormat = format; + reload.setEnabled(true); } void addKeyListener() { - addKeyListener(new KeyAdapter() + addKeyListener(new KeyAdapter() + { + public void keyPressed(KeyEvent evt) { - public void keyPressed(KeyEvent evt) + if (viewport.cursorMode + && evt.getKeyCode() >= KeyEvent.VK_0 + && evt.getKeyCode() <= KeyEvent.VK_9) { - if (viewport.cursorMode - && evt.getKeyCode() >= KeyEvent.VK_0 - && evt.getKeyCode() <= KeyEvent.VK_9) - { - alignPanel.seqPanel.numberPressed(evt.getKeyChar()); - } + alignPanel.seqPanel.numberPressed(evt.getKeyChar()); + } - switch (evt.getKeyCode()) - { + switch (evt.getKeyCode()) + { - case 27: // escape key - deselectAllSequenceMenuItem_actionPerformed(null); + case 27: // escape key + deselectAllSequenceMenuItem_actionPerformed(null); - break; + break; - case KeyEvent.VK_DOWN: - if (viewport.cursorMode) - { - alignPanel.seqPanel.moveCursor(0, 1); - } - else - moveSelectedSequences(false); - break; + case KeyEvent.VK_DOWN: + if (viewport.cursorMode) + { + alignPanel.seqPanel.moveCursor(0, 1); + } + else + { + moveSelectedSequences(false); + } + break; - case KeyEvent.VK_UP: - if (viewport.cursorMode) - { - alignPanel.seqPanel.moveCursor(0, -1); - } - else - moveSelectedSequences(true); - break; + case KeyEvent.VK_UP: + if (viewport.cursorMode) + { + alignPanel.seqPanel.moveCursor(0, -1); + } + else + { + moveSelectedSequences(true); + } + break; - case KeyEvent.VK_LEFT: - if (viewport.cursorMode) - { - alignPanel.seqPanel.moveCursor( -1, 0); - } - break; + case KeyEvent.VK_LEFT: + if (viewport.cursorMode) + { + alignPanel.seqPanel.moveCursor( -1, 0); + } + break; - case KeyEvent.VK_RIGHT: - if (viewport.cursorMode) - { - alignPanel.seqPanel.moveCursor(1, 0); - } - break; + case KeyEvent.VK_RIGHT: + if (viewport.cursorMode) + { + alignPanel.seqPanel.moveCursor(1, 0); + } + break; - case KeyEvent.VK_SPACE: - if (viewport.cursorMode) - { - alignPanel.seqPanel.insertGapAtCursor(evt.isControlDown() - || evt.isShiftDown() - || evt.isAltDown()); - } - break; + case KeyEvent.VK_SPACE: + if (viewport.cursorMode) + { + alignPanel.seqPanel.insertGapAtCursor(evt.isControlDown() + || evt.isShiftDown() + || evt.isAltDown()); + } + break; - case KeyEvent.VK_DELETE: - case KeyEvent.VK_BACK_SPACE: - if (!viewport.cursorMode) - { - cut_actionPerformed(null); - } - else - alignPanel.seqPanel.deleteGapAtCursor(evt.isControlDown() - || evt.isShiftDown() - || evt.isAltDown()); + case KeyEvent.VK_DELETE: + case KeyEvent.VK_BACK_SPACE: + if (!viewport.cursorMode) + { + cut_actionPerformed(null); + } + else + { + alignPanel.seqPanel.deleteGapAtCursor(evt.isControlDown() + || evt.isShiftDown() + || evt.isAltDown()); + } - break; + break; - case KeyEvent.VK_S: - if (viewport.cursorMode) - { - alignPanel.seqPanel.setCursorRow(); - } - break; - case KeyEvent.VK_C: - if (viewport.cursorMode && !evt.isControlDown()) - { - alignPanel.seqPanel.setCursorColumn(); - } - break; - case KeyEvent.VK_P: - if (viewport.cursorMode) - { - alignPanel.seqPanel.setCursorPosition(); - } - break; + case KeyEvent.VK_S: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setCursorRow(); + } + break; + case KeyEvent.VK_C: + if (viewport.cursorMode && !evt.isControlDown()) + { + alignPanel.seqPanel.setCursorColumn(); + } + break; + case KeyEvent.VK_P: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setCursorPosition(); + } + break; - case KeyEvent.VK_ENTER: - case KeyEvent.VK_COMMA: - if (viewport.cursorMode) - { - alignPanel.seqPanel.setCursorRowAndColumn(); - } - break; + case KeyEvent.VK_ENTER: + case KeyEvent.VK_COMMA: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setCursorRowAndColumn(); + } + break; - case KeyEvent.VK_Q: - if (viewport.cursorMode) - { - alignPanel.seqPanel.setSelectionAreaAtCursor(true); - } - break; - case KeyEvent.VK_M: - if (viewport.cursorMode) - { - alignPanel.seqPanel.setSelectionAreaAtCursor(false); - } - break; + case KeyEvent.VK_Q: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setSelectionAreaAtCursor(true); + } + break; + case KeyEvent.VK_M: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setSelectionAreaAtCursor(false); + } + break; - case KeyEvent.VK_F2: - viewport.cursorMode = !viewport.cursorMode; - statusBar.setText("Keyboard editing mode is " + - (viewport.cursorMode ? "on" : "off")); - if (viewport.cursorMode) - { - alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes; - alignPanel.seqPanel.seqCanvas.cursorY = viewport.startSeq; - } - alignPanel.seqPanel.seqCanvas.repaint(); - break; + case KeyEvent.VK_F2: + viewport.cursorMode = !viewport.cursorMode; + statusBar.setText("Keyboard editing mode is " + + (viewport.cursorMode ? "on" : "off")); + if (viewport.cursorMode) + { + alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes; + alignPanel.seqPanel.seqCanvas.cursorY = viewport.startSeq; + } + alignPanel.seqPanel.seqCanvas.repaint(); + break; - case KeyEvent.VK_F1: - try - { - ClassLoader cl = jalview.gui.Desktop.class.getClassLoader(); - java.net.URL url = javax.help.HelpSet.findHelpSet(cl, "help/help"); - javax.help.HelpSet hs = new javax.help.HelpSet(cl, url); + case KeyEvent.VK_F1: + try + { + ClassLoader cl = jalview.gui.Desktop.class.getClassLoader(); + java.net.URL url = javax.help.HelpSet.findHelpSet(cl, "help/help"); + javax.help.HelpSet hs = new javax.help.HelpSet(cl, url); - javax.help.HelpBroker hb = hs.createHelpBroker(); - hb.setCurrentID("home"); - hb.setDisplayed(true); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - break - ; - case KeyEvent.VK_H: + javax.help.HelpBroker hb = hs.createHelpBroker(); + hb.setCurrentID("home"); + hb.setDisplayed(true); + } + catch (Exception ex) { - boolean toggleSeqs = !evt.isControlDown(); - boolean toggleCols = !evt.isShiftDown(); + ex.printStackTrace(); + } + break + ; + case KeyEvent.VK_H: + { + boolean toggleSeqs = !evt.isControlDown(); + boolean toggleCols = !evt.isShiftDown(); - boolean hide = false; + boolean hide = false; - SequenceGroup sg = viewport.getSelectionGroup(); - if (toggleSeqs) + SequenceGroup sg = viewport.getSelectionGroup(); + if (toggleSeqs) + { + if (sg != null && sg.getSize() != viewport.alignment.getHeight()) { - if (sg != null && sg.getSize() != viewport.alignment.getHeight()) - { - hideSelSequences_actionPerformed(null); - hide = true; - } - else if (! (toggleCols && viewport.colSel.getSelected().size() > 0)) - showAllSeqs_actionPerformed(null); + hideSelSequences_actionPerformed(null); + hide = true; + } + else if (! (toggleCols && + viewport.colSel.getSelected().size() > 0)) + { + showAllSeqs_actionPerformed(null); } + } - if (toggleCols) + if (toggleCols) + { + if (viewport.colSel.getSelected().size() > 0) { - if (viewport.colSel.getSelected().size() > 0) + hideSelColumns_actionPerformed(null); + if (!toggleSeqs) { - hideSelColumns_actionPerformed(null); - if (!toggleSeqs) - viewport.selectionGroup = sg; + viewport.selectionGroup = sg; } - else if (!hide) - showAllColumns_actionPerformed(null); } - break; + else if (!hide) + { + showAllColumns_actionPerformed(null); + } } - 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; + break; } + 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; } - }); + } + }); } - public void addAlignmentPanel(final AlignmentPanel ap, boolean newPanel) { @@ -363,9 +390,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener int aSize = alignPanels.size(); - tabbedPane.setVisible(aSize>1 || ap.av.viewName!=null); + tabbedPane.setVisible(aSize > 1 || ap.av.viewName != null); - if (aSize == 1 && ap.av.viewName==null) + if (aSize == 1 && ap.av.viewName == null) { this.getContentPane().add(ap, BorderLayout.CENTER); } @@ -383,10 +410,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener ap.setVisible(false); } - if(newPanel) + if (newPanel) { if (ap.av.padGaps) + { ap.av.alignment.padGaps(); + } ap.av.updateConservation(ap); ap.av.updateConsensus(ap); } @@ -398,11 +427,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener gatherViews.setEnabled(true); tabbedPane.setVisible(true); AlignmentPanel first = (AlignmentPanel) alignPanels.firstElement(); - tabbedPane.addTab(first.av.viewName,first); + tabbedPane.addTab(first.av.viewName, first); this.getContentPane().add(tabbedPane, BorderLayout.CENTER); } - public AlignViewport getViewport() { return viewport; @@ -444,14 +472,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public void setGUINucleotide(boolean nucleotide) { - showTranslation.setVisible( nucleotide ); - conservationMenuItem.setEnabled( !nucleotide ); - modifyConservation.setEnabled( !nucleotide ); + showTranslation.setVisible(nucleotide); + conservationMenuItem.setEnabled(!nucleotide); + modifyConservation.setEnabled(!nucleotide); //Remember AlignFrame always starts as protein - if(!nucleotide) + if (!nucleotide) { - calculateMenu.remove(calculateMenu.getItemCount()-2); + calculateMenu.remove(calculateMenu.getItemCount() - 2); } } @@ -487,26 +515,29 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener updateEditMenuBar(); } - Hashtable progressBars; public void setProgressBar(String message, long id) { - if(progressBars == null) + if (progressBars == null) + { progressBars = new Hashtable(); + } JPanel progressPanel; GridLayout layout = (GridLayout) statusPanel.getLayout(); - if(progressBars.get( new Long(id) )!=null) - { - progressPanel = (JPanel)progressBars.get( new Long(id) ); - statusPanel.remove(progressPanel); - progressBars.remove( progressPanel ); - progressPanel = null; - if(message!=null) - statusBar.setText(message); - - layout.setRows(layout.getRows() - 1); - } + if (progressBars.get(new Long(id)) != null) + { + progressPanel = (JPanel) progressBars.get(new Long(id)); + statusPanel.remove(progressPanel); + progressBars.remove(progressPanel); + progressPanel = null; + if (message != null) + { + statusBar.setText(message); + } + + layout.setRows(layout.getRows() - 1); + } else { progressPanel = new JPanel(new BorderLayout(10, 5)); @@ -526,15 +557,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener validate(); } - - - /* Added so Castor Mapping file can obtain Jalview Version - */ + */ public String getVersion() { - return jalview.bin.Cache.getProperty("VERSION"); + return jalview.bin.Cache.getProperty("VERSION"); } public FeatureRenderer getFeatureRenderer() @@ -542,7 +570,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener return alignPanel.seqPanel.seqCanvas.getFeatureRenderer(); } - public void fetchSequence_actionPerformed(ActionEvent e) { new SequenceFetcher(this); @@ -555,21 +582,24 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public void reload_actionPerformed(ActionEvent e) { - if(fileName!=null) + if (fileName != null) { - if(currentFileFormat.equals("Jalview")) + if (currentFileFormat.equals("Jalview")) { - JInternalFrame [] frames = Desktop.desktop.getAllFrames(); - for(int i=0; i