X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=3c5c9561ad8f5892a767234a621ad53e08c53062;hb=b2f9a8d7bce642ff4011bc6d49e02bb0569fbb11;hp=865f0d485bb4daf71879902d5d134169367a8178;hpb=21c29b20790ac555b2e2a124a034f6c6b4486270;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 865f0d4..3c5c956 100644 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * @@ -14,11 +14,14 @@ * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.appletgui; import jalview.analysis.AlignmentSorter; import jalview.analysis.Conservation; +import jalview.api.AlignViewControllerGuiI; +import jalview.api.AlignViewControllerI; import jalview.api.SequenceStructureBinding; import jalview.bin.JalviewLite; import jalview.commands.CommandI; @@ -91,8 +94,9 @@ import java.util.StringTokenizer; import java.util.Vector; public class AlignFrame extends EmbmenuFrame implements ActionListener, - ItemListener, KeyListener + ItemListener, KeyListener, AlignViewControllerGuiI { + public AlignViewControllerI avc; public AlignmentPanel alignPanel; public AlignViewport viewport; @@ -118,10 +122,31 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { ex.printStackTrace(); } - + // need to get window geometry before we calculate alignment layout + if (applet != null) + { + String param; + try + { + param = applet.getParameter("windowWidth"); + if (param != null) + { + int width = Integer.parseInt(param); + DEFAULT_WIDTH = width; + } + param = applet.getParameter("windowHeight"); + if (param != null) + { + int height = Integer.parseInt(param); + DEFAULT_HEIGHT = height; + } + } catch (Exception ex) + { + } + } viewport = new AlignViewport(al, applet); alignPanel = new AlignmentPanel(this, viewport); - + avc = new jalview.controller.AlignViewController(this, viewport, alignPanel); viewport.updateConservation(alignPanel); viewport.updateConsensus(alignPanel); @@ -133,7 +158,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, showConsensusHistogram.setState(viewport.isShowConsensusHistogram()); showSequenceLogo.setState(viewport.isShowSequenceLogo()); normSequenceLogo.setState(viewport.isNormaliseSequenceLogo()); - + applyToAllGroups.setState(viewport.getColourAppliesToAllGroups()); + seqLimits.setState(viewport.showJVSuffix); if (applet != null) @@ -170,23 +196,6 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, centreColumnLabelFlag.setState(true); centreColumnLabelFlag_stateChanged(); } - try - { - param = applet.getParameter("windowWidth"); - if (param != null) - { - int width = Integer.parseInt(param); - DEFAULT_WIDTH = width; - } - param = applet.getParameter("windowHeight"); - if (param != null) - { - int height = Integer.parseInt(param); - DEFAULT_HEIGHT = height; - } - } catch (Exception ex) - { - } } if (viewport.getAlignment().isNucleotide()) @@ -542,6 +551,20 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } break; + case KeyEvent.VK_G: + if (evt.isControlDown()) + { + if (evt.isShiftDown()) + { + this.unGroup_actionPerformed(); + } + else + { + this.createGroup_actionPerformed(); + } + } + break; + case KeyEvent.VK_U: if (evt.isControlDown()) { @@ -1887,41 +1910,30 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, protected void makeGrpsFromSelection_actionPerformed() { - if (viewport.getSelectionGroup() != null) - { - SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom( - viewport.getSequenceSelection(), - viewport.getAlignmentView(true).getSequenceStrings( - viewport.getGapCharacter()), viewport.getAlignment() - .getGroups()); - viewport.getAlignment().deleteAllGroups(); - viewport.sequenceColours = null; - viewport.setSelectionGroup(null); - // set view properties for each group - for (int g = 0; g < gps.length; g++) - { - // gps[g].setShowunconserved(viewport.getShowUnconserved()); - gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo()); - viewport.getAlignment().addGroup(gps[g]); - Color col = new Color((int) (Math.random() * 255), - (int) (Math.random() * 255), (int) (Math.random() * 255)); - col = col.brighter(); - for (SequenceI sq : gps[g].getSequences(null)) - viewport.setSequenceColour(sq, col); - } + if (avc.makeGroupsFromSelection()) { PaintRefresher.Refresh(this, viewport.getSequenceSetId()); alignPanel.updateAnnotation(); alignPanel.paintAlignment(true); } } + protected void createGroup_actionPerformed() + { + avc.createGroup(); + } + protected void unGroup_actionPerformed() + { + if (avc.unGroup()) + { + alignPanel.alignmentChanged(); + } + } protected void deleteGroups_actionPerformed() { - viewport.getAlignment().deleteAllGroups(); - viewport.sequenceColours = null; - viewport.setSelectionGroup(null); - - alignPanel.paintAlignment(true); + if (avc.deleteGroups()) + { + alignPanel.alignmentChanged(); + } } public void selectAllSequenceMenuItem_actionPerformed() @@ -2316,42 +2328,20 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { if (viewport.getAbovePIDThreshold()) { - threshold = SliderPanel.setPIDSliderSource(alignPanel, cs, - "Background"); - - cs.setThreshold(threshold, viewport.getIgnoreGapsConsensus()); - - viewport.setGlobalColourScheme(cs); - } - else - { - cs.setThreshold(0, viewport.getIgnoreGapsConsensus()); - } + viewport.setThreshold(SliderPanel.setPIDSliderSource(alignPanel, cs, + "Background")); + } if (viewport.getConservationSelected()) { - - Alignment al = (Alignment) viewport.getAlignment(); - Conservation c = new Conservation("All", - ResidueProperties.propHash, 3, al.getSequences(), 0, - al.getWidth() - 1); - - c.calculate(); - c.verdict(false, viewport.getConsPercGaps()); - - cs.setConservation(c); - - cs.setConservationInc(SliderPanel.setConservationSlider(alignPanel, + cs.setConservationApplied(true); + viewport.setIncrement(SliderPanel.setConservationSlider(alignPanel, cs, "Background")); - } else { - cs.setConservation(null); + cs.setConservationApplied(false); } - - cs.setConsensus(viewport.getSequenceConsensusHash()); - } viewport.setGlobalColourScheme(cs); @@ -2866,6 +2856,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, MenuItem grpsFromSelection = new MenuItem(); + MenuItem createGroup = new MenuItem(); + + MenuItem unGroup = new MenuItem(); + MenuItem delete = new MenuItem(); MenuItem copy = new MenuItem(); @@ -3074,6 +3068,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, deleteGroups.addActionListener(this); grpsFromSelection.setLabel(MessageManager.getString("action.make_groups_selection")); grpsFromSelection.addActionListener(this); + createGroup.setLabel(MessageManager.getString("action.create_group")); + unGroup.setLabel(MessageManager.getString("action.remove_group")); copy.setLabel(MessageManager.getString("action.copy")); copy.addActionListener(this); cut.setLabel(MessageManager.getString("action.cut")); @@ -3138,7 +3134,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, menu1.setLabel(MessageManager.getString("action.show")); showColumns.setLabel(MessageManager.getString("label.all_columns")); showSeqs.setLabel(MessageManager.getString("label.all_sequences")); - menu2.setLabel(MessageManager.getString("aciton.hide")); + menu2.setLabel(MessageManager.getString("action.hide")); hideColumns.setLabel(MessageManager.getString("label.selected_columns")); hideSequences.setLabel(MessageManager.getString("label.selected_sequences")); hideAllButSelection.setLabel(MessageManager.getString("label.all_but_selected_region")); @@ -3302,11 +3298,18 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, selectMenu.add(deselectAllSequenceMenuItem); selectMenu.add(invertSequenceMenuItem); selectMenu.add(invertColSel); + selectMenu.add(createGroup); + selectMenu.add(unGroup); selectMenu.add(grpsFromSelection); selectMenu.add(deleteGroups); } + + public void setStatus(String string) { + statusBar.setText(string); + }; + MenuItem featureSettings = new MenuItem(); CheckboxMenuItem sequenceFeatures = new CheckboxMenuItem();