From: Jim Procter Date: Mon, 7 Oct 2013 16:33:16 +0000 (+0100) Subject: JAL-1385 JAL-535 refactor sequence colour settings to abstract alignment view model X-Git-Tag: Jalview_2_9~200^2~18^2~6 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;ds=sidebyside;h=7c581704d0ce30ffad302f199e0f44f689cd32fb;p=jalview.git JAL-1385 JAL-535 refactor sequence colour settings to abstract alignment view model --- diff --git a/src/jalview/api/AlignViewportI.java b/src/jalview/api/AlignViewportI.java index 15e5f1d..5f759b8 100644 --- a/src/jalview/api/AlignViewportI.java +++ b/src/jalview/api/AlignViewportI.java @@ -159,11 +159,17 @@ public interface AlignViewportI void updateGroupAnnotationSettings(boolean applyGlobalSettings, boolean preserveNewGroupSettings); + void setSequenceColour(SequenceI seq, Color col); + + Color getSequenceColour(SequenceI seq); + + void updateSequenceIdColours(); SequenceGroup getSelectionGroup(); SequenceI[] getSequenceSelection(); + void clearSequenceColours(); CigarArray getViewAsCigars(boolean selectedRegionOnly); diff --git a/src/jalview/appletgui/AlignViewport.java b/src/jalview/appletgui/AlignViewport.java index cc04b58..9e4f071 100644 --- a/src/jalview/appletgui/AlignViewport.java +++ b/src/jalview/appletgui/AlignViewport.java @@ -91,8 +91,6 @@ public class AlignViewport extends AlignmentViewport implements public jalview.bin.JalviewLite applet; - Hashtable sequenceColours; - boolean MAC = false; Stack historyList = new Stack(); @@ -592,35 +590,6 @@ public class AlignViewport extends AlignmentViewport implements showHiddenMarkers = show; } - public Color getSequenceColour(SequenceI seq) - { - if (sequenceColours == null || !sequenceColours.containsKey(seq)) - { - return Color.white; - } - else - { - return (Color) sequenceColours.get(seq); - } - } - - public void setSequenceColour(SequenceI seq, Color col) - { - if (sequenceColours == null) - { - sequenceColours = new Hashtable(); - } - - if (col == null) - { - sequenceColours.remove(seq); - } - else - { - sequenceColours.put(seq, col); - } - } - boolean centreColumnLabels; public boolean getCentreColumnLabels() @@ -628,21 +597,6 @@ public class AlignViewport extends AlignmentViewport implements return centreColumnLabels; } - public void updateSequenceIdColours() - { - - for (SequenceGroup sg : alignment.getGroups()) - { - if (sg.idColour != null) - { - for (SequenceI s : sg.getSequences(getHiddenRepSequences())) - { - this.setSequenceColour(s, sg.idColour); - } - } - } - } - public boolean followHighlight = true; public boolean getFollowHighlight() diff --git a/src/jalview/appletgui/TreeCanvas.java b/src/jalview/appletgui/TreeCanvas.java index 5c62234..68ffd7a 100755 --- a/src/jalview/appletgui/TreeCanvas.java +++ b/src/jalview/appletgui/TreeCanvas.java @@ -578,7 +578,7 @@ public class TreeCanvas extends Panel implements MouseListener, av.setSelectionGroup(null); av.getAlignment().deleteAllGroups(); - av.sequenceColours = null; + av.clearSequenceColours(); colourGroups(); diff --git a/src/jalview/gui/AlignViewport.java b/src/jalview/gui/AlignViewport.java index 7a01b27..407fa94 100644 --- a/src/jalview/gui/AlignViewport.java +++ b/src/jalview/gui/AlignViewport.java @@ -138,8 +138,6 @@ public class AlignViewport extends AlignmentViewport implements Stack redoList = new Stack(); - Hashtable sequenceColours; - int thresholdTextColour = 0; Color textColour = Color.black; @@ -934,35 +932,6 @@ public class AlignViewport extends AlignmentViewport implements showHiddenMarkers = show; } - public Color getSequenceColour(SequenceI seq) - { - if (sequenceColours == null || !sequenceColours.containsKey(seq)) - { - return Color.white; - } - else - { - return (Color) sequenceColours.get(seq); - } - } - - public void setSequenceColour(SequenceI seq, Color col) - { - if (sequenceColours == null) - { - sequenceColours = new Hashtable(); - } - - if (col == null) - { - sequenceColours.remove(seq); - } - else - { - sequenceColours.put(seq, col); - } - } - /** * returns the visible column regions of the alignment * @@ -1044,23 +1013,6 @@ public class AlignViewport extends AlignmentViewport implements centreColumnLabels = centrecolumnlabels; } - public void updateSequenceIdColours() - { - if (sequenceColours == null) - { - sequenceColours = new Hashtable(); - } - for (SequenceGroup sg : alignment.getGroups()) - { - if (sg.idColour != null) - { - for (SequenceI s : sg.getSequences(getHiddenRepSequences())) - { - sequenceColours.put(s, sg.idColour); - } - } - } - } /** * enable or disable the display of Database Cross References in the sequence diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index d1003e5..22c89ea 100755 --- a/src/jalview/gui/TreeCanvas.java +++ b/src/jalview/gui/TreeCanvas.java @@ -852,7 +852,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, { aps[a].av.setSelectionGroup(null); aps[a].av.getAlignment().deleteAllGroups(); - aps[a].av.sequenceColours = null; + aps[a].av.clearSequenceColours(); } colourGroups(); } diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index dc352f4..cceff86 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -40,6 +40,7 @@ import jalview.workers.AlignCalcManager; import jalview.workers.ConsensusThread; import jalview.workers.StrucConsensusThread; +import java.awt.Color; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; @@ -783,6 +784,8 @@ public abstract class AlignmentViewport implements AlignViewportI protected boolean showConsensus = true; + Hashtable sequenceColours; + /** * Property change listener for changes in alignment * @@ -1542,4 +1545,60 @@ public abstract class AlignmentViewport implements AlignViewportI oldrfs.clear(); } + @Override + public Color getSequenceColour(SequenceI seq) + { + Color sqc=Color.white; + if (sequenceColours != null) + { + sqc = (Color) sequenceColours.get(seq); + if (sqc == null) { + sqc = Color.white; + } + } + return sqc; + } + + @Override + public void setSequenceColour(SequenceI seq, Color col) + { + if (sequenceColours == null) + { + sequenceColours = new Hashtable(); + } + + if (col == null) + { + sequenceColours.remove(seq); + } + else + { + sequenceColours.put(seq, col); + } + } + + @Override + public void updateSequenceIdColours() + { + if (sequenceColours == null) + { + sequenceColours = new Hashtable(); + } + for (SequenceGroup sg : alignment.getGroups()) + { + if (sg.idColour != null) + { + for (SequenceI s : sg.getSequences(getHiddenRepSequences())) + { + sequenceColours.put(s, sg.idColour); + } + } + } + } + + @Override + public void clearSequenceColours() + { + sequenceColours = null; + }; }