+package jalview.viewmodel.styles;
+
+import jalview.api.ViewStyleI;
+
+import java.awt.Color;
+
+/**
+ * A container for holding alignment view properties. View properties are
+ * data-independent, which means they can be safely copied between views
+ * involving different alignment data without causing exceptions in the
+ * rendering system.
+ *
+ * @author jprocter
+ *
+ */
+public class ViewStyle implements ViewStyleI
+{
+
+ private boolean abovePIDThreshold = false;
+
+ int charHeight;
+
+ int charWidth;
+
+ /**
+ * gui state - changes to colour scheme propagated to all groups
+ */
+ private boolean colourAppliesToAllGroups;
+
+ /**
+ * colour according to the reference sequence defined on the alignment
+ */
+ private boolean colourByReferenceSeq = false;
+
+ boolean conservationColourSelected = false;
+
+ /**
+ * show the reference sequence in the alignment view
+ */
+ private boolean displayReferenceSeq = false;
+
+ private int increment;
+
+ /**
+ * display gap characters
+ */
+ boolean renderGaps = true;
+
+ private boolean rightAlignIds = false;
+
+ boolean scaleAboveWrapped = false;
+
+ boolean scaleLeftWrapped = true;
+
+ boolean scaleRightWrapped = true;
+
+ boolean seqNameItalics;
+
+ /**
+ * show annotation tracks on the alignment
+ */
+ private boolean showAnnotation = true;
+
+ /**
+ * render each residue in a coloured box
+ */
+ boolean showBoxes = true;
+
+ /**
+ * Colour sequence text
+ */
+ boolean showColourText = false;
+
+ /**
+ * show blue triangles
+ */
+ boolean showHiddenMarkers = true;
+
+ /**
+ * show /start-end in ID panel
+ */
+ boolean showJVSuffix = true;
+
+ /**
+ * scale features height according to score
+ */
+ boolean showSeqFeaturesHeight;
+
+ /**
+ * display setting for showing/hiding sequence features on alignment view
+ */
+ boolean showSequenceFeatures = false;
+
+ /**
+ * display sequence symbols
+ */
+ boolean showText = true;
+
+ /**
+ * show non-conserved residues only
+ */
+ protected boolean showUnconserved = false;
+
+ Color textColour = Color.black;
+
+ Color textColour2 = Color.white;
+
+ /**
+ * PID or consensus threshold
+ */
+ int threshold;
+
+ /**
+ * threshold for switching between textColour & textColour2
+ */
+ int thresholdTextColour = 0;
+
+ /**
+ * upper case characters in sequence are shown in bold
+ */
+ boolean upperCasebold = false;
+
+ /**
+ * @return the upperCasebold
+ */
+ @Override
+ public boolean isUpperCasebold()
+ {
+ return upperCasebold;
+ }
+
+ /**
+ * @param upperCasebold
+ * the upperCasebold to set
+ */
+ @Override
+ public void setUpperCasebold(boolean upperCasebold)
+ {
+ this.upperCasebold = upperCasebold;
+ }
+
+ /**
+ * flag for wrapping
+ */
+ boolean wrapAlignment = false;
+
+ /**
+ * number columns in wrapped alignment
+ */
+ int wrappedWidth;
+
+ /**
+ * GUI state
+ *
+ * @return true if percent identity threshold is applied to shading
+ */
+ @Override
+ public boolean getAbovePIDThreshold()
+ {
+ return abovePIDThreshold;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public int getCharHeight()
+ {
+ return charHeight;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public int getCharWidth()
+ {
+ return charWidth;
+ }
+
+ /**
+ *
+ *
+ * @return flag indicating if colourchanges propagated to all groups
+ */
+ @Override
+ public boolean getColourAppliesToAllGroups()
+ {
+ return colourAppliesToAllGroups;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getColourText()
+ {
+ return showColourText;
+ }
+
+ /**
+ * GUI state
+ *
+ * @return true if conservation based shading is enabled
+ */
+ @Override
+ public boolean getConservationSelected()
+ {
+ return conservationColourSelected;
+ }
+
+ /**
+ * GUI State
+ *
+ * @return get scalar for bleaching colourschemes by conservation
+ */
+ @Override
+ public int getIncrement()
+ {
+ return increment;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getScaleAboveWrapped()
+ {
+ return scaleAboveWrapped;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getScaleLeftWrapped()
+ {
+ return scaleLeftWrapped;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getScaleRightWrapped()
+ {
+ return scaleRightWrapped;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getShowBoxes()
+ {
+ return showBoxes;
+ }
+
+ @Override
+ public boolean getShowHiddenMarkers()
+ {
+ return showHiddenMarkers;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getShowJVSuffix()
+ {
+ return showJVSuffix;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getShowText()
+ {
+ return showText;
+ }
+
+ @Override
+ public boolean getShowUnconserved()
+ {
+ return showUnconserved;
+ }
+
+ /**
+ * @return the textColour
+ */
+ @Override
+ public Color getTextColour()
+ {
+ return textColour;
+ }
+
+ /**
+ * @return the textColour2
+ */
+ @Override
+ public Color getTextColour2()
+ {
+ return textColour2;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public int getThreshold()
+ {
+ return threshold;
+ }
+
+ /**
+ * @return the thresholdTextColour
+ */
+ @Override
+ public int getThresholdTextColour()
+ {
+ return thresholdTextColour;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public boolean getWrapAlignment()
+ {
+ return wrapAlignment;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ public int getWrappedWidth()
+ {
+ return wrappedWidth;
+ }
+
+ @Override
+ public boolean isColourByReferenceSeq()
+ {
+ return colourByReferenceSeq;
+ }
+
+ /**
+ * @return the conservationColourSelected
+ */
+ @Override
+ public boolean isConservationColourSelected()
+ {
+ return conservationColourSelected;
+ }
+
+ @Override
+ public boolean isDisplayReferenceSeq()
+ {
+ return displayReferenceSeq;
+ }
+
+ /**
+ * @return the renderGaps
+ */
+ @Override
+ public boolean isRenderGaps()
+ {
+ return renderGaps;
+ }
+
+ @Override
+ public boolean isRightAlignIds()
+ {
+ return rightAlignIds;
+ }
+
+ /**
+ * @return the seqNameItalics
+ */
+ @Override
+ public boolean isSeqNameItalics()
+ {
+ return seqNameItalics;
+ }
+
+ @Override
+ public boolean isShowAnnotation()
+ {
+ return showAnnotation;
+ }
+
+ /**
+ * @return the showColourText
+ */
+ @Override
+ public boolean isShowColourText()
+ {
+ return showColourText;
+ }
+
+ /**
+ * @return the showSeqFeaturesHeight
+ */
+ @Override
+ public boolean isShowSeqFeaturesHeight()
+ {
+ return showSeqFeaturesHeight;
+ }
+
+ @Override
+ public boolean isShowSequenceFeatures()
+ {
+ return showSequenceFeatures;
+ }
+
+ @Override
+ public boolean isShowSequenceFeaturesHeight()
+ {
+
+ return showSeqFeaturesHeight;
+ }
+
+ /**
+ * GUI state
+ *
+ *
+ * @param b
+ * indicate if percent identity threshold is applied to shading
+ */
+ @Override
+ public void setAbovePIDThreshold(boolean b)
+ {
+ abovePIDThreshold = b;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param h
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setCharHeight(int h)
+ {
+ this.charHeight = h;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param w
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setCharWidth(int w)
+ {
+ this.charWidth = w;
+ }
+
+
+ /**
+ * @param value
+ * indicating if subsequent colourscheme changes will be propagated
+ * to all groups
+ */
+ @Override
+ public void setColourAppliesToAllGroups(boolean b)
+ {
+ colourAppliesToAllGroups = b;
+ }
+
+ @Override
+ public void setColourByReferenceSeq(boolean colourByReferenceSeq)
+ {
+ this.colourByReferenceSeq = colourByReferenceSeq;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param state
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setColourText(boolean state)
+ {
+ showColourText = state;
+ }
+
+ /**
+ * @param conservationColourSelected
+ * the conservationColourSelected to set
+ */
+ @Override
+ public void setConservationColourSelected(
+ boolean conservationColourSelected)
+ {
+ this.conservationColourSelected = conservationColourSelected;
+ }
+
+ /**
+ * GUI state
+ *
+ * @param b
+ * enable conservation based shading
+ */
+ @Override
+ public void setConservationSelected(boolean b)
+ {
+ conservationColourSelected = b;
+ }
+
+ @Override
+ public void setDisplayReferenceSeq(boolean displayReferenceSeq)
+ {
+ this.displayReferenceSeq = displayReferenceSeq;
+ }
+
+ /**
+ *
+ * @param inc
+ * set the scalar for bleaching colourschemes according to degree of
+ * conservation
+ */
+ @Override
+ public void setIncrement(int inc)
+ {
+ increment = inc;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param state
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setRenderGaps(boolean state)
+ {
+ renderGaps = state;
+ }
+
+ @Override
+ public void setRightAlignIds(boolean rightAlignIds)
+ {
+ this.rightAlignIds = rightAlignIds;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setScaleAboveWrapped(boolean b)
+ {
+ scaleAboveWrapped = b;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setScaleLeftWrapped(boolean b)
+ {
+ scaleLeftWrapped = b;
+ }
+
+ /**
+ *
+ *
+ * @param scaleRightWrapped
+ * - true or false
+ */
+
+ @Override
+ public void setScaleRightWrapped(boolean b)
+ {
+ scaleRightWrapped = b;
+ }
+
+ @Override
+ public void setSeqNameItalics(boolean italics)
+ {
+ seqNameItalics = italics;
+ }
+
+ @Override
+ public void setShowAnnotation(boolean b)
+ {
+ showAnnotation = b;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param state
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setShowBoxes(boolean state)
+ {
+ showBoxes = state;
+ }
+
+ /**
+ * @param showColourText
+ * the showColourText to set
+ */
+ @Override
+ public void setShowColourText(boolean showColourText)
+ {
+ this.showColourText = showColourText;
+ }
+
+ @Override
+ public void setShowHiddenMarkers(boolean show)
+ {
+ showHiddenMarkers = show;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setShowJVSuffix(boolean b)
+ {
+ showJVSuffix = b;
+ }
+
+ @Override
+ public void setShowSeqFeaturesHeight(boolean selected)
+ {
+ showSeqFeaturesHeight = selected;
+
+ }
+
+ /**
+ * set the flag
+ *
+ * @param b
+ * features are displayed if true
+ */
+ @Override
+ public void setShowSequenceFeatures(boolean b)
+ {
+ showSequenceFeatures = b;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param state
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setShowText(boolean state)
+ {
+ showText = state;
+ }
+
+ @Override
+ public void setShowUnconserved(boolean showunconserved)
+ {
+ showUnconserved = showunconserved;
+ }
+
+ /**
+ * @param textColour
+ * the textColour to set
+ */
+ @Override
+ public void setTextColour(Color textColour)
+ {
+ this.textColour = textColour;
+ }
+
+ /**
+ * @param textColour2
+ * the textColour2 to set
+ */
+ @Override
+ public void setTextColour2(Color textColour2)
+ {
+ this.textColour2 = textColour2;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param thresh
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setThreshold(int thresh)
+ {
+ threshold = thresh;
+ }
+
+ /**
+ * @param thresholdTextColour
+ * the thresholdTextColour to set
+ */
+ @Override
+ public void setThresholdTextColour(int thresholdTextColour)
+ {
+ this.thresholdTextColour = thresholdTextColour;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param state
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setWrapAlignment(boolean state)
+ {
+ wrapAlignment = state;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param w
+ * DOCUMENT ME!
+ */
+ @Override
+ public void setWrappedWidth(int w)
+ {
+ this.wrappedWidth = w;
+ }
+}