+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public ColumnSelection getColumnSelection()\r
+ {\r
+ return colSel;\r
+ }\r
+\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param tree DOCUMENT ME!\r
+ */\r
+ public void setCurrentTree(NJTree tree)\r
+ {\r
+ currentTree = tree;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public NJTree getCurrentTree()\r
+ {\r
+ return currentTree;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param b DOCUMENT ME!\r
+ */\r
+ public void setColourAppliesToAllGroups(boolean b)\r
+ {\r
+ colourAppliesToAllGroups = b;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public boolean getColourAppliesToAllGroups()\r
+ {\r
+ return colourAppliesToAllGroups;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public boolean getShowJVSuffix()\r
+ {\r
+ return showJVSuffix;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param b DOCUMENT ME!\r
+ */\r
+ public void setShowJVSuffix(boolean b)\r
+ {\r
+ showJVSuffix = b;\r
+ }\r
+\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public boolean getShowAnnotation()\r
+ {\r
+ return showAnnotation;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param b DOCUMENT ME!\r
+ */\r
+ public void setShowAnnotation(boolean b)\r
+ {\r
+ showAnnotation = b;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public boolean getScaleAboveWrapped()\r
+ {\r
+ return scaleAboveWrapped;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public boolean getScaleLeftWrapped()\r
+ {\r
+ return scaleLeftWrapped;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public boolean getScaleRightWrapped()\r
+ {\r
+ return scaleRightWrapped;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param b DOCUMENT ME!\r
+ */\r
+ public void setScaleAboveWrapped(boolean b)\r
+ {\r
+ scaleAboveWrapped = b;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param b DOCUMENT ME!\r
+ */\r
+ public void setScaleLeftWrapped(boolean b)\r
+ {\r
+ scaleLeftWrapped = b;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param b DOCUMENT ME!\r
+ */\r
+ public void setScaleRightWrapped(boolean b)\r
+ {\r
+ scaleRightWrapped = b;\r
+ }\r
+\r
+ /**\r
+ * Property change listener for changes in alignment\r
+ *\r
+ * @param listener DOCUMENT ME!\r
+ */\r
+ public void addPropertyChangeListener(\r
+ java.beans.PropertyChangeListener listener)\r
+ {\r
+ changeSupport.addPropertyChangeListener(listener);\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param listener DOCUMENT ME!\r
+ */\r
+ public void removePropertyChangeListener(\r
+ java.beans.PropertyChangeListener listener)\r
+ {\r
+ changeSupport.removePropertyChangeListener(listener);\r
+ }\r
+\r
+ /**\r
+ * Property change listener for changes in alignment\r
+ *\r
+ * @param prop DOCUMENT ME!\r
+ * @param oldvalue DOCUMENT ME!\r
+ * @param newvalue DOCUMENT ME!\r
+ */\r
+ public void firePropertyChange(String prop, Object oldvalue, Object newvalue)\r
+ {\r
+ changeSupport.firePropertyChange(prop, oldvalue, newvalue);\r
+ }\r
+\r
+ public void setIgnoreGapsConsensus(boolean b)\r
+ {\r
+ ignoreGapsInConsensusCalculation = b;\r
+ updateConsensus();\r
+ if(globalColourScheme!=null)\r
+ {\r
+ globalColourScheme.setThreshold(globalColourScheme.getThreshold(), ignoreGapsInConsensusCalculation);\r
+ }\r
+ }\r
+\r
+ public boolean getIgnoreGapsConsensus()\r
+ {\r
+ return ignoreGapsInConsensusCalculation;\r
+ }\r
+\r
+ public void setDataset(boolean b)\r
+ {\r
+ isDataset = b;\r
+ }\r
+\r
+ public boolean isDataset()\r
+ {\r
+ return isDataset;\r
+ }\r
+\r
+ public void hideSequence(SequenceI seq)\r
+ {\r
+ alignment.getHiddenSequences().hideSequence(seq);\r
+ hasHiddenRows = true;\r
+ }\r
+\r
+ public void showSequence(int index)\r
+ {\r
+ alignment.getHiddenSequences().showSequence(index);\r
+\r
+ if(alignment.getHiddenSequences().getSize()<1)\r
+ hasHiddenRows = false;\r
+ }\r
+\r
+ public void showAllHiddenSeqs()\r
+ {\r
+ alignment.getHiddenSequences().showAll();\r
+ hasHiddenRows = false;\r
+ }\r
+\r
+ public int adjustForHiddenSeqs(int alignmentIndex)\r
+ {\r
+ return alignment.getHiddenSequences().adjustForHiddenSeqs(alignmentIndex);\r
+ }\r
+\r
+ /**\r
+ * This method returns the a new SequenceI [] with\r
+ * the selection sequence and start and end points adjusted\r
+ * @return String[]\r
+ */\r
+ public SequenceI[] getSelectionAsNewSequence()\r
+ {\r
+ SequenceI[] sequences;\r
+\r
+ if (selectionGroup == null)\r
+ sequences = alignment.getSequencesArray();\r
+ else\r
+ sequences = selectionGroup.getSelectionAsNewSequences(alignment);\r
+\r
+ return sequences;\r
+ }\r
+\r
+\r
+ /**\r
+ * This method returns the visible selected area as text, as\r
+ * seen on the GUI, ie if columns are hidden they will not\r
+ * be returned in the result.\r
+ * Use this for calculating trees, PCA, redundancy etc on views\r
+ * which contain hidden columns.\r
+ * @return String[]\r
+ */\r
+ public String [] getSelectionAsString()\r
+ {\r
+ String [] selection = null;\r
+ SequenceI [] seqs= null;\r
+ int i, iSize;\r
+ int start = 0, end = 0;\r
+ if(selectionGroup!=null)\r
+ {\r
+ iSize = selectionGroup.getSize(false);\r
+ seqs = selectionGroup.getSequencesInOrder(alignment);\r
+ start = selectionGroup.getStartRes();\r
+ end = selectionGroup.getEndRes()+1;\r
+ }\r
+ else\r
+ {\r
+ iSize = alignment.getHeight();\r
+ seqs = alignment.getSequencesArray();\r
+ end = alignment.getWidth();\r