/*\r
* Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
boolean showConservation = true;\r
boolean showQuality = true;\r
boolean showConsensus = true;\r
+ boolean upperCasebold = false;\r
\r
boolean colourAppliesToAllGroups = true;\r
ColourSchemeI globalColourScheme = null;\r
\r
// The following vector holds the features which are\r
// currently visible, in the correct order or rendering\r
- Hashtable featuresDisplayed;\r
+ public Hashtable featuresDisplayed;\r
\r
boolean hasHiddenColumns = false;\r
boolean hasHiddenRows = false;\r
\r
jalview.bin.JalviewLite applet;\r
\r
+ boolean MAC = false;\r
+\r
public AlignViewport(AlignmentI al, JalviewLite applet)\r
{\r
this.applet = applet;\r
this.endSeq = al.getHeight() - 1;\r
setFont(font);\r
\r
+ if(System.getProperty("os.name").startsWith("Mac"))\r
+ MAC = true;\r
+\r
if (applet != null)\r
{\r
String param = applet.getParameter("showFullId");\r
{\r
showConsensus = Boolean.valueOf(param).booleanValue();\r
}\r
+\r
+ param = applet.getParameter("upperCase");\r
+ if (param != null)\r
+ {\r
+ if(param.equalsIgnoreCase("bold"))\r
+ upperCasebold = true;\r
+ }\r
+\r
}\r
// We must set conservation and consensus before setting colour,\r
// as Blosum and Clustal require this to be done\r
globalColourScheme.setConsensus(vconsensus);\r
\r
}\r
-\r
+ /**\r
+ * get the consensus sequence as displayed under the PID consensus annotation row.\r
+ * @return consensus sequence as a new sequence object\r
+ */\r
+ /**\r
+ * get the consensus sequence as displayed under the PID consensus annotation row.\r
+ * @return consensus sequence as a new sequence object\r
+ */\r
+ public SequenceI getConsensusSeq() {\r
+ if (consensus==null)\r
+ updateConsensus();\r
+ if (consensus==null)\r
+ return null;\r
+ StringBuffer seqs=new StringBuffer();\r
+ for (int i=0; i<consensus.annotations.length; i++) {\r
+ if (consensus.annotations[i]!=null) {\r
+ if (consensus.annotations[i].description.charAt(0) == '[')\r
+ seqs.append(consensus.annotations[i].description.charAt(1));\r
+ else\r
+ seqs.append(consensus.annotations[i].displayCharacter);\r
+ }\r
+ }\r
+ SequenceI sq = new Sequence("Consensus", seqs.toString());\r
+ sq.setDescription("Percentage Identity Consensus "+((ignoreGapsInConsensusCalculation) ? " without gaps" : ""));\r
+ return sq;\r
+ }\r
public SequenceGroup getSelectionGroup()\r
{\r
return selectionGroup;\r
\r
java.awt.FontMetrics fm = nullFrame.getGraphics().getFontMetrics(font);\r
setCharHeight(fm.getHeight());\r
- setCharWidth(fm.charWidth('M'));\r
+ charWidth = fm.charWidth('M');\r
+\r
+ if(upperCasebold)\r
+ {\r
+ Font f2 = new Font(f.getName(), Font.BOLD, f.getSize());\r
+ fm = nullFrame.getGraphics().getFontMetrics(f2);\r
+ charWidth = fm.stringWidth("MMMMMMMMMMM") / 10;\r
+ }\r
}\r
\r
public Font getFont()\r
return font;\r
}\r
\r
- public void setCharWidth(int w)\r
- {\r
- this.charWidth = w;\r
- }\r
-\r
public int getCharWidth()\r
{\r
return charWidth;\r
hasHiddenColumns = true;\r
}\r
\r
- public void hideSequence(SequenceI seq)\r
- {\r
- if(seq!=null)\r
- {\r
- alignment.getHiddenSequences().hideSequence(seq);\r
- hasHiddenRows = true;\r
- firePropertyChange("alignment", null, alignment.getSequences());\r
- }\r
- }\r
-\r
public void hideAllSelectedSeqs()\r
{\r
if (selectionGroup == null)\r
\r
SequenceI[] seqs = selectionGroup.getSequencesInOrder(alignment);\r
\r
- for (int i = 0; i < seqs.length; i++)\r
+ hideSequence(seqs);\r
+\r
+ setSelectionGroup(null);\r
+ }\r
+\r
+ public void hideSequence(SequenceI [] seq)\r
+ {\r
+ if(seq!=null)\r
{\r
- alignment.getHiddenSequences().hideSequence(seqs[i]);\r
+ for (int i = 0; i < seq.length; i++)\r
+ alignment.getHiddenSequences().hideSequence(seq[i]);\r
+\r
+ hasHiddenRows = true;\r
+ firePropertyChange("alignment", null, alignment.getSequences());\r
}\r
- firePropertyChange("alignment", null, alignment.getSequences());\r
- hasHiddenRows = true;\r
- setSelectionGroup(null);\r
}\r
\r
public void showColumn(int col)\r
}\r
// Final match if necessary.\r
if (last<end)\r
- selection.addOperation(CigarArray.M, end-last);\r
+ selection.addOperation(CigarArray.M, end-last+1);\r
} else {\r
- selection.addOperation(CigarArray.M, end-start);\r
+ selection.addOperation(CigarArray.M, end-start+1);\r
}\r
return selection;\r
}\r