From: <hs...@us...> - 2011-12-07 21:59:53
|
Revision: 998 http://treebase.svn.sourceforge.net/treebase/?rev=998&view=rev Author: hshyket Date: 2011-12-07 21:59:47 +0000 (Wed, 07 Dec 2011) Log Message: ----------- When downloading a study will loop through taxon block to check for duplicate blocks Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/DownloadAStudyController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/DownloadAStudyController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/DownloadAStudyController.java 2011-12-06 21:59:41 UTC (rev 997) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/DownloadAStudyController.java 2011-12-07 21:59:47 UTC (rev 998) @@ -1,5 +1,8 @@ package org.cipres.treebase.web.controllers; +import java.util.ArrayList; +import java.util.List; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -8,6 +11,7 @@ import org.cipres.treebase.domain.matrix.Matrix; import org.cipres.treebase.domain.study.Study; import org.cipres.treebase.domain.study.StudyService; +import org.cipres.treebase.domain.taxon.TaxonLabel; import org.cipres.treebase.domain.taxon.TaxonLabelSet; import org.cipres.treebase.domain.tree.TreeBlock; import org.springframework.web.servlet.ModelAndView; @@ -51,15 +55,35 @@ // taxa: //set a unique number for each block when the title is Taxa - Integer taxa = 1; + Integer taxaCount = 1; + List<List <TaxonLabel>> taxonCompare = new ArrayList<List <TaxonLabel>>(); for ( TaxonLabelSet tls : study.getTaxonLabelSets() ) { - if (tls.getTitle().equals("Taxa")) { - tls.setTitle(tls.getTitle() + taxa.toString()); - taxa++; + Boolean isDuplicateTaxa = false; + Integer taxaCompareCount = 1; + + List<TaxonLabel> taxonLblSet = tls.getTaxonLabelsReadOnly(); + if (taxonCompare != null) { + for (List<TaxonLabel> lstTls : taxonCompare) { + if (taxonLblSet.equals(lstTls)) { + isDuplicateTaxa = true; + break; + } + else { + taxaCompareCount++; + } + } } - // one taxon label per line, no line number. - tls.buildNexusBlockTaxa(builder, true, false); + if (isDuplicateTaxa) { + tls.setTitle("Taxa" + taxaCompareCount.toString()); + } + else { + tls.setTitle("Taxa" + taxaCount.toString()); + taxaCount++; + // one taxon label per line, no line number. + tls.buildNexusBlockTaxa(builder, true, false); + taxonCompare.add(taxonLblSet); + } } // matrices:: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |