annotationPanelMenuItem.setState(viewport.showAnnotation);
displayNonconservedMenuItem.setState(viewport.getShowunconserved());
followMouseOverFlag.setState(viewport.getFollowHighlight());
+ showGroupConsensus.setState(viewport.showGroupConsensus);
+ showGroupConservation.setState(viewport.showGroupConservation);
+ showConsensusHistogram.setState(viewport.showConsensusHistogram);
+ showSequenceLogo.setState(viewport.showSequenceLogo);
seqLimits.setState(viewport.showJVSuffix);
{
mouseOverFlag_stateChanged();
}
-
+ else if (evt.getSource() == showGroupConsensus)
+ {
+ showGroupConsensus_actionPerformed();
+ }
+ else if (evt.getSource() == showGroupConservation)
+ {
+ showGroupConservation_actionPerformed();
+ }
+ else if (evt.getSource() == showSequenceLogo)
+ {
+ showSequenceLogo_actionPerformed();
+ }
+ else if (evt.getSource() == showConsensusHistogram)
+ {
+ showConsensusHistogram_actionPerformed();
+ }
+ else if (evt.getSource() == applyAutoAnnotationSettings)
+ {
+ applyAutoAnnotationSettings_actionPerformed();
+ }
alignPanel.paintAlignment(true);
}
viewport.showAllHiddenSeqs();
alignPanel.paintAlignment(true);
}
+ else if (source == showGroupConsensus)
+ {
+ showGroupConsensus_actionPerformed();
+ }
+ else if (source == showGroupConservation)
+ {
+ showGroupConservation_actionPerformed();
+ }
+ else if (source == showSequenceLogo)
+ {
+ showSequenceLogo_actionPerformed();
+ }
+ else if (source == showConsensusHistogram)
+ {
+ showConsensusHistogram_actionPerformed();
+ }
+ else if (source == applyAutoAnnotationSettings)
+ {
+ applyAutoAnnotationSettings_actionPerformed();
+ }
else if (source == featureSettings)
{
new FeatureSettings(alignPanel);
viewport.sendSelection();
}
+ /**
+ * group consensus toggled
+ *
+ */
+ protected void showGroupConsensus_actionPerformed()
+ {
+ viewport.setShowGroupConsensus(showGroupConsensus.getState());
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+
+ }
+
+ /**
+ * group conservation toggled.
+ */
+ protected void showGroupConservation_actionPerformed()
+ {
+ viewport.setShowGroupConservation(showGroupConservation.getState());
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * jalview.jbgui.GAlignFrame#showConsensusHistogram_actionPerformed(java.awt
+ * .event.ActionEvent)
+ */
+ protected void showConsensusHistogram_actionPerformed()
+ {
+ viewport.setShowConsensusHistogram(showConsensusHistogram.getState());
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * jalview.jbgui.GAlignFrame#showConsensusProfile_actionPerformed(java.awt
+ * .event.ActionEvent)
+ */
+ protected void showSequenceLogo_actionPerformed()
+ {
+ viewport.setShowSequenceLogo(showSequenceLogo.getState());
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+ }
+
+ protected void applyAutoAnnotationSettings_actionPerformed()
+ {
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+ }
+
protected void makeGrpsFromSelection_actionPerformed()
{
if (viewport.getSelectionGroup() != null)
;
}
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
- // alignPanel.updateAnnotation();
+ alignPanel.updateAnnotation();
alignPanel.paintAlignment(true);
}
}
|| (viewport.getSelectionGroup() == null && viewport.alignment
.getHeight() > 1))
{
- final TreePanel tp = new TreePanel(viewport, type, pwType);
+ final TreePanel tp = new TreePanel(alignPanel, type, pwType);
addTreeMenuItem(tp, title);
public void loadTree(jalview.io.NewickFile tree, String treeFile)
{
- TreePanel tp = new TreePanel(viewport, treeFile, "From File - ", tree);
+ TreePanel tp = new TreePanel(alignPanel, treeFile, "From File - ", tree);
jalview.bin.JalviewLite.addFrame(tp, treeFile, 600, 500);
addTreeMenuItem(tp, treeFile);
}
CheckboxMenuItem seqLimits = new CheckboxMenuItem();
CheckboxMenuItem centreColumnLabelFlag = new CheckboxMenuItem();
-
+
CheckboxMenuItem followMouseOverFlag = new CheckboxMenuItem();
+ Menu autoAnnMenu=new Menu();
+ CheckboxMenuItem showSequenceLogo= new CheckboxMenuItem();
+ CheckboxMenuItem applyAutoAnnotationSettings = new CheckboxMenuItem();
+ CheckboxMenuItem showConsensusHistogram = new CheckboxMenuItem();
+ CheckboxMenuItem showGroupConsensus = new CheckboxMenuItem();
+ CheckboxMenuItem showGroupConservation = new CheckboxMenuItem();
private void jbInit() throws Exception
{
hideAllButSelection.setLabel("All but Selected Region (Shift+Ctrl+H)");
hideAllSelection.setLabel("Selected Region");
showAllHidden.setLabel("All Sequences and Columns");
+ showGroupConsensus.setLabel("Group Consensus");
+ showGroupConservation.setLabel("Group Conservation");
+ showConsensusHistogram.setLabel("Show Consensus Histogram");
+ showSequenceLogo.setLabel("Show Consensus Logo");
+ applyAutoAnnotationSettings.setLabel("Apply to all groups");
+ applyAutoAnnotationSettings.setState(true);
+ autoAnnMenu.setLabel("Autocalculated Annotation");
+
invertColSel.addActionListener(this);
showColumns.addActionListener(this);
showSeqs.addActionListener(this);
hideAllButSelection.addActionListener(this);
hideAllSelection.addActionListener(this);
showAllHidden.addActionListener(this);
+ showGroupConsensus.addItemListener(this);
+ showGroupConservation.addItemListener(this);
+ showConsensusHistogram.addItemListener(this);
+ showSequenceLogo.addItemListener(this);
+ applyAutoAnnotationSettings.addItemListener(this);
formatMenu.setLabel("Format");
selectMenu.setLabel("Select");
newView.setLabel("New View");
viewMenu.addSeparator();
viewMenu.add(followMouseOverFlag);
viewMenu.add(annotationPanelMenuItem);
+ autoAnnMenu.add(applyAutoAnnotationSettings);
+ autoAnnMenu.add(showConsensusHistogram);
+ autoAnnMenu.add(showSequenceLogo);
+ autoAnnMenu.addSeparator();
+ autoAnnMenu.add(showGroupConservation);
+ autoAnnMenu.add(showGroupConsensus);
+ viewMenu.add(autoAnnMenu);
viewMenu.addSeparator();
viewMenu.add(sequenceFeatures);
viewMenu.add(featureSettings);
followHighlight = Boolean.valueOf(param).booleanValue();
followSelection = followHighlight;
}
+ if ((param=applet.getParameter("showSequenceLogo"))!=null) {
+ showSequenceLogo=Boolean.valueOf(param).booleanValue();
+ }
+ if ((param=applet.getParameter("showGroupConsensus"))!=null) {
+ showGroupConsensus=Boolean.valueOf(param).booleanValue();
+ }
+ if ((param=applet.getParameter("showGroupConservation"))!=null) {
+ showGroupConservation=Boolean.valueOf(param).booleanValue();
+ }
+ if ((param=applet.getParameter("showConsensusHistogram"))!=null) {
+ showConsensusHistogram=Boolean.valueOf(param).booleanValue();
+ }
+
}
if (applet != null)
AAFrequency.calculate(alignment.getSequencesArray(), 0,
alignment.getWidth(), hconsensus, true); // always calculate the
// full profile
- AAFrequency.completeConsensus(consensus, hconsensus, 0, aWidth,
- ignoreGapsInConsensusCalculation,
- includeAllConsensusSymbols);
-
+ updateAnnotation(true);
+ //AAFrequency.completeConsensus(consensus, hconsensus, 0, aWidth,
+ // ignoreGapsInConsensusCalculation,
+ // true);
+
if (globalColourScheme != null)
{
globalColourScheme.setConsensus(hconsensus);
ap.paintAlignment(true);
}
}
+
+ /**
+ * update the consensus annotation from the sequence profile data using
+ * current visualization settings.
+ */
+ public void updateAnnotation()
+ {
+ updateAnnotation(false);
+ }
+
+ protected void updateAnnotation(boolean immediate)
+ {
+ // TODO: make calls thread-safe, so if another thread calls this method,
+ // it will either return or wait until one calculation is finished.
+ if (immediate
+ || (!updatingConsensus && consensus != null && hconsensus != null))
+ {
+ AAFrequency.completeConsensus(consensus, hconsensus, 0,
+ hconsensus.length, ignoreGapsInConsensusCalculation,
+ showSequenceLogo);
+ }
+ }
}
/**
{
if (consensus == null)
{
+ updateConsensus(null);
+ }
+ if (consensus == null)
+ {
return null;
}
StringBuffer seqs = new StringBuffer();
}
return false;
}
+ public void sendSelection()
+ {
+ jalview.structure.StructureSelectionManager
+ .getStructureSelectionManager().sendSelection(
+ new SequenceGroup(getSelectionGroup()),
+ new ColumnSelection(getColumnSelection()), this);
+ }
+
+
+
/**
* show non-conserved residues only
}
/**
- * consensus annotation includes all percentage for all symbols in column
- * DISABLED FOR 2.5 RELEASE (bug #60064 logo rendering is not AWT 1.1
- * compatible)
- */
- private boolean includeAllConsensusSymbols = false;
-
- /**
- * should conservation rows be shown for groups DISABLED FOR 2.5 RELEASE (bug
- * 62446)
+ * should conservation rows be shown for groups
*/
boolean showGroupConservation = false;
/**
- * should consensus rows be shown for groups DISABLED FOR 2.5 RELEASE (bug
- * 62446)
+ * should consensus rows be shown for groups
*/
boolean showGroupConsensus = false;
/**
- * should consensus profile be rendered by default DISABLED FOR 2.5 RELEASE
- * (bug #60064 logo rendering is not AWT 1.1 compatible)
+ * should consensus profile be rendered by default
*/
public boolean showSequenceLogo = false;
/**
* @param showSequenceLogo
- * the new value public void setShowSequenceLogo(boolean
- * showSequenceLogo) { this.showSequenceLogo = showSequenceLogo; }
+ * the new value
*/
+ public void setShowSequenceLogo(boolean showSequenceLogo)
+ {
+ if (showSequenceLogo != this.showSequenceLogo)
+ {
+ // TODO: decouple settings setting from calculation when refactoring
+ // annotation update method from alignframe to viewport
+ this.showSequenceLogo = showSequenceLogo;
+ if (consensusThread != null)
+ {
+ consensusThread.updateAnnotation();
+ }
+ }
+ this.showSequenceLogo = showSequenceLogo;
+ }
+
/**
- * @param showGroupConsensus
- * the showGroupConsensus to set
+ * @param showConsensusHistogram
+ * the showConsensusHistogram to set
*/
- public void setShowGroupConsensus(boolean showGroupConsensus)
+ public void setShowConsensusHistogram(boolean showConsensusHistogram)
{
- this.showGroupConsensus = showGroupConsensus;
+ this.showConsensusHistogram = showConsensusHistogram;
}
/**
- * @return the includeAllConsensusSymbols
+ * @return the showGroupConservation
*/
- public boolean isIncludeAllConsensusSymbols()
+ public boolean isShowGroupConservation()
{
- return false;
+ return showGroupConservation;
+ }
+
+ /**
+ * @param showGroupConservation
+ * the showGroupConservation to set
+ */
+ public void setShowGroupConservation(boolean showGroupConservation)
+ {
+ this.showGroupConservation = showGroupConservation;
+ }
+
+ /**
+ * @return the showGroupConsensus
+ */
+ public boolean isShowGroupConsensus()
+ {
+ return showGroupConsensus;
+ }
+
+ /**
+ * @param showGroupConsensus
+ * the showGroupConsensus to set
+ */
+ public void setShowGroupConsensus(boolean showGroupConsensus)
+ {
+ this.showGroupConsensus = showGroupConsensus;
}
/**
}
}
}
- public void sendSelection()
- {
- jalview.structure.StructureSelectionManager
- .getStructureSelectionManager().sendSelection(
- new SequenceGroup(getSelectionGroup()),
- new ColumnSelection(getColumnSelection()), this);
- }
-
-
}
SequenceNode highlightNode;
- public TreeCanvas(AlignViewport av, ScrollPane scroller)
+ AlignmentPanel ap;
+ public TreeCanvas(AlignmentPanel ap, ScrollPane scroller)
{
- this.av = av;
+ this.ap = ap;
+ this.av = ap.av;
font = av.getFont();
scrollPane = scroller;
addMouseListener(this);
av.alignment.addGroup(sg);
}
-
+ ap.updateAnnotation();
+
}
public void setShowDistances(boolean state)
TreeCanvas treeCanvas;
NJTree tree;
+ AlignmentPanel ap;
AlignViewport av;
* @param e
* DOCUMENT ME!
*/
- public TreePanel(AlignViewport av, String type, String pwtype)
+ public TreePanel(AlignmentPanel ap, String type, String pwtype)
{
try
{
ex.printStackTrace();
}
- initTreePanel(av, type, pwtype, null);
+ initTreePanel(ap, type, pwtype, null);
}
/**
* @param pwtype
* DOCUMENT ME!
*/
- public TreePanel(AlignViewport av, String type, String pwtype,
+ public TreePanel(AlignmentPanel ap, String type, String pwtype,
NewickFile newtree)
{
try
e.printStackTrace();
}
- initTreePanel(av, type, pwtype, newtree);
+ initTreePanel(ap, type, pwtype, newtree);
}
- void initTreePanel(AlignViewport av, String type, String pwtype,
+ void initTreePanel(AlignmentPanel ap, String type, String pwtype,
NewickFile newTree)
{
- this.av = av;
+ this.ap = ap;
+ this.av = ap.av;
this.type = type;
this.pwtype = pwtype;
- treeCanvas = new TreeCanvas(av, scrollPane);
+ treeCanvas = new TreeCanvas(ap, scrollPane);
TreeLoader tl = new TreeLoader(newTree);
tl.start();
embedMenuIfNeeded(treeCanvas);