Ignore:
Timestamp:
Apr 27, 2011, 2:35:16 PM (9 years ago)
Author:
robert@…
Message:

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

File:
1 edited

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}
Note: See TracChangeset for help on using the changeset viewer.