X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=0756e2da307cdecbe6c6dee1a084313673e49e7a;hb=4484ac6bdcc92f0e0e430f64d3587f026fafb476;hp=28cb157cbf08333f053bb9925454569e1c9380fe;hpb=6c0768c219bdf3230f86a02fa9ac3136368cb3be;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 28cb157..0756e2d 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; @@ -58,11 +59,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener /** DOCUMENT ME!! */ - public String currentFileFormat = null; + String currentFileFormat = null; - public String fileName = null; + String fileName = null; - private int treeCount = 0; /** * Creates a new AlignFrame object. @@ -127,9 +127,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener 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) { @@ -144,14 +148,24 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener wrapMenuItem_actionPerformed(null); } + 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); } void addKeyListener() { - final AlignFrame af = this; addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent evt) @@ -165,37 +179,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener switch (evt.getKeyCode()) { - case KeyEvent.VK_V: - if (!evt.isControlDown()) - { - AlignmentPanel newap = - new Jalview2XML().copyAlignPanel(alignPanel, true); - - if(viewport.viewName==null) - viewport.viewName="View 1"; - - newap.av.historyList = viewport.historyList; - newap.av.redoList = viewport.redoList; - newap.av.viewName = "View " + - (Desktop.getViewCount(viewport.getSequenceSetId())+1); - - addAlignmentPanel(newap, false); - - tabbedPane.setSelectedIndex(tabbedPane.getTabCount()-1); - - } - break; - case KeyEvent.VK_G: - Desktop.instance.gatherViews(af); - break; - - case KeyEvent.VK_X: - if (!evt.isControlDown()) - { - Desktop.instance.explodeViews(af); - } - break; - case 27: // escape key deselectAllSequenceMenuItem_actionPerformed(null); @@ -203,35 +186,36 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener break; case KeyEvent.VK_DOWN: + if (evt.isAltDown() || !viewport.cursorMode) + moveSelectedSequences(false); if (viewport.cursorMode) - { alignPanel.seqPanel.moveCursor(0, 1); - } - else - moveSelectedSequences(false); break; case KeyEvent.VK_UP: + if (evt.isAltDown() || !viewport.cursorMode) + moveSelectedSequences(true); if (viewport.cursorMode) - { alignPanel.seqPanel.moveCursor(0, -1); - } - else - moveSelectedSequences(true); + break; case KeyEvent.VK_LEFT: - if (viewport.cursorMode) - { + if (evt.isAltDown() || !viewport.cursorMode) + slideSequences(false, + alignPanel.seqPanel.getKeyboardNo1()); + else alignPanel.seqPanel.moveCursor( -1, 0); - } + + break; case KeyEvent.VK_RIGHT: - if (viewport.cursorMode) - { + if (evt.isAltDown() || !viewport.cursorMode) + slideSequences(true, + alignPanel.seqPanel.getKeyboardNo1()); + else alignPanel.seqPanel.moveCursor(1, 0); - } break; case KeyEvent.VK_SPACE: @@ -250,9 +234,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener cut_actionPerformed(null); } else + { alignPanel.seqPanel.deleteGapAtCursor(evt.isControlDown() || evt.isShiftDown() || evt.isAltDown()); + } break; @@ -335,14 +321,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener SequenceGroup sg = viewport.getSelectionGroup(); if (toggleSeqs) { - if (sg != null && sg.getSize(false) != viewport.alignment.getHeight()) + if (sg != null && sg.getSize() != viewport.alignment.getHeight()) { hideSelSequences_actionPerformed(null); hide = true; } - else if (! (toggleCols && viewport.colSel.getSelected().size() > 0)) + else if (! (toggleCols && + viewport.colSel.getSelected().size() > 0)) + { showAllSeqs_actionPerformed(null); } + } if (toggleCols) { @@ -350,31 +339,61 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { hideSelColumns_actionPerformed(null); if (!toggleSeqs) + { viewport.selectionGroup = sg; } + } else if (!hide) + { showAllColumns_actionPerformed(null); } + } 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 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; + } + } }); } @@ -386,6 +405,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener alignPanels.addElement(ap); + PaintRefresher.Register(ap, ap.av.getSequenceSetId()); + int aSize = alignPanels.size(); tabbedPane.setVisible(aSize>1 || ap.av.viewName!=null); @@ -398,24 +419,37 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { if (aSize == 2) { - AlignmentPanel first = (AlignmentPanel) alignPanels.firstElement(); - tabbedPane.addTab(first.av.viewName==null?"Original":first.av.viewName,first); - - this.getContentPane().add(tabbedPane, BorderLayout.CENTER); + setInitialTabVisible(); } - tabbedPane.addTab(ap.av.viewName==null?"Original":ap.av.viewName, ap); + expandViews.setEnabled(true); + gatherViews.setEnabled(true); + tabbedPane.addTab(ap.av.viewName, ap); ap.setVisible(false); } if(newPanel) { - ap.av.updateConsensus(ap); + if (ap.av.padGaps) + { + ap.av.alignment.padGaps(); + } ap.av.updateConservation(ap); + ap.av.updateConsensus(ap); } } + public void setInitialTabVisible() + { + expandViews.setEnabled(true); + gatherViews.setEnabled(true); + tabbedPane.setVisible(true); + AlignmentPanel first = (AlignmentPanel) alignPanels.firstElement(); + tabbedPane.addTab(first.av.viewName,first); + this.getContentPane().add(tabbedPane, BorderLayout.CENTER); + } + public AlignViewport getViewport() { @@ -450,7 +484,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { // System.out.println("deregistering discoverer listener"); Desktop.discoverer.removePropertyChangeListener(thisListener); - closeMenuItem_actionPerformed(null); + closeMenuItem_actionPerformed(true); } ; }); @@ -476,12 +510,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener */ void setMenusFromViewport(AlignViewport av) { + padGapsMenuitem.setSelected(av.padGaps); colourTextMenuItem.setSelected(av.showColourText); abovePIDThreshold.setSelected(av.getAbovePIDThreshold()); conservationMenuItem.setSelected(av.getConservationSelected()); seqLimits.setSelected(av.getShowJVSuffix()); + idRightAlign.setSelected(av.rightAlignIds); renderGapsMenuItem.setSelected(av.renderGaps); wrapMenuItem.setSelected(av.wrapAlignment); + scaleAbove.setVisible(av.wrapAlignment); + scaleLeft.setVisible(av.wrapAlignment); + scaleRight.setVisible(av.wrapAlignment); annotationPanelMenuItem.setState(av.showAnnotation); viewBoxesMenuItem.setSelected(av.showBoxes); viewTextMenuItem.setSelected(av.showText); @@ -492,7 +531,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener showSeqFeatures.setSelected(av.showSequenceFeatures); hiddenMarkers.setState(av.showHiddenMarkers); applyToAllGroups.setState(av.colourAppliesToAllGroups); - smoothFont.setState(av.antiAlias); updateEditMenuBar(); } @@ -502,7 +540,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener public void setProgressBar(String message, long id) { if(progressBars == null) + { progressBars = new Hashtable(); + } JPanel progressPanel; GridLayout layout = (GridLayout) statusPanel.getLayout(); @@ -513,7 +553,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener progressBars.remove( progressPanel ); progressPanel = null; if(message!=null) + { statusBar.setText(message); + } layout.setRows(layout.getRows() - 1); } @@ -567,15 +609,44 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener { if(fileName!=null) { - viewport.alignment.deleteAllGroups(); - while (viewport.alignment.getHeight() > 0) + if(currentFileFormat.equals("Jalview")) { - viewport.alignment.deleteSequence(0); + JInternalFrame [] frames = Desktop.desktop.getAllFrames(); + for(int i=0; i