/*
- * 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.
*
* 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 <http://www.gnu.org/licenses/>.
+ * 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;
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;
{
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);
showConsensusHistogram.setState(viewport.isShowConsensusHistogram());
showSequenceLogo.setState(viewport.isShowSequenceLogo());
normSequenceLogo.setState(viewport.isNormaliseSequenceLogo());
-
+ applyToAllGroups.setState(viewport.getColourAppliesToAllGroups());
+
seqLimits.setState(viewport.showJVSuffix);
if (applet != null)
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())
}
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())
{
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()
{
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);
MenuItem grpsFromSelection = new MenuItem();
+ MenuItem createGroup = new MenuItem();
+
+ MenuItem unGroup = new MenuItem();
+
MenuItem delete = new MenuItem();
MenuItem copy = new MenuItem();
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"));
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"));
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();