From 5feda00b43b9156b7a86b232b63a5da0736113ee Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 6 Feb 2009 14:53:55 +0000 Subject: [PATCH] showUnconserved view and group setting --- src/jalview/gui/AlignFrame.java | 13 +++++++++++-- src/jalview/gui/AlignViewport.java | 11 ++++++++++- src/jalview/gui/Jalview2XML.java | 6 ++++-- src/jalview/gui/PopupMenu.java | 22 ++++++++++++++++++++-- src/jalview/gui/Preferences.java | 13 ++++++++++++- src/jalview/gui/SequenceRenderer.java | 20 ++++++++++++++++++++ src/jalview/jbgui/GAlignFrame.java | 24 +++++++++++++++++++++--- 7 files changed, 98 insertions(+), 11 deletions(-) diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 1feffa5..33ac298 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -600,7 +600,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, annotationPanelMenuItem.setState(av.showAnnotation); viewBoxesMenuItem.setSelected(av.showBoxes); viewTextMenuItem.setSelected(av.showText); - + showUnconservedMenuItem.setSelected(av.showUnconserved); setColourSelected(ColourSchemeProperty.getColourName(av .getGlobalColourScheme())); @@ -3764,7 +3764,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, showProducts.removeAll(); final boolean dna = viewport.getAlignment().isNucleotide(); final Alignment ds = dataset; - String[] ptypes = CrossRef.findSequenceXrefTypes(dna, selection, + String[] ptypes = (selection==null || selection.length==0) ? null + : CrossRef.findSequenceXrefTypes(dna, selection, dataset); // Object[] prods = // CrossRef.buildXProductsList(viewport.getAlignment().isNucleotide(), @@ -4332,6 +4333,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, showSeqFeatures.setSelected(true); viewport.setShowSequenceFeatures(true); } + /* (non-Javadoc) + * @see jalview.jbgui.GAlignFrame#showUnconservedMenuItem_actionPerformed(java.awt.event.ActionEvent) + */ + protected void showUnconservedMenuItem_actionPerformed(ActionEvent e) + { + viewport.setShowUnconserved(showUnconservedMenuItem.getState()); + alignPanel.paintAlignment(true); + } } class PrintThread extends Thread diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index 0536f8d..d07b010 100755 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -373,6 +373,7 @@ public class AlignViewport implements SelectionSource } wrapAlignment = jalview.bin.Cache.getDefault("WRAP_ALIGNMENT", false); + showUnconserved = jalview.bin.Cache.getDefault("SHOW_UNCONSERVED", false); } /** @@ -2197,5 +2198,13 @@ public class AlignViewport implements SelectionSource { return showSeqFeaturesHeight; } - + boolean showUnconserved=false; + public boolean getShowUnconserved() + { + return showUnconserved; + } + public void setShowUnconserved(boolean showunconserved) + { + showUnconserved=showunconserved; + } } diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index 115477d..db53d00 100755 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -915,7 +915,7 @@ public class Jalview2XML groups[i].setTextCol1(sg.textColour.getRGB()); groups[i].setTextCol2(sg.textColour2.getRGB()); groups[i].setTextColThreshold(sg.thresholdTextColour); - + groups[i].setShowUnconserved(sg.getShowunconserved()); for (int s = 0; s < sg.getSize(); s++) { jalview.datamodel.Sequence seq = (jalview.datamodel.Sequence) sg @@ -1022,6 +1022,7 @@ public class Jalview2XML view.setRightAlignIds(av.rightAlignIds); view.setShowSequenceFeatures(av.showSequenceFeatures); view.setShowText(av.getShowText()); + view.setShowUnconserved(av.getShowUnconserved()); view.setWrapAlignment(av.getWrapAlignment()); view.setTextCol1(av.textColour.getRGB()); view.setTextCol2(av.textColour2.getRGB()); @@ -2130,6 +2131,7 @@ public class Jalview2XML sg.textColour = new java.awt.Color(groups[i].getTextCol1()); sg.textColour2 = new java.awt.Color(groups[i].getTextCol2()); + sg.setShowunconserved(groups[i].hasShowUnconserved() ? groups[i].isShowUnconserved() : false); sg.thresholdTextColour = groups[i].getTextColThreshold(); if (groups[i].getConsThreshold() != 0) @@ -2531,7 +2533,7 @@ public class Jalview2XML af.viewport.textColour = new java.awt.Color(view.getTextCol1()); af.viewport.textColour2 = new java.awt.Color(view.getTextCol2()); af.viewport.thresholdTextColour = view.getTextColThreshold(); - + af.viewport.setShowUnconserved(view.hasShowUnconserved() ? view.isShowUnconserved() : false); af.viewport.setStartRes(view.getStartRes()); af.viewport.setStartSeq(view.getStartSeq()); diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index f16e647..5cf06b2 100755 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -94,6 +94,8 @@ public class PopupMenu extends JPopupMenu JCheckBoxMenuItem showColourText = new JCheckBoxMenuItem(); + JCheckBoxMenuItem displayNonconserved = new JCheckBoxMenuItem(); + JMenu editMenu = new JMenu(); JMenuItem cut = new JMenuItem(); @@ -378,7 +380,7 @@ public class PopupMenu extends JPopupMenu { conservationMenuItem.setSelected(true); } - + displayNonconserved.setSelected(sg.getShowunconserved()); showText.setSelected(sg.getDisplayText()); showColourText.setSelected(sg.getColourText()); showBoxes.setSelected(sg.getDisplayBoxes()); @@ -616,6 +618,15 @@ public class PopupMenu extends JPopupMenu showColourText_actionPerformed(); } }); + displayNonconserved.setText("Show Nonconserved"); + displayNonconserved.setState(true); + displayNonconserved.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + showNonconserved_actionPerformed(); + } + }); editMenu.setText("Edit"); cut.setText("Cut"); cut.addActionListener(new ActionListener() @@ -781,6 +792,7 @@ public class PopupMenu extends JPopupMenu jMenu1.add(showText); jMenu1.add(showColourText); jMenu1.add(outline); + jMenu1.add(displayNonconserved); structureMenu.add(pdbMenu); structureMenu.add(viewStructureMenu); // structureMenu.add(colStructureMenu); @@ -901,8 +913,14 @@ public class PopupMenu extends JPopupMenu }); } + protected void showNonconserved_actionPerformed() + { + getGroup().setShowunconserved(displayNonconserved.isSelected()); + refresh(); + } + /** - * DOCUMENT ME! + * call to refresh view after settings change */ void refresh() { diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index bd4c900..aa4d193 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -22,6 +22,7 @@ import java.util.*; import java.awt.*; import java.awt.event.*; + import javax.swing.*; import jalview.bin.*; @@ -37,6 +38,7 @@ import jalview.schemes.*; */ public class Preferences extends GPreferences { + /** * Holds name and link separated with | character. Sequence ID must be * $SEQUENCE_ID$ or $SEQUENCE_ID=/.possible | chars ./=$ @@ -111,6 +113,7 @@ public class Preferences extends GPreferences quality.setSelected(Cache.getDefault("SHOW_QUALITY", true)); identity.setSelected(Cache.getDefault("SHOW_IDENTITY", true)); openoverv.setSelected(Cache.getDefault("SHOW_OVERVIEW", false)); + showUnconserved.setSelected(Cache.getDefault("SHOW_UNCONSERVED", false)); for (int i = 0; i < 13; i++) { @@ -255,7 +258,7 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("ID_ITALICS", Boolean .toString(idItalics.isSelected())); - + Cache.applicationProperties.setProperty("SHOW_UNCONSERVED",Boolean.toString(showUnconserved.isSelected())); Cache.applicationProperties.setProperty("ANTI_ALIAS", Boolean .toString(smoothFont.isSelected())); @@ -535,6 +538,14 @@ public class Preferences extends GPreferences } } + /* (non-Javadoc) + * @see jalview.jbgui.GPreferences#showunconserved_actionPerformed(java.awt.event.ActionEvent) + */ + protected void showunconserved_actionPerformed(ActionEvent e) + { + // TODO Auto-generated method stub + super.showunconserved_actionPerformed(e); + } private void jbInit() throws Exception { diff --git a/src/jalview/gui/SequenceRenderer.java b/src/jalview/gui/SequenceRenderer.java index a3dd5a6..98329b4 100755 --- a/src/jalview/gui/SequenceRenderer.java +++ b/src/jalview/gui/SequenceRenderer.java @@ -324,6 +324,12 @@ public class SequenceRenderer { graphics.setColor(currentSequenceGroup.textColour); } + if (currentSequenceGroup.getShowunconserved()) // todo optimize + { + // todo - use sequence group consensus + s = getDisplayChar(av.consensus, i, s, '.'); + + } } else @@ -361,6 +367,11 @@ public class SequenceRenderer graphics.setColor(av.textColour2); } } + if (av.showUnconserved) + { + s = getDisplayChar(av.consensus, i, s, '.'); + + } } @@ -371,6 +382,15 @@ public class SequenceRenderer } } } + private char getDisplayChar(AlignmentAnnotation consensus, int position, char s, char c) + { + char conschar = consensus.annotations[position].displayCharacter.charAt(0); + if (conschar!='-' && s==conschar) + { + s= c; + } + return s; + } /** * DOCUMENT ME! diff --git a/src/jalview/jbgui/GAlignFrame.java b/src/jalview/jbgui/GAlignFrame.java index a4f0983..0249e76 100755 --- a/src/jalview/jbgui/GAlignFrame.java +++ b/src/jalview/jbgui/GAlignFrame.java @@ -122,6 +122,8 @@ public class GAlignFrame extends JInternalFrame public JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem(); + public JCheckBoxMenuItem showUnconservedMenuItem = new JCheckBoxMenuItem(); + JMenuItem htmlMenuItem = new JMenuItem(); JMenuItem overviewMenuItem = new JMenuItem(); @@ -621,6 +623,15 @@ public class GAlignFrame extends JInternalFrame viewTextMenuItem_actionPerformed(e); } }); + showUnconservedMenuItem.setText("Show Unconserved"); + showUnconservedMenuItem.setState(false); + showUnconservedMenuItem.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(ActionEvent e) + { + showUnconservedMenuItem_actionPerformed(e); + } + }); sortPairwiseMenuItem.setText("by Pairwise Identity"); sortPairwiseMenuItem .addActionListener(new java.awt.event.ActionListener() @@ -1552,9 +1563,9 @@ public class GAlignFrame extends JInternalFrame editMenu.add(removeAllGapsMenuItem); editMenu.add(removeRedundancyMenuItem); editMenu.addSeparator(); - // dont add these yet - they cannot be undone! - //editMenu.add(justifyLeftMenuItem); - //editMenu.add(justifyRightMenuItem); + // dont add these yet in the CVS build - they cannot be undone! + editMenu.add(justifyLeftMenuItem); + editMenu.add(justifyRightMenuItem); editMenu.addSeparator(); editMenu.add(padGapsMenuitem); viewMenu.add(newView); @@ -1651,6 +1662,7 @@ public class GAlignFrame extends JInternalFrame formatMenu.add(colourTextMenuItem); formatMenu.add(renderGapsMenuItem); formatMenu.add(centreColumnLabelsMenuItem); + formatMenu.add(showUnconservedMenuItem); selectMenu.add(findMenuItem); selectMenu.addSeparator(); selectMenu.add(selectAllSequenceMenuItem); @@ -1660,6 +1672,12 @@ public class GAlignFrame extends JInternalFrame selectMenu.add(deleteGroups); } + protected void showUnconservedMenuItem_actionPerformed(ActionEvent e) + { + // TODO Auto-generated method stub + + } + protected void showSeqFeaturesHeight_actionPerformed( ActionEvent actionEvent) { -- 1.7.10.2