Changeset 1792

Show
Ignore:
Timestamp:
27-04-11 14:35:16 (3 years ago)
Author:
robert@…
Message:

Adjusted study view to show only a few samples if the list is very large

Location:
trunk/grails-app
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/dbnp/studycapturing/Sample.groovy

    r1734 r1792  
    11package dbnp.studycapturing 
     2import java.util.ArrayList; 
     3 
    24import org.dbnp.gdt.* 
    35 
     
    160162                return this.sampleUUID; 
    161163        } 
     164         
     165        /** 
     166        * Returns a human readable string of a list of samples, with a maximum number 
     167        * of characters 
     168        * 
     169        * @param sampleList List with Sample objects 
     170        * @param maxChars maximum number of characters returned 
     171        * @return human readble string with at most maxChars characters, representing the samples given. 
     172        */ 
     173   public static String trimSampleNames(ArrayList sampleList, Integer maxChars) { 
     174           def simpleSamples = sampleList.name.join(', '); 
     175           def showSamples 
     176 
     177           // If the subjects will fit, show them all 
     178           if (!maxChars || simpleSamples.size() < maxChars) { 
     179                   showSamples = simpleSamples; 
     180           } else { 
     181                   // Always add the first name 
     182                   def sampleNames = sampleList[0]?.name; 
     183 
     184                   // Continue adding names until the length is to long 
     185                   def id = 0; 
     186                   sampleList.each { sample -> 
     187                           if (id > 0) { 
     188                                   if (sampleNames?.size() + sample.name?.size() < maxChars - 15) { 
     189                                           sampleNames += ", " + sample.name; 
     190                                   } else { 
     191                                           return; 
     192                                   } 
     193                           } 
     194                           id++; 
     195                   } 
     196 
     197                   // Add a postfix 
     198                   sampleNames += " and " + (sampleList?.size() - id) + " more"; 
     199 
     200                   showSamples = sampleNames; 
     201           } 
     202 
     203           return showSamples 
     204   } 
     205 
    162206} 
  • trunk/grails-app/views/study/show_assays.gsp

    r1689 r1792  
     1<%@ page import="dbnp.studycapturing.Sample" %> 
    12<g:if test="${studyList*.assays?.flatten()?.size()==0}"> 
    23  No assays in these studies 
     
    3940                  <td> 
    4041                        <% sortedAssaySamples = assay?.samples.sort( { a, b -> a.name <=> b.name } as Comparator )  %> 
    41                         ${sortedAssaySamples.name.join( ', ' )} 
     42                        ${Sample.trimSampleNames( sortedAssaySamples, 400 )} 
    4243                  </td> 
    4344                </tr>