X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=0756e2da307cdecbe6c6dee1a084313673e49e7a;hb=4484ac6bdcc92f0e0e430f64d3587f026fafb476;hp=ae814c19943ded422aa2191bbb3403741ad52e3e;hpb=dcf795defdc686708f6b5a00f9089855a68a7733;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index ae814c1..0756e2d 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -57,11 +57,13 @@ public class AlignFrame Vector alignPanels = new Vector(); + /** DOCUMENT ME!! */ String currentFileFormat = null; String fileName = null; + /** * Creates a new AlignFrame object. * @@ -72,6 +74,7 @@ public class AlignFrame this(al, null, width, height); } + /** * new alignment window with hidden columns * @param al AlignmentI @@ -85,7 +88,7 @@ public class AlignFrame alignPanel = new AlignmentPanel(this, viewport); - if (al.getDataset() == null) + if(al.getDataset()==null) { al.setDataset(null); } @@ -116,9 +119,9 @@ public class AlignFrame 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"); @@ -133,252 +136,268 @@ public class AlignFrame } 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); + } if (jalview.bin.Cache.getDefault("SHOW_OVERVIEW",false)) { this.overviewMenuItem_actionPerformed(null); } - addKeyListener(); + 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() - { - public void keyPressed(KeyEvent evt) + addKeyListener(new KeyAdapter() { - if (viewport.cursorMode - && evt.getKeyCode() >= KeyEvent.VK_0 - && evt.getKeyCode() <= KeyEvent.VK_9) + public void keyPressed(KeyEvent evt) { - alignPanel.seqPanel.numberPressed(evt.getKeyChar()); - } + if (viewport.cursorMode + && evt.getKeyCode() >= KeyEvent.VK_0 + && evt.getKeyCode() <= KeyEvent.VK_9) + { + 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 - { + case KeyEvent.VK_DOWN: + if (evt.isAltDown() || !viewport.cursorMode) moveSelectedSequences(false); - } - break; + if (viewport.cursorMode) + alignPanel.seqPanel.moveCursor(0, 1); + break; - case KeyEvent.VK_UP: - if (viewport.cursorMode) - { - alignPanel.seqPanel.moveCursor(0, -1); - } - else - { + case KeyEvent.VK_UP: + if (evt.isAltDown() || !viewport.cursorMode) moveSelectedSequences(true); - } - break; + if (viewport.cursorMode) + alignPanel.seqPanel.moveCursor(0, -1); - case KeyEvent.VK_LEFT: - if (viewport.cursorMode) - { - alignPanel.seqPanel.moveCursor( -1, 0); - } - break; + break; - case KeyEvent.VK_RIGHT: - if (viewport.cursorMode) - { - alignPanel.seqPanel.moveCursor(1, 0); - } - break; + case KeyEvent.VK_LEFT: + if (evt.isAltDown() || !viewport.cursorMode) + slideSequences(false, + alignPanel.seqPanel.getKeyboardNo1()); + else + alignPanel.seqPanel.moveCursor( -1, 0); - 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); - } + break; + + case KeyEvent.VK_RIGHT: + if (evt.isAltDown() || !viewport.cursorMode) + slideSequences(true, + alignPanel.seqPanel.getKeyboardNo1()); else - { - alignPanel.seqPanel.deleteGapAtCursor(evt.isControlDown() - || evt.isShiftDown() - || evt.isAltDown()); - } + alignPanel.seqPanel.moveCursor(1, 0); + break; - break; + case KeyEvent.VK_SPACE: + if (viewport.cursorMode) + { + alignPanel.seqPanel.insertGapAtCursor(evt.isControlDown() + || evt.isShiftDown() + || evt.isAltDown()); + } + 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) + case KeyEvent.VK_DELETE: + case KeyEvent.VK_BACK_SPACE: + if (!viewport.cursorMode) + { + cut_actionPerformed(null); + } + else { - alignPanel.seqPanel.setCursorPosition(); + alignPanel.seqPanel.deleteGapAtCursor(evt.isControlDown() + || evt.isShiftDown() + || evt.isAltDown()); } - break; - case KeyEvent.VK_ENTER: - case KeyEvent.VK_COMMA: - if (viewport.cursorMode) - { - alignPanel.seqPanel.setCursorRowAndColumn(); - } - break; + 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_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_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_ENTER: + case KeyEvent.VK_COMMA: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setCursorRowAndColumn(); + } + 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_Q: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setSelectionAreaAtCursor(true); + } + break; + case KeyEvent.VK_M: + if (viewport.cursorMode) + { + alignPanel.seqPanel.setSelectionAreaAtCursor(false); + } + break; - javax.help.HelpBroker hb = hs.createHelpBroker(); - hb.setCurrentID("home"); - hb.setDisplayed(true); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - break - ; - case KeyEvent.VK_H: - { - boolean toggleSeqs = !evt.isControlDown(); - boolean toggleCols = !evt.isShiftDown(); + 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; - boolean hide = false; + 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); - SequenceGroup sg = viewport.getSelectionGroup(); - if (toggleSeqs) - { - if (sg != null && sg.getSize() != viewport.alignment.getHeight()) + javax.help.HelpBroker hb = hs.createHelpBroker(); + hb.setCurrentID("home"); + hb.setDisplayed(true); + } + catch (Exception ex) { - hideSelSequences_actionPerformed(null); - hide = true; + ex.printStackTrace(); } + break + ; + case KeyEvent.VK_H: + { + boolean toggleSeqs = !evt.isControlDown(); + boolean toggleCols = !evt.isShiftDown(); + + boolean hide = false; + + SequenceGroup sg = viewport.getSelectionGroup(); + if (toggleSeqs) + { + if (sg != null && sg.getSize() != viewport.alignment.getHeight()) + { + hideSelSequences_actionPerformed(null); + hide = true; + } else if (! (toggleCols && viewport.colSel.getSelected().size() > 0)) { - showAllSeqs_actionPerformed(null); + showAllSeqs_actionPerformed(null); } } - if (toggleCols) - { - if (viewport.colSel.getSelected().size() > 0) + if (toggleCols) { - hideSelColumns_actionPerformed(null); - if (!toggleSeqs) + if (viewport.colSel.getSelected().size() > 0) + { + hideSelColumns_actionPerformed(null); + if (!toggleSeqs) { - viewport.selectionGroup = sg; + viewport.selectionGroup = sg; } } - else if (!hide) + else if (!hide) { - showAllColumns_actionPerformed(null); + showAllColumns_actionPerformed(null); } } - break; - } - case KeyEvent.VK_PAGE_UP: - if (viewport.wrapAlignment) + break; + } + case KeyEvent.VK_PAGE_UP: + if (viewport.wrapAlignment) { - alignPanel.scrollUp(true); + alignPanel.scrollUp(true); } - else + else { - alignPanel.setScrollValues(viewport.startRes, - viewport.startSeq - - viewport.endSeq + viewport.startSeq); + alignPanel.setScrollValues(viewport.startRes, + viewport.startSeq + - viewport.endSeq + viewport.startSeq); } - break; - case KeyEvent.VK_PAGE_DOWN: - if (viewport.wrapAlignment) + break; + case KeyEvent.VK_PAGE_DOWN: + if (viewport.wrapAlignment) { - alignPanel.scrollUp(false); + alignPanel.scrollUp(false); } - else + else { - alignPanel.setScrollValues(viewport.startRes, - viewport.startSeq - + viewport.endSeq - viewport.startSeq); + alignPanel.setScrollValues(viewport.startRes, + viewport.startSeq + + viewport.endSeq - viewport.startSeq); } + break; + } + } + + public void keyReleased(KeyEvent evt) + { + switch(evt.getKeyCode()) + { + case KeyEvent.VK_LEFT: + if (evt.isAltDown() || !viewport.cursorMode) + viewport.firePropertyChange("alignment", null, + viewport.getAlignment().getSequences()); + break; + + case KeyEvent.VK_RIGHT: + if (evt.isAltDown() || !viewport.cursorMode) + viewport.firePropertyChange("alignment", null, + viewport.getAlignment().getSequences()); break; } } - }); + }); } + public void addAlignmentPanel(final AlignmentPanel ap, boolean newPanel) { @@ -390,9 +409,9 @@ public class AlignFrame 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); } @@ -410,7 +429,7 @@ public class AlignFrame ap.setVisible(false); } - if (newPanel) + if(newPanel) { if (ap.av.padGaps) { @@ -427,10 +446,11 @@ public class AlignFrame 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; @@ -472,14 +492,14 @@ public class AlignFrame 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); } } @@ -515,29 +535,30 @@ public class AlignFrame 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) + 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); + statusBar.setText(message); } - layout.setRows(layout.getRows() - 1); - } + layout.setRows(layout.getRows() - 1); + } else { progressPanel = new JPanel(new BorderLayout(10, 5)); @@ -557,12 +578,15 @@ public class AlignFrame 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() @@ -570,6 +594,7 @@ public class AlignFrame return alignPanel.seqPanel.seqCanvas.getFeatureRenderer(); } + public void fetchSequence_actionPerformed(ActionEvent e) { new SequenceFetcher(this); @@ -582,12 +607,12 @@ public class AlignFrame 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 < frames.length; i++) + JInternalFrame [] frames = Desktop.desktop.getAllFrames(); + for(int i=0; i