JAL-1640 separated style operations into a new ViewStyle databean (implements jalview...
[jalview.git] / src / jalview / viewmodel / styles / ViewStyle.java
1 package jalview.viewmodel.styles;
2
3 import jalview.api.ViewStyleI;
4
5 import java.awt.Color;
6
7 /**
8  * A container for holding alignment view properties. View properties are
9  * data-independent, which means they can be safely copied between views
10  * involving different alignment data without causing exceptions in the
11  * rendering system.
12  * 
13  * @author jprocter
14  *
15  */
16 public class ViewStyle implements ViewStyleI
17 {
18
19   private boolean abovePIDThreshold = false;
20
21   int charHeight;
22
23   int charWidth;
24
25   /**
26    * gui state - changes to colour scheme propagated to all groups
27    */
28   private boolean colourAppliesToAllGroups;
29
30   /**
31    * colour according to the reference sequence defined on the alignment
32    */
33   private boolean colourByReferenceSeq = false;
34
35   boolean conservationColourSelected = false;
36
37   /**
38    * show the reference sequence in the alignment view
39    */
40   private boolean displayReferenceSeq = false;
41
42   private int increment;
43
44   /**
45    * display gap characters
46    */
47   boolean renderGaps = true;
48
49   private boolean rightAlignIds = false;
50
51   boolean scaleAboveWrapped = false;
52
53   boolean scaleLeftWrapped = true;
54
55   boolean scaleRightWrapped = true;
56
57   boolean seqNameItalics;
58
59   /**
60    * show annotation tracks on the alignment
61    */
62   private boolean showAnnotation = true;
63
64   /**
65    * render each residue in a coloured box
66    */
67   boolean showBoxes = true;
68
69   /**
70    * Colour sequence text
71    */
72   boolean showColourText = false;
73
74   /**
75    * show blue triangles
76    */
77   boolean showHiddenMarkers = true;
78
79   /**
80    * show /start-end in ID panel
81    */
82   boolean showJVSuffix = true;
83
84   /**
85    * scale features height according to score
86    */
87   boolean showSeqFeaturesHeight;
88
89   /**
90    * display setting for showing/hiding sequence features on alignment view
91    */
92   boolean showSequenceFeatures = false;
93
94   /**
95    * display sequence symbols
96    */
97   boolean showText = true;
98
99   /**
100    * show non-conserved residues only
101    */
102   protected boolean showUnconserved = false;
103
104   Color textColour = Color.black;
105
106   Color textColour2 = Color.white;
107
108   /**
109    * PID or consensus threshold
110    */
111   int threshold;
112
113   /**
114    * threshold for switching between textColour & textColour2
115    */
116   int thresholdTextColour = 0;
117
118   /**
119    * upper case characters in sequence are shown in bold
120    */
121   boolean upperCasebold = false;
122
123   /**
124    * @return the upperCasebold
125    */
126   @Override
127   public boolean isUpperCasebold()
128   {
129     return upperCasebold;
130   }
131
132   /**
133    * @param upperCasebold
134    *          the upperCasebold to set
135    */
136   @Override
137   public void setUpperCasebold(boolean upperCasebold)
138   {
139     this.upperCasebold = upperCasebold;
140   }
141
142   /**
143    * flag for wrapping
144    */
145   boolean wrapAlignment = false;
146
147   /**
148    * number columns in wrapped alignment
149    */
150   int wrappedWidth;
151
152   /**
153    * GUI state
154    * 
155    * @return true if percent identity threshold is applied to shading
156    */
157   @Override
158   public boolean getAbovePIDThreshold()
159   {
160     return abovePIDThreshold;
161   }
162
163   /**
164    * DOCUMENT ME!
165    * 
166    * @return DOCUMENT ME!
167    */
168   @Override
169   public int getCharHeight()
170   {
171     return charHeight;
172   }
173
174   /**
175    * DOCUMENT ME!
176    * 
177    * @return DOCUMENT ME!
178    */
179   @Override
180   public int getCharWidth()
181   {
182     return charWidth;
183   }
184
185   /**
186    * 
187    * 
188    * @return flag indicating if colourchanges propagated to all groups
189    */
190   @Override
191   public boolean getColourAppliesToAllGroups()
192   {
193     return colourAppliesToAllGroups;
194   }
195
196   /**
197    * DOCUMENT ME!
198    * 
199    * @return DOCUMENT ME!
200    */
201   @Override
202   public boolean getColourText()
203   {
204     return showColourText;
205   }
206
207   /**
208    * GUI state
209    * 
210    * @return true if conservation based shading is enabled
211    */
212   @Override
213   public boolean getConservationSelected()
214   {
215     return conservationColourSelected;
216   }
217
218   /**
219    * GUI State
220    * 
221    * @return get scalar for bleaching colourschemes by conservation
222    */
223   @Override
224   public int getIncrement()
225   {
226     return increment;
227   }
228
229   /**
230    * DOCUMENT ME!
231    * 
232    * @return DOCUMENT ME!
233    */
234   @Override
235   public boolean getScaleAboveWrapped()
236   {
237     return scaleAboveWrapped;
238   }
239
240   /**
241    * DOCUMENT ME!
242    * 
243    * @return DOCUMENT ME!
244    */
245   @Override
246   public boolean getScaleLeftWrapped()
247   {
248     return scaleLeftWrapped;
249   }
250
251   /**
252    * DOCUMENT ME!
253    * 
254    * @return DOCUMENT ME!
255    */
256   @Override
257   public boolean getScaleRightWrapped()
258   {
259     return scaleRightWrapped;
260   }
261
262   /**
263    * DOCUMENT ME!
264    * 
265    * @return DOCUMENT ME!
266    */
267   @Override
268   public boolean getShowBoxes()
269   {
270     return showBoxes;
271   }
272
273   @Override
274   public boolean getShowHiddenMarkers()
275   {
276     return showHiddenMarkers;
277   }
278
279   /**
280    * DOCUMENT ME!
281    * 
282    * @return DOCUMENT ME!
283    */
284   @Override
285   public boolean getShowJVSuffix()
286   {
287     return showJVSuffix;
288   }
289
290   /**
291    * DOCUMENT ME!
292    * 
293    * @return DOCUMENT ME!
294    */
295   @Override
296   public boolean getShowText()
297   {
298     return showText;
299   }
300
301   @Override
302   public boolean getShowUnconserved()
303   {
304     return showUnconserved;
305   }
306
307   /**
308    * @return the textColour
309    */
310   @Override
311   public Color getTextColour()
312   {
313     return textColour;
314   }
315
316   /**
317    * @return the textColour2
318    */
319   @Override
320   public Color getTextColour2()
321   {
322     return textColour2;
323   }
324
325   /**
326    * DOCUMENT ME!
327    * 
328    * @return DOCUMENT ME!
329    */
330   @Override
331   public int getThreshold()
332   {
333     return threshold;
334   }
335
336   /**
337    * @return the thresholdTextColour
338    */
339   @Override
340   public int getThresholdTextColour()
341   {
342     return thresholdTextColour;
343   }
344
345   /**
346    * DOCUMENT ME!
347    * 
348    * @return DOCUMENT ME!
349    */
350   @Override
351   public boolean getWrapAlignment()
352   {
353     return wrapAlignment;
354   }
355
356   /**
357    * DOCUMENT ME!
358    * 
359    * @return DOCUMENT ME!
360    */
361   @Override
362   public int getWrappedWidth()
363   {
364     return wrappedWidth;
365   }
366
367   @Override
368   public boolean isColourByReferenceSeq()
369   {
370     return colourByReferenceSeq;
371   }
372
373   /**
374    * @return the conservationColourSelected
375    */
376   @Override
377   public boolean isConservationColourSelected()
378   {
379     return conservationColourSelected;
380   }
381
382   @Override
383   public boolean isDisplayReferenceSeq()
384   {
385     return displayReferenceSeq;
386   }
387
388   /**
389    * @return the renderGaps
390    */
391   @Override
392   public boolean isRenderGaps()
393   {
394     return renderGaps;
395   }
396
397   @Override
398   public boolean isRightAlignIds()
399   {
400     return rightAlignIds;
401   }
402
403   /**
404    * @return the seqNameItalics
405    */
406   @Override
407   public boolean isSeqNameItalics()
408   {
409     return seqNameItalics;
410   }
411
412   @Override
413   public boolean isShowAnnotation()
414   {
415     return showAnnotation;
416   }
417
418   /**
419    * @return the showColourText
420    */
421   @Override
422   public boolean isShowColourText()
423   {
424     return showColourText;
425   }
426
427   /**
428    * @return the showSeqFeaturesHeight
429    */
430   @Override
431   public boolean isShowSeqFeaturesHeight()
432   {
433     return showSeqFeaturesHeight;
434   }
435
436   @Override
437   public boolean isShowSequenceFeatures()
438   {
439     return showSequenceFeatures;
440   }
441
442   @Override
443   public boolean isShowSequenceFeaturesHeight()
444   {
445
446     return showSeqFeaturesHeight;
447   }
448
449   /**
450    * GUI state
451    * 
452    * 
453    * @param b
454    *          indicate if percent identity threshold is applied to shading
455    */
456   @Override
457   public void setAbovePIDThreshold(boolean b)
458   {
459     abovePIDThreshold = b;
460   }
461
462   /**
463    * DOCUMENT ME!
464    * 
465    * @param h
466    *          DOCUMENT ME!
467    */
468   @Override
469   public void setCharHeight(int h)
470   {
471     this.charHeight = h;
472   }
473
474   /**
475    * DOCUMENT ME!
476    * 
477    * @param w
478    *          DOCUMENT ME!
479    */
480   @Override
481   public void setCharWidth(int w)
482   {
483     this.charWidth = w;
484   }
485
486
487   /**
488    * @param value
489    *          indicating if subsequent colourscheme changes will be propagated
490    *          to all groups
491    */
492   @Override
493   public void setColourAppliesToAllGroups(boolean b)
494   {
495     colourAppliesToAllGroups = b;
496   }
497
498   @Override
499   public void setColourByReferenceSeq(boolean colourByReferenceSeq)
500   {
501     this.colourByReferenceSeq = colourByReferenceSeq;
502   }
503
504   /**
505    * DOCUMENT ME!
506    * 
507    * @param state
508    *          DOCUMENT ME!
509    */
510   @Override
511   public void setColourText(boolean state)
512   {
513     showColourText = state;
514   }
515
516   /**
517    * @param conservationColourSelected
518    *          the conservationColourSelected to set
519    */
520   @Override
521   public void setConservationColourSelected(
522           boolean conservationColourSelected)
523   {
524     this.conservationColourSelected = conservationColourSelected;
525   }
526
527   /**
528    * GUI state
529    * 
530    * @param b
531    *          enable conservation based shading
532    */
533   @Override
534   public void setConservationSelected(boolean b)
535   {
536     conservationColourSelected = b;
537   }
538
539   @Override
540   public void setDisplayReferenceSeq(boolean displayReferenceSeq)
541   {
542     this.displayReferenceSeq = displayReferenceSeq;
543   }
544
545   /**
546    * 
547    * @param inc
548    *          set the scalar for bleaching colourschemes according to degree of
549    *          conservation
550    */
551   @Override
552   public void setIncrement(int inc)
553   {
554     increment = inc;
555   }
556
557   /**
558    * DOCUMENT ME!
559    * 
560    * @param state
561    *          DOCUMENT ME!
562    */
563   @Override
564   public void setRenderGaps(boolean state)
565   {
566     renderGaps = state;
567   }
568
569   @Override
570   public void setRightAlignIds(boolean rightAlignIds)
571   {
572     this.rightAlignIds = rightAlignIds;
573   }
574
575   /**
576    * DOCUMENT ME!
577    * 
578    * @param b
579    *          DOCUMENT ME!
580    */
581   @Override
582   public void setScaleAboveWrapped(boolean b)
583   {
584     scaleAboveWrapped = b;
585   }
586
587   /**
588    * DOCUMENT ME!
589    * 
590    * @param b
591    *          DOCUMENT ME!
592    */
593   @Override
594   public void setScaleLeftWrapped(boolean b)
595   {
596     scaleLeftWrapped = b;
597   }
598
599   /**
600    * 
601    * 
602    * @param scaleRightWrapped
603    *          - true or false
604    */
605
606   @Override
607   public void setScaleRightWrapped(boolean b)
608   {
609     scaleRightWrapped = b;
610   }
611
612   @Override
613   public void setSeqNameItalics(boolean italics)
614   {
615     seqNameItalics = italics;
616   }
617
618   @Override
619   public void setShowAnnotation(boolean b)
620   {
621     showAnnotation = b;
622   }
623
624   /**
625    * DOCUMENT ME!
626    * 
627    * @param state
628    *          DOCUMENT ME!
629    */
630   @Override
631   public void setShowBoxes(boolean state)
632   {
633     showBoxes = state;
634   }
635
636   /**
637    * @param showColourText
638    *          the showColourText to set
639    */
640   @Override
641   public void setShowColourText(boolean showColourText)
642   {
643     this.showColourText = showColourText;
644   }
645
646   @Override
647   public void setShowHiddenMarkers(boolean show)
648   {
649     showHiddenMarkers = show;
650   }
651
652   /**
653    * DOCUMENT ME!
654    * 
655    * @param b
656    *          DOCUMENT ME!
657    */
658   @Override
659   public void setShowJVSuffix(boolean b)
660   {
661     showJVSuffix = b;
662   }
663
664   @Override
665   public void setShowSeqFeaturesHeight(boolean selected)
666   {
667     showSeqFeaturesHeight = selected;
668
669   }
670
671   /**
672    * set the flag
673    * 
674    * @param b
675    *          features are displayed if true
676    */
677   @Override
678   public void setShowSequenceFeatures(boolean b)
679   {
680     showSequenceFeatures = b;
681   }
682
683   /**
684    * DOCUMENT ME!
685    * 
686    * @param state
687    *          DOCUMENT ME!
688    */
689   @Override
690   public void setShowText(boolean state)
691   {
692     showText = state;
693   }
694
695   @Override
696   public void setShowUnconserved(boolean showunconserved)
697   {
698     showUnconserved = showunconserved;
699   }
700
701   /**
702    * @param textColour
703    *          the textColour to set
704    */
705   @Override
706   public void setTextColour(Color textColour)
707   {
708     this.textColour = textColour;
709   }
710
711   /**
712    * @param textColour2
713    *          the textColour2 to set
714    */
715   @Override
716   public void setTextColour2(Color textColour2)
717   {
718     this.textColour2 = textColour2;
719   }
720
721   /**
722    * DOCUMENT ME!
723    * 
724    * @param thresh
725    *          DOCUMENT ME!
726    */
727   @Override
728   public void setThreshold(int thresh)
729   {
730     threshold = thresh;
731   }
732
733   /**
734    * @param thresholdTextColour
735    *          the thresholdTextColour to set
736    */
737   @Override
738   public void setThresholdTextColour(int thresholdTextColour)
739   {
740     this.thresholdTextColour = thresholdTextColour;
741   }
742
743   /**
744    * DOCUMENT ME!
745    * 
746    * @param state
747    *          DOCUMENT ME!
748    */
749   @Override
750   public void setWrapAlignment(boolean state)
751   {
752     wrapAlignment = state;
753   }
754
755   /**
756    * DOCUMENT ME!
757    * 
758    * @param w
759    *          DOCUMENT ME!
760    */
761   @Override
762   public void setWrappedWidth(int w)
763   {
764     this.wrappedWidth = w;
765   }
766 }