showUnconserved view and group setting
authorjprocter <Jim Procter>
Fri, 6 Feb 2009 14:53:55 +0000 (14:53 +0000)
committerjprocter <Jim Procter>
Fri, 6 Feb 2009 14:53:55 +0000 (14:53 +0000)
src/jalview/gui/AlignFrame.java
src/jalview/gui/AlignViewport.java
src/jalview/gui/Jalview2XML.java
src/jalview/gui/PopupMenu.java
src/jalview/gui/Preferences.java
src/jalview/gui/SequenceRenderer.java
src/jalview/jbgui/GAlignFrame.java

index 1feffa5..33ac298 100755 (executable)
@@ -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
index 0536f8d..d07b010 100755 (executable)
@@ -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;
+  }
 }
index 115477d..db53d00 100755 (executable)
@@ -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());
 
index f16e647..5cf06b2 100755 (executable)
@@ -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()
   {
index bd4c900..aa4d193 100755 (executable)
@@ -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
   {
index a3dd5a6..98329b4 100755 (executable)
@@ -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!
index a4f0983..0249e76 100755 (executable)
@@ -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)
   {