From 648f0d7f48b5865bd43b5edbe71f5e483f0cc455 Mon Sep 17 00:00:00 2001 From: "j.procter@dundee.ac.uk" Date: Fri, 8 Aug 2014 18:08:09 +0100 Subject: [PATCH] JAL-1483 move show sequence feature and sequence feature height settings to view model --- src/MCview/AppletPDBCanvas.java | 2 +- src/MCview/PDBCanvas.java | 4 +-- src/jalview/api/AlignViewportI.java | 4 +++ src/jalview/appletgui/APopupMenu.java | 2 +- src/jalview/appletgui/AlignFrame.java | 6 ++-- src/jalview/appletgui/AlignViewport.java | 12 ------- src/jalview/appletgui/AppletJmol.java | 6 ++-- src/jalview/appletgui/AppletJmolBinding.java | 4 +-- src/jalview/appletgui/ExtJmol.java | 2 +- src/jalview/appletgui/Finder.java | 2 +- src/jalview/appletgui/OverviewPanel.java | 6 ++-- src/jalview/appletgui/SeqCanvas.java | 2 +- src/jalview/bin/JalviewLite.java | 2 +- src/jalview/gui/AlignFrame.java | 6 ++-- src/jalview/gui/AlignViewport.java | 30 ---------------- src/jalview/gui/AppJmol.java | 2 +- src/jalview/gui/AppJmolBinding.java | 4 +-- src/jalview/gui/Jalview2XML.java | 8 ++--- src/jalview/gui/Jalview2XML_V1.java | 2 +- src/jalview/gui/OverviewPanel.java | 4 +-- src/jalview/gui/SeqCanvas.java | 2 +- src/jalview/gui/SeqPanel.java | 2 +- .../javascript/MouseOverStructureListener.java | 2 +- src/jalview/viewmodel/AlignmentViewport.java | 38 ++++++++++++++++++-- 24 files changed, 74 insertions(+), 80 deletions(-) diff --git a/src/MCview/AppletPDBCanvas.java b/src/MCview/AppletPDBCanvas.java index a1bb272..9b0412a 100644 --- a/src/MCview/AppletPDBCanvas.java +++ b/src/MCview/AppletPDBCanvas.java @@ -550,7 +550,7 @@ public class AppletPDBCanvas extends Panel implements MouseListener, StructureMapping[] mapping = ssm.getMapping(pdbentry.getFile()); boolean showFeatures = false; - if (ap.av.getShowSequenceFeatures()) + if (ap.av.isShowSequenceFeatures()) { if (fr == null) { diff --git a/src/MCview/PDBCanvas.java b/src/MCview/PDBCanvas.java index dc0f718..4fd7a35 100644 --- a/src/MCview/PDBCanvas.java +++ b/src/MCview/PDBCanvas.java @@ -110,7 +110,7 @@ public class PDBCanvas extends JPanel implements MouseListener, boolean seqColoursReady = false; - jalview.gui.FeatureRenderer fr; + jalview.renderer.seqfeatures.FeatureRenderer fr; Color backgroundColour = Color.black; @@ -520,7 +520,7 @@ public class PDBCanvas extends JPanel implements MouseListener, StructureMapping[] mapping = ssm.getMapping(pdbentry.getFile()); boolean showFeatures = false; - if (ap.av.getShowSequenceFeatures()) + if (ap.av.isShowSequenceFeatures()) { if (fr == null) { diff --git a/src/jalview/api/AlignViewportI.java b/src/jalview/api/AlignViewportI.java index 9409e38..a97f464 100644 --- a/src/jalview/api/AlignViewportI.java +++ b/src/jalview/api/AlignViewportI.java @@ -195,4 +195,8 @@ public interface AlignViewportI String getSequenceSetId(); + boolean isShowSequenceFeatures(); + + void setShowSequenceFeatures(boolean b); + } diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index d98e2aa..7a77935 100644 --- a/src/jalview/appletgui/APopupMenu.java +++ b/src/jalview/appletgui/APopupMenu.java @@ -647,7 +647,7 @@ public class APopupMenu extends java.awt.PopupMenu implements features, true, ap)) { ap.alignFrame.sequenceFeatures.setState(true); - ap.av.showSequenceFeatures(true); + ap.av.setShowSequenceFeatures(true);; ap.highlightSearchResults(null); } } diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index cc1703c..e0dad58 100644 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -302,7 +302,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } if (autoenabledisplay) { - viewport.showSequenceFeatures = true; + viewport.setShowSequenceFeatures(true); sequenceFeatures.setState(true); } if (viewport.featureSettings != null) @@ -720,7 +720,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } else if (evt.getSource() == sequenceFeatures) { - viewport.showSequenceFeatures(sequenceFeatures.getState()); + viewport.setShowSequenceFeatures(sequenceFeatures.getState()); alignPanel.seqPanel.seqCanvas.repaint(); } else if (evt.getSource() == conservationMenuItem) @@ -2275,7 +2275,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { FeatureRenderer fr = null; this.sequenceFeatures.setState(true); - viewport.showSequenceFeatures(true); + viewport.setShowSequenceFeatures(true); if (alignPanel != null && (fr = alignPanel.getFeatureRenderer()) != null) { diff --git a/src/jalview/appletgui/AlignViewport.java b/src/jalview/appletgui/AlignViewport.java index f42f7ba..9a15e10 100644 --- a/src/jalview/appletgui/AlignViewport.java +++ b/src/jalview/appletgui/AlignViewport.java @@ -58,8 +58,6 @@ public class AlignViewport extends AlignmentViewport implements boolean renderGaps = true; - boolean showSequenceFeatures = false; - boolean showAnnotation = true; boolean upperCasebold = false; @@ -252,16 +250,6 @@ public class AlignViewport extends AlignmentViewport implements } - public void showSequenceFeatures(boolean b) - { - showSequenceFeatures = b; - } - - public boolean getShowSequenceFeatures() - { - return showSequenceFeatures; - } - /** * get the consensus sequence as displayed under the PID consensus annotation * row. diff --git a/src/jalview/appletgui/AppletJmol.java b/src/jalview/appletgui/AppletJmol.java index 3d1d0fb..0f317ae 100644 --- a/src/jalview/appletgui/AppletJmol.java +++ b/src/jalview/appletgui/AppletJmol.java @@ -520,7 +520,7 @@ public class AppletJmol extends EmbmenuFrame implements else if (evt.getSource() == seqColour) { setEnabled(seqColour); - jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap); + jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap); } else if (!allChainsSelected) centerViewer(); @@ -548,7 +548,7 @@ public class AppletJmol extends EmbmenuFrame implements public void updateColours(Object source) { AlignmentPanel ap = (AlignmentPanel) source; - jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap); + jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap); } public void updateTitleAndMenus() @@ -559,7 +559,7 @@ public class AppletJmol extends EmbmenuFrame implements return; } setChainMenuItems(jmb.chainNames); - jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap); + jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap); setTitle(jmb.getViewerTitle()); } diff --git a/src/jalview/appletgui/AppletJmolBinding.java b/src/jalview/appletgui/AppletJmolBinding.java index 650693d..d2a6e6c 100644 --- a/src/jalview/appletgui/AppletJmolBinding.java +++ b/src/jalview/appletgui/AppletJmolBinding.java @@ -52,7 +52,7 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding AlignmentViewPanel alignment) { AlignmentPanel ap = (AlignmentPanel) alignment; - if (appletJmolBinding.ap.av.showSequenceFeatures) + if (appletJmolBinding.ap.av.isShowSequenceFeatures()) { if (appletJmolBinding.fr == null) { @@ -105,7 +105,7 @@ class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding public void updateColours(Object source) { AlignmentPanel ap = (AlignmentPanel) source; - colourBySequence(ap.av.getShowSequenceFeatures(), ap); + colourBySequence(ap.av.isShowSequenceFeatures(), ap); } public void showUrl(String url) diff --git a/src/jalview/appletgui/ExtJmol.java b/src/jalview/appletgui/ExtJmol.java index 6389250..1efb971 100644 --- a/src/jalview/appletgui/ExtJmol.java +++ b/src/jalview/appletgui/ExtJmol.java @@ -78,7 +78,7 @@ public class ExtJmol extends JalviewJmolBinding public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment) { AlignmentPanel ap = (AlignmentPanel) alignment; - if (ap.av.showSequenceFeatures) + if (ap.av.isShowSequenceFeatures()) { return ap.getFeatureRenderer(); } diff --git a/src/jalview/appletgui/Finder.java b/src/jalview/appletgui/Finder.java index 6ca6ddf..4796bca 100644 --- a/src/jalview/appletgui/Finder.java +++ b/src/jalview/appletgui/Finder.java @@ -113,7 +113,7 @@ public class Finder extends Panel implements ActionListener features, true, ap)) { ap.alignFrame.sequenceFeatures.setState(true); - av.showSequenceFeatures(true); + av.setShowSequenceFeatures(true); ap.highlightSearchResults(null); } } diff --git a/src/jalview/appletgui/OverviewPanel.java b/src/jalview/appletgui/OverviewPanel.java index 2c2c41a..e646051 100755 --- a/src/jalview/appletgui/OverviewPanel.java +++ b/src/jalview/appletgui/OverviewPanel.java @@ -229,7 +229,7 @@ public class OverviewPanel extends Panel implements Runnable, return; } - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { fr.featureGroups = ap.seqPanel.seqCanvas.getFeatureRenderer().featureGroups; fr.featureColours = ap.seqPanel.seqCanvas.getFeatureRenderer().featureColours; @@ -260,7 +260,7 @@ public class OverviewPanel extends Panel implements Runnable, int alwidth = av.getAlignment().getWidth(); int alheight = av.getAlignment().getHeight(); - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { fr.transferSettings(ap.seqPanel.seqCanvas.getFeatureRenderer()); } @@ -337,7 +337,7 @@ public class OverviewPanel extends Panel implements Runnable, { color = sr.getResidueBoxColour(seq, lastcol); - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { color = fr.findFeatureColour(color, seq, lastcol); } diff --git a/src/jalview/appletgui/SeqCanvas.java b/src/jalview/appletgui/SeqCanvas.java index 33caf53..53cca3c 100755 --- a/src/jalview/appletgui/SeqCanvas.java +++ b/src/jalview/appletgui/SeqCanvas.java @@ -589,7 +589,7 @@ public class SeqCanvas extends Panel sr.drawSequence(nextSeq, av.getAlignment().findAllGroups(nextSeq), startRes, endRes, offset + ((i - startSeq) * av.charHeight)); - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { fr.drawSequence(g, nextSeq, startRes, endRes, offset + ((i - startSeq) * av.charHeight)); diff --git a/src/jalview/bin/JalviewLite.java b/src/jalview/bin/JalviewLite.java index 4e02984..009d0a2 100644 --- a/src/jalview/bin/JalviewLite.java +++ b/src/jalview/bin/JalviewLite.java @@ -1979,7 +1979,7 @@ public class JalviewLite extends Applet implements param = applet.getParameter("showFeatureSettings"); if (param != null && param.equalsIgnoreCase("true")) { - newAlignFrame.viewport.showSequenceFeatures(true); + newAlignFrame.viewport.setShowSequenceFeatures(true); new FeatureSettings(newAlignFrame.alignPanel); } diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index bf9888c..b958f90 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -739,7 +739,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, setColourSelected(ColourSchemeProperty.getColourName(av .getGlobalColourScheme())); - showSeqFeatures.setSelected(av.showSequenceFeatures); + showSeqFeatures.setSelected(av.isShowSequenceFeatures()); hiddenMarkers.setState(av.showHiddenMarkers); applyToAllGroups.setState(av.getColourAppliesToAllGroups()); showNpFeatsMenuitem.setSelected(av.isShowNpFeats()); @@ -3021,7 +3021,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { viewport.setShowSequenceFeaturesHeight(showSeqFeaturesHeight .isSelected()); - if (viewport.getShowSequenceFeaturesHeight()) + if (viewport.isShowSequenceFeaturesHeight()) { // ensure we're actually displaying features viewport.setShowSequenceFeatures(true); @@ -4795,7 +4795,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (featuresFile) { - viewport.showSequenceFeatures = true; + viewport.setShowSequenceFeatures(true); showSeqFeatures.setSelected(true); if (alignPanel.seqPanel.seqCanvas.fr != null) { diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index 3254005..a37ded9 100644 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -95,8 +95,6 @@ public class AlignViewport extends AlignmentViewport implements boolean renderGaps = true; - boolean showSequenceFeatures = false; - boolean showAnnotation = true; int charHeight; @@ -361,22 +359,6 @@ public class AlignViewport extends AlignmentViewport implements } /** - * set the flag - * - * @param b - * features are displayed if true - */ - public void setShowSequenceFeatures(boolean b) - { - showSequenceFeatures = b; - } - - public boolean getShowSequenceFeatures() - { - return showSequenceFeatures; - } - - /** * centre columnar annotation labels in displayed alignment annotation TODO: * add to jalviewXML and annotation display settings */ @@ -1092,8 +1074,6 @@ public class AlignViewport extends AlignmentViewport implements return followSelection; } - boolean showSeqFeaturesHeight; - public void sendSelection() { jalview.structure.StructureSelectionManager @@ -1102,16 +1082,6 @@ public class AlignViewport extends AlignmentViewport implements new ColumnSelection(getColumnSelection()), this); } - public void setShowSequenceFeaturesHeight(boolean selected) - { - showSeqFeaturesHeight = selected; - } - - public boolean getShowSequenceFeaturesHeight() - { - return showSeqFeaturesHeight; - } - /** * return the alignPanel containing the given viewport. Use this to get the * components currently handling the given viewport. diff --git a/src/jalview/gui/AppJmol.java b/src/jalview/gui/AppJmol.java index 6eb6ac3..08b0744 100644 --- a/src/jalview/gui/AppJmol.java +++ b/src/jalview/gui/AppJmol.java @@ -1020,7 +1020,7 @@ public class AppJmol extends GStructureViewer implements Runnable, // Set the colour using the current view for the associated alignframe for (AlignmentPanel ap : _colourwith) { - jmb.colourBySequence(ap.av.showSequenceFeatures, ap); + jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap); } } } diff --git a/src/jalview/gui/AppJmolBinding.java b/src/jalview/gui/AppJmolBinding.java index 35abb94..42a2f74 100644 --- a/src/jalview/gui/AppJmolBinding.java +++ b/src/jalview/gui/AppJmolBinding.java @@ -58,7 +58,7 @@ public class AppJmolBinding extends jalview.ext.jmol.JalviewJmolBinding { AlignmentPanel ap = (alignment == null) ? appJmolWindow.ap : (AlignmentPanel) alignment; - if (ap.av.showSequenceFeatures) + if (ap.av.isShowSequenceFeatures()) { if (fr == null) { @@ -133,7 +133,7 @@ public class AppJmolBinding extends jalview.ext.jmol.JalviewJmolBinding return; if (!isLoadingFromArchive()) { - colourBySequence(ap.av.getShowSequenceFeatures(), ap); + colourBySequence(ap.av.isShowSequenceFeatures(), ap); } } diff --git a/src/jalview/gui/Jalview2XML.java b/src/jalview/gui/Jalview2XML.java index 8cad9ca..3ab5a8d 100644 --- a/src/jalview/gui/Jalview2XML.java +++ b/src/jalview/gui/Jalview2XML.java @@ -1064,7 +1064,7 @@ public class Jalview2XML view.setShowColourText(av.getColourText()); view.setShowFullId(av.getShowJVSuffix()); view.setRightAlignIds(av.rightAlignIds); - view.setShowSequenceFeatures(av.showSequenceFeatures); + view.setShowSequenceFeatures(av.isShowSequenceFeatures()); view.setShowText(av.getShowText()); view.setShowUnconserved(av.getShowUnconserved()); view.setWrapAlignment(av.getWrapAlignment()); @@ -3432,10 +3432,8 @@ public class Jalview2XML af.viewport.setColourAppliesToAllGroups(true); - if (view.getShowSequenceFeatures()) - { - af.viewport.showSequenceFeatures = true; - } + af.viewport.setShowSequenceFeatures(view.getShowSequenceFeatures()); + if (view.hasCentreColumnLabels()) { af.viewport.setCentreColumnLabels(view.getCentreColumnLabels()); diff --git a/src/jalview/gui/Jalview2XML_V1.java b/src/jalview/gui/Jalview2XML_V1.java index 2e3b236..718677c 100755 --- a/src/jalview/gui/Jalview2XML_V1.java +++ b/src/jalview/gui/Jalview2XML_V1.java @@ -390,7 +390,7 @@ public class Jalview2XML_V1 } af.viewport.setColourAppliesToAllGroups(true); - af.viewport.showSequenceFeatures = view.getShowSequenceFeatures(); + af.viewport.setShowSequenceFeatures(view.getShowSequenceFeatures()); if (jms.getFeatureSettings() != null) { diff --git a/src/jalview/gui/OverviewPanel.java b/src/jalview/gui/OverviewPanel.java index e8555f7..5edf218 100755 --- a/src/jalview/gui/OverviewPanel.java +++ b/src/jalview/gui/OverviewPanel.java @@ -254,7 +254,7 @@ public class OverviewPanel extends JPanel implements Runnable { miniMe = null; - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { fr.transferSettings(ap.seqPanel.seqCanvas.getFeatureRenderer()); } @@ -344,7 +344,7 @@ public class OverviewPanel extends JPanel implements Runnable { color = sr.getResidueBoxColour(seq, lastcol).getRGB(); - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { color = fr.findFeatureColour(color, seq, lastcol); } diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index d5b81f1..03231c5 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -704,7 +704,7 @@ public class SeqCanvas extends JComponent sr.drawSequence(nextSeq, av.getAlignment().findAllGroups(nextSeq), startRes, endRes, offset + ((i - startSeq) * av.charHeight)); - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { fr.drawSequence(g, nextSeq, startRes, endRes, offset + ((i - startSeq) * av.charHeight)); diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index bf5ea93..4c2cff2 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -726,7 +726,7 @@ public class SeqPanel extends JPanel implements MouseListener, } // use aa to see if the mouse pointer is on a - if (av.showSequenceFeatures) + if (av.isShowSequenceFeatures()) { int rpos; SequenceFeature[] features = findFeaturesAtRes( diff --git a/src/jalview/javascript/MouseOverStructureListener.java b/src/jalview/javascript/MouseOverStructureListener.java index 465a672..2ecaf6c 100644 --- a/src/jalview/javascript/MouseOverStructureListener.java +++ b/src/jalview/javascript/MouseOverStructureListener.java @@ -202,7 +202,7 @@ public class MouseOverStructureListener extends JSFunctionExec implements SequenceRenderer sr = ((jalview.appletgui.AlignmentPanel) source) .getSequenceRenderer(); FeatureRenderer fr = ((jalview.appletgui.AlignmentPanel) source).av - .getShowSequenceFeatures() ? new jalview.appletgui.FeatureRenderer( + .isShowSequenceFeatures() ? new jalview.appletgui.FeatureRenderer( ((jalview.appletgui.AlignmentPanel) source).av) : null; if (fr != null) { diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index 5dd5aa3..cb97ea8 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -20,7 +20,6 @@ */ package jalview.viewmodel; -import jalview.analysis.AAFrequency; import jalview.analysis.Conservation; import jalview.api.AlignCalcManagerI; import jalview.api.AlignViewportI; @@ -36,7 +35,6 @@ import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.schemes.Blosum62ColourScheme; -import jalview.schemes.ClustalxColourScheme; import jalview.schemes.ColourSchemeI; import jalview.schemes.PIDColourScheme; import jalview.schemes.ResidueProperties; @@ -698,6 +696,7 @@ public abstract class AlignmentViewport implements AlignViewportI sequenceSetID = new String(newid); } + @Override public String getSequenceSetId() { if (sequenceSetID == null) @@ -1637,4 +1636,39 @@ public abstract class AlignmentViewport implements AlignViewportI return featuresDisplayed != null && featuresDisplayed.getRegisterdFeaturesCount()>0; } + /** + * display setting for showing/hiding sequence features on alignment view + */ + boolean showSequenceFeatures = false; + + /** + * set the flag + * + * @param b + * features are displayed if true + */ + @Override + public void setShowSequenceFeatures(boolean b) + { + showSequenceFeatures = b; + } + @Override + public boolean isShowSequenceFeatures() + { + return showSequenceFeatures; + } + + boolean showSeqFeaturesHeight; + + public void setShowSequenceFeaturesHeight(boolean selected) + { + showSeqFeaturesHeight = selected; + } + + public boolean isShowSequenceFeaturesHeight() + { + return showSeqFeaturesHeight; + } + + } -- 1.7.10.2