Changeset 6541


Ignore:
Timestamp:
Sep 29, 2014, 12:36:14 PM (8 years ago)
Author:
Nicklas Nordborg
Message:

References #1843: Use snapshot manager to load annotations on list pages

Fixed on all list pages with annotations. The table exporter plugin still use database access only but should also be able to use the snapshot functionality.

Location:
trunk
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/core/net/sf/basedb/core/snapshot/AnnotationSnapshot.java

    r6539 r6541  
    365365    out.writeInt(annotationTypeId);
    366366    out.writeInt(unitId);
    367     out.writeInt(valueType.getValue());
     367    out.writeInt(valueType == null ? 0 : valueType.getValue());
    368368    out.writeInt(values == null ? 0 : values.size());
    369369    if (values != null)
  • trunk/www/admin/hardware/list_hardware.jsp

    r6328 r6541  
    4545  import="net.sf.basedb.core.plugin.GuiContext"
    4646  import="net.sf.basedb.core.plugin.Plugin"
     47  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     48  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     49  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     50  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     51  import="net.sf.basedb.core.snapshot.SnapshotManager"
    4752  import="net.sf.basedb.util.Enumeration"
    4853  import="net.sf.basedb.util.ShareableUtil"
     
    6469  import="java.util.List"
    6570  import="java.util.Map"
     71  import="java.util.ArrayList"
    6672%>
    6773<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8389final DbControl dc = sc.newDbControl();
    8490ItemResultIterator<Hardware> hardware = null;
    85 ItemResultList<AnnotationType> annotationTypes = null;
     91List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    8692try
    8793{
     
    8995  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    9096  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    91   annotationTypes = annotationTypeQuery.list(dc);
     97  SnapshotManager manager = new SnapshotManager();
     98  for (AnnotationType at : annotationTypeQuery.list(dc))
     99  {
     100    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     101  }
    92102
    93103  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
     
    204214      />
    205215      <%
    206       for (AnnotationType at : annotationTypes)
     216      for (AnnotationLoaderUtil loader : annotationLoaders)
    207217      {
     218        AnnotationType at = loader.getAnnotationType();
    208219        Enumeration<String, String> annotationEnum = null;
    209220        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    456467                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    457468                <%
    458                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    459                 if (as != null)
     469                if (item.isAnnotated())
    460470                {
    461                   for (AnnotationType at : annotationTypes)
     471                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     472                  for (AnnotationLoaderUtil loader : annotationLoaders)
    462473                  {
    463                     if (as.hasAnnotation(at))
     474                    if (loader.find(snapshot))
    464475                    {
    465                       Annotation a = as.getAnnotation(at);
    466                       String suffix = a.getUnitSymbol(null);
    467                       if (suffix != null) suffix = "&nbsp;" + suffix;
    468476                      %>
    469477                      <tbl:cell
    470                         column="<%="at"+at.getId()%>"
     478                        column="<%="at"+loader.getId()%>"
    471479                        ><tbl:cellvalue
    472                           list="<%=a.getValues(null)%>"
    473                           suffix="<%=suffix%>"
     480                          list="<%=loader.getValues()%>"
     481                          suffix="<%=loader.getUnitSymbol()%>"
    474482                      /></tbl:cell>
    475483                      <%
  • trunk/www/admin/protocols/list_protocol.jsp

    r6262 r6541  
    4545  import="net.sf.basedb.core.plugin.GuiContext"
    4646  import="net.sf.basedb.core.plugin.Plugin"
     47  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     48  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     49  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     50  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     51  import="net.sf.basedb.core.snapshot.SnapshotManager"
    4752  import="net.sf.basedb.util.Enumeration"
    4853  import="net.sf.basedb.util.ShareableUtil"
     
    6469  import="java.util.List"
    6570  import="java.util.Map"
     71  import="java.util.ArrayList"
    6672%>
    6773<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8389final DbControl dc = sc.newDbControl();
    8490ItemResultIterator<Protocol> protocols = null;
    85 ItemResultList<AnnotationType> annotationTypes = null;
     91List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    8692try
    8793{
    8894  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    8995  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    90   annotationTypes = annotationTypeQuery.list(dc);
     96  SnapshotManager manager = new SnapshotManager();
     97  for (AnnotationType at : annotationTypeQuery.list(dc))
     98  {
     99    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     100  }
    91101 
    92102  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
     
    214224      />
    215225      <%
    216       for (AnnotationType at : annotationTypes)
     226      for (AnnotationLoaderUtil loader : annotationLoaders)
    217227      {
     228        AnnotationType at = loader.getAnnotationType();
    218229        Enumeration<String, String> annotationEnum = null;
    219230        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    473484                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    474485                <%
    475                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    476                 if (as != null)
     486                if (item.isAnnotated())
    477487                {
    478                   for (AnnotationType at : annotationTypes)
     488                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     489                  for (AnnotationLoaderUtil loader : annotationLoaders)
    479490                  {
    480                     if (as.hasAnnotation(at))
     491                    if (loader.find(snapshot))
    481492                    {
    482                       Annotation a = as.getAnnotation(at);
    483                       String suffix = a.getUnitSymbol(null);
    484                       if (suffix != null) suffix = "&nbsp;" + suffix;
    485493                      %>
    486494                      <tbl:cell
    487                         column="<%="at"+at.getId()%>"
     495                        column="<%="at"+loader.getId()%>"
    488496                        ><tbl:cellvalue
    489                           list="<%=a.getValues(null)%>"
    490                           suffix="<%=suffix%>"
     497                          list="<%=loader.getValues()%>"
     498                          suffix="<%=loader.getUnitSymbol()%>"
    491499                      /></tbl:cell>
    492500                      <%
  • trunk/www/admin/software/list_software.jsp

    r6334 r6541  
    4545  import="net.sf.basedb.core.plugin.GuiContext"
    4646  import="net.sf.basedb.core.plugin.Plugin"
     47  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     48  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     49  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     50  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     51  import="net.sf.basedb.core.snapshot.SnapshotManager"
    4752  import="net.sf.basedb.util.Enumeration"
    4853  import="net.sf.basedb.util.ShareableUtil"
     
    6469  import="java.util.List"
    6570  import="java.util.Map"
     71  import="java.util.ArrayList"
    6672%>
    6773<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8389final DbControl dc = sc.newDbControl();
    8490ItemResultIterator<Software> software = null;
    85 ItemResultList<AnnotationType> annotationTypes = null;
     91List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    8692try
    8793{
     
    8995  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    9096  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    91   annotationTypes = annotationTypeQuery.list(dc);
     97  SnapshotManager manager = new SnapshotManager();
     98  for (AnnotationType at : annotationTypeQuery.list(dc))
     99  {
     100    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     101  }
    92102
    93103  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
     
    204214      />
    205215      <%
    206       for (AnnotationType at : annotationTypes)
     216      for (AnnotationLoaderUtil loader : annotationLoaders)
    207217      {
     218        AnnotationType at = loader.getAnnotationType();
    208219        Enumeration<String, String> annotationEnum = null;
    209220        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    456467                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    457468                <%
    458                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    459                 if (as != null)
     469                if (item.isAnnotated())
    460470                {
    461                   for (AnnotationType at : annotationTypes)
     471                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     472                  for (AnnotationLoaderUtil loader : annotationLoaders)
    462473                  {
    463                     if (as.hasAnnotation(at))
     474                    if (loader.find(snapshot))
    464475                    {
    465                       Annotation a = as.getAnnotation(at);
    466                       String suffix = a.getUnitSymbol(null);
    467                       if (suffix != null) suffix = "&nbsp;" + suffix;
    468476                      %>
    469477                      <tbl:cell
    470                         column="<%="at"+at.getId()%>"
     478                        column="<%="at"+loader.getId()%>"
    471479                        ><tbl:cellvalue
    472                           list="<%=a.getValues(null)%>"
    473                           suffix="<%=suffix%>"
     480                          list="<%=loader.getValues()%>"
     481                          suffix="<%=loader.getUnitSymbol()%>"
    474482                      /></tbl:cell>
    475483                      <%
  • trunk/www/biomaterials/bioplates/list_bioplates.jsp

    r6260 r6541  
    5353  import="net.sf.basedb.core.query.Orders"
    5454  import="net.sf.basedb.core.query.Hql"
     55  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     56  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     57  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     58  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     59  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5560  import="net.sf.basedb.util.Enumeration"
    5661  import="net.sf.basedb.util.ShareableUtil"
     
    7277  import="java.util.Map"
    7378  import="java.util.Date"
     79  import="java.util.ArrayList"
    7480%>
    7581<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    99105final DbControl dc = sc.newDbControl();
    100106ItemResultIterator<BioPlate> bioplates = null;
    101 ItemResultList<AnnotationType> annotationTypes = null;
     107List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    102108try
    103109{
    104110  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     111  SnapshotManager manager = new SnapshotManager();
     112  for (AnnotationType at : annotationTypeQuery.list(dc))
     113  {
     114    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     115  }
    105116
    106117  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(null);
     
    116127 
    117128  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    118   annotationTypes = annotationTypeQuery.list(dc);
    119129  try
    120130  {
     
    333343      />     
    334344      <%
    335       for (AnnotationType at : annotationTypes)
     345      for (AnnotationLoaderUtil loader : annotationLoaders)
    336346      {
     347        AnnotationType at = loader.getAnnotationType();
    337348        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    338349        Enumeration<String, String> annotationEnum = null;
     
    617628                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>               
    618629                <%
    619                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    620                 if (as != null)
     630                if (item.isAnnotated())
    621631                {
    622                   for (AnnotationType at : annotationTypes)
     632                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     633                  for (AnnotationLoaderUtil loader : annotationLoaders)
    623634                  {
    624                     if (as.hasAnnotation(at))
     635                    if (loader.find(snapshot))
    625636                    {
    626                       Annotation a = as.getAnnotation(at);
    627                       String suffix = a.getUnitSymbol(null);
    628                       if (suffix != null) suffix = "&nbsp;" + suffix;
    629637                      %>
    630638                      <tbl:cell
    631                         column="<%="at"+at.getId()%>"
     639                        column="<%="at"+loader.getId()%>"
    632640                        ><tbl:cellvalue
    633                           list="<%=a.getValues(null)%>"
    634                           suffix="<%=suffix%>"
     641                          list="<%=loader.getValues()%>"
     642                          suffix="<%=loader.getUnitSymbol()%>"
    635643                      /></tbl:cell>
    636644                      <%
  • trunk/www/biomaterials/biosources/list_biosources.jsp

    r6245 r6541  
    4949  import="net.sf.basedb.core.plugin.GuiContext"
    5050  import="net.sf.basedb.core.plugin.Plugin"
     51  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     52  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     53  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     54  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     55  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5156  import="net.sf.basedb.util.Enumeration"
    5257  import="net.sf.basedb.util.ShareableUtil"
     
    6873  import="java.util.List"
    6974  import="java.util.Map"
     75  import="java.util.ArrayList"
    7076%>
    7177<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8793final DbControl dc = sc.newDbControl();
    8894ItemResultIterator<BioSource> bioSources = null;
    89 ItemResultList<AnnotationType> annotationTypes = null;
     95List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    9096try
    9197{
    9298  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     99  SnapshotManager manager = new SnapshotManager();
     100  for (AnnotationType at : annotationTypeQuery.list(dc))
     101  {
     102    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     103  }
    93104  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    94105
     
    100111
    101112  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    102   annotationTypes = annotationTypeQuery.list(dc);
    103113  try
    104114  {
     
    232242      />
    233243      <%
    234       for (AnnotationType at : annotationTypes)
     244      for (AnnotationLoaderUtil loader : annotationLoaders)
    235245      {
     246        AnnotationType at = loader.getAnnotationType();
    236247        Enumeration<String, String> annotationEnum = null;
    237248        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    527538                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>               
    528539                <%
    529                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    530                 if (as != null)
     540                if (item.isAnnotated())
    531541                {
    532                   for (AnnotationType at : annotationTypes)
     542                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     543                  for (AnnotationLoaderUtil loader : annotationLoaders)
    533544                  {
    534                     if (as.hasAnnotation(at))
     545                    if (loader.find(snapshot))
    535546                    {
    536                       Annotation a = as.getAnnotation(at);
    537                       String suffix = a.getUnitSymbol(null);
    538                       if (suffix != null) suffix = "&nbsp;" + suffix;
    539547                      %>
    540548                      <tbl:cell
    541                         column="<%="at"+at.getId()%>"
     549                        column="<%="at"+loader.getId()%>"
    542550                        ><tbl:cellvalue
    543                           list="<%=a.getValues(null)%>"
    544                           suffix="<%=suffix%>"
     551                          list="<%=loader.getValues()%>"
     552                          suffix="<%=loader.getUnitSymbol()%>"
    545553                      /></tbl:cell>
    546554                      <%
  • trunk/www/biomaterials/extracts/list_extracts.jsp

    r6497 r6541  
    5858  import="net.sf.basedb.core.plugin.GuiContext"
    5959  import="net.sf.basedb.core.plugin.Plugin"
     60  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     61  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     62  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     63  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     64  import="net.sf.basedb.core.snapshot.SnapshotManager"
    6065  import="net.sf.basedb.core.Type"
    6166  import="net.sf.basedb.util.Enumeration"
     
    8085  import="java.util.Map"
    8186  import="java.util.Date"
     87  import="java.util.ArrayList"
    8288%>
    8389<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    99105final DbControl dc = sc.newDbControl();
    100106ItemResultIterator<Extract> extracts = null;
    101 ItemResultList<AnnotationType> annotationTypes = null;
     107List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    102108try
    103109{
    104110  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     111  SnapshotManager manager = new SnapshotManager();
     112  for (AnnotationType at : annotationTypeQuery.list(dc))
     113  {
     114    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     115  }
    105116  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    106117  final boolean createBioAssayPermission = sc.hasPermission(Permission.CREATE, Item.PHYSICALBIOASSAY);
     
    139150  Unit microGram = UnitUtil.getUnit(dc, Quantity.MASS, "µg");
    140151  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    141   annotationTypes = annotationTypeQuery.list(dc);
    142152  try
    143153  {
     
    426436      />
    427437      <%
    428       for (AnnotationType at : annotationTypes)
     438      for (AnnotationLoaderUtil loader : annotationLoaders)
    429439      {
     440        AnnotationType at = loader.getAnnotationType();
    430441        Enumeration<String, String> annotationEnum = null;
    431442        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    904915                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>               
    905916                <%
    906                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    907                 if (as != null)
     917                if (item.isAnnotated())
    908918                {
    909                   for (AnnotationType at : annotationTypes)
     919                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     920                  for (AnnotationLoaderUtil loader : annotationLoaders)
    910921                  {
    911                     if (as.hasAnnotation(at))
     922                    if (loader.find(snapshot))
    912923                    {
    913                       Annotation a = as.getAnnotation(at);
    914                       String suffix = a.getUnitSymbol(null);
    915                       if (suffix != null) suffix = "&nbsp;" + suffix;
    916924                      %>
    917925                      <tbl:cell
    918                         column="<%="at"+at.getId()%>"
     926                        column="<%="at"+loader.getId()%>"
    919927                        ><tbl:cellvalue
    920                           list="<%=a.getValues(null)%>"
    921                           suffix="<%=suffix%>"
     928                          list="<%=loader.getValues()%>"
     929                          suffix="<%=loader.getUnitSymbol()%>"
    922930                      /></tbl:cell>
    923931                      <%
  • trunk/www/biomaterials/lists/list_lists.jsp

    r6390 r6541  
    4242  import="net.sf.basedb.core.query.Hql"
    4343  import="net.sf.basedb.core.query.Orders"
     44  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     45  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     46  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     47  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     48  import="net.sf.basedb.core.snapshot.SnapshotManager"
    4449  import="net.sf.basedb.clients.web.Base"
    4550  import="net.sf.basedb.clients.web.PermissionUtil"
     
    6065  import="java.util.List"
    6166  import="java.util.Map"
     67  import="java.util.ArrayList"
    6268%>
    6369<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8793final DbControl dc = sc.newDbControl();
    8894ItemResultIterator<BioMaterialList> lists = null;
    89 ItemResultList<AnnotationType> annotationTypes = null;
     95List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    9096try
    9197{
    9298  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    9399  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    94   annotationTypes = annotationTypeQuery.list(dc);
     100  SnapshotManager manager = new SnapshotManager();
     101  for (AnnotationType at : annotationTypeQuery.list(dc))
     102  {
     103    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     104  }
    95105  try
    96106  {
     
    202212      />
    203213      <%
    204       for (AnnotationType at : annotationTypes)
     214      for (AnnotationLoaderUtil loader : annotationLoaders)
    205215      {
     216        AnnotationType at = loader.getAnnotationType();
    206217        Enumeration<String, String> annotationEnum = null;
    207218        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    449460                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    450461                <%
    451                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    452                 if (as != null)
     462                if (item.isAnnotated())
    453463                {
    454                   for (AnnotationType at : annotationTypes)
     464                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     465                  for (AnnotationLoaderUtil loader : annotationLoaders)
    455466                  {
    456                     if (as.hasAnnotation(at))
     467                    if (loader.find(snapshot))
    457468                    {
    458                       Annotation a = as.getAnnotation(at);
    459                       String suffix = a.getUnitSymbol(null);
    460                       if (suffix != null) suffix = "&nbsp;" + suffix;
    461469                      %>
    462470                      <tbl:cell
    463                         column="<%="at"+at.getId()%>"
     471                        column="<%="at"+loader.getId()%>"
    464472                        ><tbl:cellvalue
    465                           list="<%=a.getValues(null)%>"
    466                           suffix="<%=suffix%>"
     473                          list="<%=loader.getValues()%>"
     474                          suffix="<%=loader.getUnitSymbol()%>"
    467475                      /></tbl:cell>
    468476                      <%
  • trunk/www/biomaterials/lists/members/list_members.jsp

    r6497 r6541  
    5757  import="net.sf.basedb.core.plugin.GuiContext"
    5858  import="net.sf.basedb.core.plugin.Plugin"
     59  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     60  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     61  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     62  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     63  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5964  import="net.sf.basedb.util.Enumeration"
    6065  import="net.sf.basedb.util.ShareableUtil"
     
    7883  import="java.util.List"
    7984  import="java.util.Iterator"
     85  import="java.util.ArrayList"
    8086%>
    8187<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    94100
    95101ItemResultIterator<? extends BioMaterial> members = null;
     102List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    96103try
    97104{
     
    163170  final Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    164171  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    165   final ItemResultList<AnnotationType> annotationTypes = annotationTypeQuery.list(dc);
     172  SnapshotManager manager = new SnapshotManager();
     173  for (AnnotationType at : annotationTypeQuery.list(dc))
     174  {
     175    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     176  }
    166177  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    167178  try
     
    518529      %>
    519530      <%
    520       for (AnnotationType at : annotationTypes)
     531      for (AnnotationLoaderUtil loader : annotationLoaders)
    521532      {
     533        AnnotationType at = loader.getAnnotationType();
    522534        Enumeration<String, String> annotationEnum = null;
    523535        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    972984                </tbl:cell>
    973985                <%
    974                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    975                 if (as != null)
     986                if (item.isAnnotated())
    976987                {
    977                   for (AnnotationType at : annotationTypes)
     988                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     989                  for (AnnotationLoaderUtil loader : annotationLoaders)
    978990                  {
    979                     if (as.hasAnnotation(at))
     991                    if (loader.find(snapshot))
    980992                    {
    981                       Annotation a = as.getAnnotation(at);
    982                       String suffix = a.getUnitSymbol(null);
    983                       if (suffix != null) suffix = "&nbsp;" + suffix;
    984993                      %>
    985994                      <tbl:cell
    986                         column="<%="at"+at.getId()%>"
     995                        column="<%="at"+loader.getId()%>"
    987996                        ><tbl:cellvalue
    988                           list="<%=a.getValues(null)%>"
    989                           suffix="<%=suffix%>"
     997                          list="<%=loader.getValues()%>"
     998                          suffix="<%=loader.getUnitSymbol()%>"
    990999                      /></tbl:cell>
    9911000                      <%
  • trunk/www/biomaterials/samples/list_samples.jsp

    r6539 r6541  
    104104ItemResultIterator<Sample> samples = null;
    105105List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    106 long time = 0;
    107106try
    108107{
     
    601600          if (samples != null)
    602601          {           
    603             time = -System.currentTimeMillis();
    604602            while (samples.hasNext())
    605603            {
     
    893891              }
    894892            }
    895             time += System.currentTimeMillis();
    896             %>
    897               <tbl:panel clazz="messagepanel">
    898                 <%=time %> ms
    899               </tbl:panel>
    900             <%
    901893            if (numListed == 0)
    902894            {
  • trunk/www/biomaterials/tags/list_tags.jsp

    r6335 r6541  
    4444  import="net.sf.basedb.core.query.Hql"
    4545  import="net.sf.basedb.core.query.Orders"
     46  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     47  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     48  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     49  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     50  import="net.sf.basedb.core.snapshot.SnapshotManager"
    4651  import="net.sf.basedb.clients.web.Base"
    4752  import="net.sf.basedb.clients.web.PermissionUtil"
     
    6368  import="java.util.List"
    6469  import="java.util.Map"
     70  import="java.util.ArrayList"
    6571%>
    6672<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8288final DbControl dc = sc.newDbControl();
    8389ItemResultIterator<Tag> tags = null;
    84 ItemResultList<AnnotationType> annotationTypes = null;
     90List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    8591try
    8692{
     
    9197  typeQuery.setCacheResult(true);
    9298  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    93   annotationTypes = annotationTypeQuery.list(dc);
     99  SnapshotManager manager = new SnapshotManager();
     100  for (AnnotationType at : annotationTypeQuery.list(dc))
     101  {
     102    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     103  }
    94104
    95105  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
     
    204214      />
    205215      <%
    206       for (AnnotationType at : annotationTypes)
     216      for (AnnotationLoaderUtil loader : annotationLoaders)
    207217      {
     218        AnnotationType at = loader.getAnnotationType();
    208219        Enumeration<String, String> annotationEnum = null;
    209220        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    456467                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    457468                <%
    458                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    459                 if (as != null)
     469                if (item.isAnnotated())
    460470                {
    461                   for (AnnotationType at : annotationTypes)
     471                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     472                  for (AnnotationLoaderUtil loader : annotationLoaders)
    462473                  {
    463                     if (as.hasAnnotation(at))
     474                    if (loader.find(snapshot))
    464475                    {
    465                       Annotation a = as.getAnnotation(at);
    466                       String suffix = a.getUnitSymbol(null);
    467                       if (suffix != null) suffix = "&nbsp;" + suffix;
    468476                      %>
    469477                      <tbl:cell
    470                         column="<%="at"+at.getId()%>"
     478                        column="<%="at"+loader.getId()%>"
    471479                        ><tbl:cellvalue
    472                           list="<%=a.getValues(null)%>"
    473                           suffix="<%=suffix%>"
     480                          list="<%=loader.getValues()%>"
     481                          suffix="<%=loader.getUnitSymbol()%>"
    474482                      /></tbl:cell>
    475483                      <%
  • trunk/www/lims/arraybatches/list_batches.jsp

    r6307 r6541  
    4848  import="net.sf.basedb.core.plugin.GuiContext"
    4949  import="net.sf.basedb.core.plugin.Plugin"
     50  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     51  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     52  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     53  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     54  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5055  import="net.sf.basedb.core.User"
    5156  import="net.sf.basedb.util.Enumeration"
     
    8994final DbControl dc = sc.newDbControl();
    9095ItemResultIterator<ArrayBatch> batches = null;
    91 ItemResultList<AnnotationType> annotationTypes = null;
     96List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    9297try
    9398{
    9499  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
    95100  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     101  SnapshotManager manager = new SnapshotManager();
     102  for (AnnotationType at : annotationTypeQuery.list(dc))
     103  {
     104    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     105  }
    96106
    97107  // Query for slide relatated to the current batch
     
    103113
    104114  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    105   annotationTypes = annotationTypeQuery.list(dc);
    106115  try
    107116  {
     
    230239      />     
    231240      <%
    232       for (AnnotationType at : annotationTypes)
     241      for (AnnotationLoaderUtil loader : annotationLoaders)
    233242      {
     243        AnnotationType at = loader.getAnnotationType();
    234244        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    235245        Enumeration<String, String> annotationEnum = null;
     
    529539                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>               
    530540                <%
    531                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    532                 if (as != null)
     541                if (item.isAnnotated())
    533542                {
    534                   for (AnnotationType at : annotationTypes)
     543                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     544                  for (AnnotationLoaderUtil loader : annotationLoaders)
    535545                  {
    536                     if (as.hasAnnotation(at))
     546                    if (loader.find(snapshot))
    537547                    {
    538                       Annotation a = as.getAnnotation(at);
    539                       String suffix = a.getUnitSymbol(null);
    540                       if (suffix != null) suffix = "&nbsp;" + suffix;
    541548                      %>
    542549                      <tbl:cell
    543                         column="<%="at"+at.getId()%>"
     550                        column="<%="at"+loader.getId()%>"
    544551                        ><tbl:cellvalue
    545                           list="<%=a.getValues(null)%>"
    546                           suffix="<%=suffix%>"
     552                          list="<%=loader.getValues()%>"
     553                          suffix="<%=loader.getUnitSymbol()%>"
    547554                      /></tbl:cell>
    548555                      <%
  • trunk/www/lims/arraydesigns/list_designs.jsp

    r6307 r6541  
    5454  import="net.sf.basedb.core.plugin.GuiContext"
    5555  import="net.sf.basedb.core.plugin.Plugin"
     56  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     57  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     58  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     59  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     60  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5661  import="net.sf.basedb.util.Enumeration"
    5762  import="net.sf.basedb.util.ShareableUtil"
     
    7378  import="java.util.Map"
    7479  import="java.util.Date"
     80  import="java.util.ArrayList"
    7581%>
    7682<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    102108final DbControl dc = sc.newDbControl();
    103109ItemResultIterator<ArrayDesign> designs = null;
    104 ItemResultList<AnnotationType> annotationTypes = null;
     110List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    105111try
    106112{
    107113  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     114  SnapshotManager manager = new SnapshotManager();
     115  for (AnnotationType at : annotationTypeQuery.list(dc))
     116  {
     117    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     118  }
    108119
    109120  // Query for batches relatated to the current design
     
    126137 
    127138  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    128   annotationTypes = annotationTypeQuery.list(dc);
    129139  try
    130140  {
     
    328338      />     
    329339      <%
    330       for (AnnotationType at : annotationTypes)
     340      for (AnnotationLoaderUtil loader : annotationLoaders)
    331341      {
     342        AnnotationType at = loader.getAnnotationType();
    332343        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    333344        Enumeration<String, String> annotationEnum = null;
     
    655666                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>               
    656667                <%
    657                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    658                 if (as != null)
     668                if (item.isAnnotated())
    659669                {
    660                   for (AnnotationType at : annotationTypes)
     670                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     671                  for (AnnotationLoaderUtil loader : annotationLoaders)
    661672                  {
    662                     if (as.hasAnnotation(at))
     673                    if (loader.find(snapshot))
    663674                    {
    664                       Annotation a = as.getAnnotation(at);
    665                       String suffix = a.getUnitSymbol(null);
    666                       if (suffix != null) suffix = "&nbsp;" + suffix;
    667675                      %>
    668676                      <tbl:cell
    669                         column="<%="at"+at.getId()%>"
     677                        column="<%="at"+loader.getId()%>"
    670678                        ><tbl:cellvalue
    671                           list="<%=a.getValues(null)%>"
    672                           suffix="<%=suffix%>"
     679                          list="<%=loader.getValues()%>"
     680                          suffix="<%=loader.getUnitSymbol()%>"
    673681                      /></tbl:cell>
    674682                      <%
  • trunk/www/lims/arrayslides/list_slides.jsp

    r6307 r6541  
    4646  import="net.sf.basedb.core.plugin.GuiContext"
    4747  import="net.sf.basedb.core.plugin.Plugin"
     48  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     49  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     50  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     51  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     52  import="net.sf.basedb.core.snapshot.SnapshotManager"
    4853  import="net.sf.basedb.util.Enumeration"
    4954  import="net.sf.basedb.util.ShareableUtil"
     
    6570  import="java.util.List"
    6671  import="java.util.Map"
     72  import="java.util.ArrayList"
    6773%>
    6874<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8490final DbControl dc = sc.newDbControl();
    8591ItemResultIterator<ArraySlide> slides = null;
    86 ItemResultList<AnnotationType> annotationTypes = null;
     92List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    8793try
    8894{
    8995  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
    9096  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     97  SnapshotManager manager = new SnapshotManager();
     98  for (AnnotationType at : annotationTypeQuery.list(dc))
     99  {
     100    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     101  }
    91102
    92103  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    93   annotationTypes = annotationTypeQuery.list(dc);
    94104  try
    95105  {
     
    238248      />     
    239249      <%
    240       for (AnnotationType at : annotationTypes)
     250      for (AnnotationLoaderUtil loader : annotationLoaders)
    241251      {
     252        AnnotationType at = loader.getAnnotationType();
    242253        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    243254        Enumeration<String, String> annotationEnum = null;
     
    513524                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>               
    514525                <%
    515                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    516                 if (as != null)
     526                if (item.isAnnotated())
    517527                {
    518                   for (AnnotationType at : annotationTypes)
     528                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     529                  for (AnnotationLoaderUtil loader : annotationLoaders)
    519530                  {
    520                     if (as.hasAnnotation(at))
     531                    if (loader.find(snapshot))
    521532                    {
    522                       Annotation a = as.getAnnotation(at);
    523                       String suffix = a.getUnitSymbol(null);
    524                       if (suffix != null) suffix = "&nbsp;" + suffix;
    525533                      %>
    526534                      <tbl:cell
    527                         column="<%="at"+at.getId()%>"
     535                        column="<%="at"+loader.getId()%>"
    528536                        ><tbl:cellvalue
    529                           list="<%=a.getValues(null)%>"
    530                           suffix="<%=suffix%>"
     537                          list="<%=loader.getValues()%>"
     538                          suffix="<%=loader.getUnitSymbol()%>"
    531539                      /></tbl:cell>
    532540                      <%
  • trunk/www/lims/plates/list_plates.jsp

    r6307 r6541  
    4949  import="net.sf.basedb.core.query.Orders"
    5050  import="net.sf.basedb.core.query.Hql"
     51  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     52  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     53  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     54  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     55  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5156  import="net.sf.basedb.util.Enumeration"
    5257  import="net.sf.basedb.util.ShareableUtil"
     
    7075  import="java.util.List"
    7176  import="java.util.Map"
     77  import="java.util.ArrayList"
    7278%>
    7379<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8995final DbControl dc = sc.newDbControl();
    9096ItemResultIterator<Plate> plates = null;
    91 ItemResultList<AnnotationType> annotationTypes = null;
     97List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    9298try
    9399{
    94100  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
    95101  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     102  SnapshotManager manager = new SnapshotManager();
     103  for (AnnotationType at : annotationTypeQuery.list(dc))
     104  {
     105    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     106  }
    96107
    97108  final ItemQuery<PlateGeometry> geometryQuery = PlateGeometry.getQuery();
     
    114125 
    115126  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    116   annotationTypes = annotationTypeQuery.list(dc);
    117127  try
    118128  {
     
    277287      />     
    278288      <%
    279       for (AnnotationType at : annotationTypes)
     289      for (AnnotationLoaderUtil loader : annotationLoaders)
    280290      {
     291        AnnotationType at = loader.getAnnotationType();
    281292        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    282293        Enumeration<String, String> annotationEnum = null;
     
    600611                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>               
    601612                <%
    602                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    603                 if (as != null)
     613                if (item.isAnnotated())
    604614                {
    605                   for (AnnotationType at : annotationTypes)
     615                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     616                  for (AnnotationLoaderUtil loader : annotationLoaders)
    606617                  {
    607                     if (as.hasAnnotation(at))
     618                    if (loader.find(snapshot))
    608619                    {
    609                       Annotation a = as.getAnnotation(at);
    610                       String suffix = a.getUnitSymbol(null);
    611                       if (suffix != null) suffix = "&nbsp;" + suffix;
    612620                      %>
    613621                      <tbl:cell
    614                         column="<%="at"+at.getId()%>"
     622                        column="<%="at"+loader.getId()%>"
    615623                        ><tbl:cellvalue
    616                           list="<%=a.getValues(null)%>"
    617                           suffix="<%=suffix%>"
     624                          list="<%=loader.getValues()%>"
     625                          suffix="<%=loader.getUnitSymbol()%>"
    618626                      /></tbl:cell>
    619627                      <%
  • trunk/www/lims/plates/wells/list_wells.jsp

    r6497 r6541  
    5050  import="net.sf.basedb.core.plugin.GuiContext"
    5151  import="net.sf.basedb.core.plugin.Plugin"
     52  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     53  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     54  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     55  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     56  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5257  import="net.sf.basedb.core.data.ReporterData"
    5358  import="net.sf.basedb.util.Enumeration"
     
    9297final DbControl dc = sc.newDbControl();
    9398ItemResultIterator<Well> wells = null;
    94 ItemResultList<AnnotationType> annotationTypes = null;
     99List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    95100try
    96101{
    97102  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    98   annotationTypes = annotationTypeQuery.list(dc);
     103  SnapshotManager manager = new SnapshotManager();
     104  for (AnnotationType at : annotationTypeQuery.list(dc))
     105  {
     106    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     107  }
    99108  final Plate plate = Plate.getById(dc, plateId);
    100109  final boolean createPermission = plate.hasPermission(Permission.WRITE);
     
    332341      %>
    333342      <%
    334       for (AnnotationType at : annotationTypes)
     343      for (AnnotationLoaderUtil loader : annotationLoaders)
    335344      {
     345        AnnotationType at = loader.getAnnotationType();
    336346        Enumeration<String, String> annotationEnum = null;
    337347        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    583593                  }
    584594                }
    585                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    586                 if (as != null)
     595                if (item.isAnnotated())
    587596                {
    588                   for (AnnotationType at : annotationTypes)
     597                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     598                  for (AnnotationLoaderUtil loader : annotationLoaders)
    589599                  {
    590                     if (as.hasAnnotation(at))
     600                    if (loader.find(snapshot))
    591601                    {
    592                       Annotation a = as.getAnnotation(at);
    593                       String suffix = a.getUnitSymbol(null);
    594                       if (suffix != null) suffix = "&nbsp;" + suffix;
    595602                      %>
    596603                      <tbl:cell
    597                         column="<%="at"+at.getId()%>"
     604                        column="<%="at"+loader.getId()%>"
    598605                        ><tbl:cellvalue
    599                           list="<%=a.getValues(null)%>"
    600                           suffix="<%=suffix%>"
     606                          list="<%=loader.getValues()%>"
     607                          suffix="<%=loader.getUnitSymbol()%>"
    601608                      /></tbl:cell>
    602609                      <%
  • trunk/www/views/derivedbioassays/list_bioassays.jsp

    r6311 r6541  
    5050  import="net.sf.basedb.core.plugin.GuiContext"
    5151  import="net.sf.basedb.core.plugin.Plugin"
     52  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     53  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     54  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     55  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     56  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5257  import="net.sf.basedb.util.Enumeration"
    5358  import="net.sf.basedb.util.ShareableUtil"
     
    6974  import="java.util.Map"
    7075  import="java.util.Date"
     76  import="java.util.ArrayList"
    7177%>
    7278<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8995final DbControl dc = sc.newDbControl();
    9096ItemResultIterator<DerivedBioAssay> bioAssays = null;
    91 ItemResultList<AnnotationType> annotationTypes = null;
     97List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    9298try
    9399{
    94100  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     101  SnapshotManager manager = new SnapshotManager();
     102  for (AnnotationType at : annotationTypeQuery.list(dc))
     103  {
     104    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     105  }
    95106  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    96107
     
    123134 
    124135  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    125   annotationTypes = annotationTypeQuery.list(dc);
    126136  try
    127137  {
     
    306316      />
    307317      <%
    308       for (AnnotationType at : annotationTypes)
     318      for (AnnotationLoaderUtil loader : annotationLoaders)
    309319      {
     320        AnnotationType at = loader.getAnnotationType();
    310321        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    311322        Enumeration<String, String> annotationEnum = null;
     
    730741                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    731742                <%
    732                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    733                 if (as != null)
     743                if (item.isAnnotated())
    734744                {
    735                   for (AnnotationType at : annotationTypes)
     745                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     746                  for (AnnotationLoaderUtil loader : annotationLoaders)
    736747                  {
    737                     if (as.hasAnnotation(at))
     748                    if (loader.find(snapshot))
    738749                    {
    739                       Annotation a = as.getAnnotation(at);
    740                       String suffix = a.getUnitSymbol(null);
    741                       if (suffix != null) suffix = "&nbsp;" + suffix;
    742750                      %>
    743751                      <tbl:cell
    744                         column="<%="at"+at.getId()%>"
     752                        column="<%="at"+loader.getId()%>"
    745753                        ><tbl:cellvalue
    746                           list="<%=a.getValues(null)%>"
    747                           suffix="<%=suffix%>"
     754                          list="<%=loader.getValues()%>"
     755                          suffix="<%=loader.getUnitSymbol()%>"
    748756                      /></tbl:cell>
    749757                      <%
  • trunk/www/views/experiments/bioassays/list_bioassays.jsp

    r6413 r6541  
    5151  import="net.sf.basedb.core.plugin.GuiContext"
    5252  import="net.sf.basedb.core.plugin.Plugin"
     53  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     54  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     55  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     56  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
    5357  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5458  import="net.sf.basedb.util.Tree"
     
    6973  import="java.util.List"
    7074  import="java.util.LinkedList"
     75  import="java.util.ArrayList"
    7176  import="java.util.Map"
    7277  import="java.util.HashMap"
     
    9499final DbControl dc = sc.newDbControl();
    95100ItemResultIterator<BioAssay> bioAssays = null;
    96 ItemResultList<AnnotationType> annotationTypes = null;
     101List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    97102ItemResultList<AnnotationType> experimentalFactors = null;
    98103try
    99104{
    100105  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     106  SnapshotManager manager = new SnapshotManager();
     107  for (AnnotationType at : annotationTypeQuery.list(dc))
     108  {
     109    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     110  }
    101111  final BioAssaySet bioAssaySet = BioAssaySet.getById(dc, bioAssaySetId);
    102112  final Experiment experiment = bioAssaySet.getExperiment();
     
    118128 
    119129  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    120   annotationTypes = annotationTypeQuery.list(dc);
    121130  experimentalFactors = experimentalFactorQuery.list(dc);
    122   final SnapshotManager snapshotManager = new SnapshotManager();
    123131  try
    124132  {
     
    255263      />
    256264      <%
    257       for (AnnotationType at : annotationTypes)
     265      for (AnnotationLoaderUtil loader : annotationLoaders)
    258266      {
     267        AnnotationType at = loader.getAnnotationType();
    259268        Enumeration<String, String> annotationEnum = null;
    260269        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    510519                </tbl:cell>
    511520                <%
    512                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    513                 if (as != null)
     521                if (item.isAnnotated())
    514522                {
    515                   for (AnnotationType at : annotationTypes)
     523                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     524                  for (AnnotationLoaderUtil loader : annotationLoaders)
    516525                  {
    517                     if (as.hasAnnotation(at))
     526                    if (loader.find(snapshot))
    518527                    {
    519                       Annotation a = as.getAnnotation(at);
    520                       String suffix = a.getUnitSymbol(null);
    521                       if (suffix != null) suffix = "&nbsp;" + suffix;
    522528                      %>
    523529                      <tbl:cell
    524                         column="<%="at"+at.getId()%>"
     530                        column="<%="at"+loader.getId()%>"
    525531                        ><tbl:cellvalue
    526                           list="<%=a.getValues(null)%>"
    527                           suffix="<%=suffix%>"
     532                          list="<%=loader.getValues()%>"
     533                          suffix="<%=loader.getUnitSymbol()%>"
    528534                      /></tbl:cell>
    529535                      <%
     
    536542                  <tbl:cell column="<%="ef"+at.getId()%>"
    537543                    ><tbl:cellvalue
    538                     list="<%=BioAssaySetUtil.getAnnotationValues(dc, snapshotManager, item, at)%>"
     544                    list="<%=BioAssaySetUtil.getAnnotationValues(dc, manager, item, at)%>"
    539545                  /></tbl:cell>
    540546                  <%
  • trunk/www/views/experiments/bioassaysets/analysis_tree.jsp

    r6402 r6541  
    5454  import="net.sf.basedb.core.plugin.GuiContext"
    5555  import="net.sf.basedb.core.plugin.Plugin"
     56  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     57  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     58  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     59  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     60  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5661  import="net.sf.basedb.util.Tree"
    5762  import="net.sf.basedb.util.Enumeration"
     
    293298final DbControl dc = sc.newDbControl();
    294299Tree<BasicItem> analysisTree = null;
    295 ItemResultList<AnnotationType> annotationTypes = null;
     300List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    296301try
    297302{
    298303  Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
    299304  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     305  SnapshotManager manager = new SnapshotManager();
     306  for (AnnotationType at : annotationTypeQuery.list(dc))
     307  {
     308    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     309  }
    300310  final Experiment experiment = Experiment.getById(dc, experimentId);
    301311  final BasicItem root = transformationId == 0 ?
     
    311321  transformationQuery.setMaxResults(-1);
    312322  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    313   annotationTypes = annotationTypeQuery.list(dc);
    314323  try
    315324  {
     
    461470      />
    462471      <%
    463       for (AnnotationType at : annotationTypes)
     472      for (AnnotationLoaderUtil loader : annotationLoaders)
    464473      {
     474        AnnotationType at = loader.getAnnotationType();
    465475        Enumeration<String, String> annotationEnum = null;
    466476        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
     
    798808                    <tbl:cell column="plugin">&nbsp;</tbl:cell>
    799809                    <%
    800                     AnnotationSet as = bas.isAnnotated() ? bas.getAnnotationSet() : null;
    801                     if (as != null)
     810                    if (bas.isAnnotated())
    802811                    {
    803                       for (AnnotationType at : annotationTypes)
     812                      AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, bas.getAnnotationSet().getId());
     813                      for (AnnotationLoaderUtil loader : annotationLoaders)
    804814                      {
    805                         if (as.hasAnnotation(at))
     815                        if (loader.find(snapshot))
    806816                        {
    807                           Annotation a = as.getAnnotation(at);
    808                           String suffix = a.getUnitSymbol(null);
    809                           if (suffix != null) suffix = "&nbsp;" + suffix;
    810817                          %>
    811818                          <tbl:cell
    812                             column="<%="at"+at.getId()%>"
     819                            column="<%="at"+loader.getId()%>"
    813820                            ><tbl:cellvalue
    814                               list="<%=a.getValues(null)%>"
    815                               suffix="<%=suffix%>"
     821                              list="<%=loader.getValues()%>"
     822                              suffix="<%=loader.getUnitSymbol()%>"
    816823                          /></tbl:cell>
    817824                          <%
  • trunk/www/views/physicalbioassays/list_bioassays.jsp

    r6319 r6541  
    5555  import="net.sf.basedb.core.plugin.GuiContext"
    5656  import="net.sf.basedb.core.plugin.Plugin"
     57  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     58  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     59  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     60  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     61  import="net.sf.basedb.core.snapshot.SnapshotManager"
    5762  import="net.sf.basedb.util.Enumeration"
    5863  import="net.sf.basedb.util.ShareableUtil"
     
    7479  import="java.util.Map"
    7580  import="java.util.Date"
     81  import="java.util.ArrayList"
    7682%>
    7783<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    9399final DbControl dc = sc.newDbControl();
    94100ItemResultIterator<PhysicalBioAssay> bioAssays = null;
    95 ItemResultList<AnnotationType> annotationTypes = null;
     101List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    96102try
    97103{
    98104  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     105  SnapshotManager manager = new SnapshotManager();
     106  for (AnnotationType at : annotationTypeQuery.list(dc))
     107  {
     108    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     109  }
    99110  final ItemQuery<ItemSubtype> subtypesQuery = Base.getSubtypesQuery(itemType);
    100111
     
    118129 
    119130  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    120   annotationTypes = annotationTypeQuery.list(dc);
    121131  try
    122132  {
     
    287297      />
    288298      <%
    289       for (AnnotationType at : annotationTypes)
     299      for (AnnotationLoaderUtil loader : annotationLoaders)
    290300      {
     301        AnnotationType at = loader.getAnnotationType();
    291302        Formatter formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
    292303        Enumeration<String, String> annotationEnum = null;
     
    667678                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    668679                <%
    669                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    670                 if (as != null)
     680                if (item.isAnnotated())
    671681                {
    672                   for (AnnotationType at : annotationTypes)
     682                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     683                  for (AnnotationLoaderUtil loader : annotationLoaders)
    673684                  {
    674                     if (as.hasAnnotation(at))
     685                    if (loader.find(snapshot))
    675686                    {
    676                       Annotation a = as.getAnnotation(at);
    677                       String suffix = a.getUnitSymbol(null);
    678                       if (suffix != null) suffix = "&nbsp;" + suffix;
    679687                      %>
    680688                      <tbl:cell
    681                         column="<%="at"+at.getId()%>"
     689                        column="<%="at"+loader.getId()%>"
    682690                        ><tbl:cellvalue
    683                           list="<%=a.getValues(null)%>"
    684                           suffix="<%=suffix%>"
     691                          list="<%=loader.getValues()%>"
     692                          suffix="<%=loader.getUnitSymbol()%>"
    685693                      /></tbl:cell>
    686694                      <%
  • trunk/www/views/rawbioassays/list_rawbioassays.jsp

    r6311 r6541  
    5858  import="net.sf.basedb.core.plugin.GuiContext"
    5959  import="net.sf.basedb.core.plugin.Plugin"
     60  import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
     61  import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
     62  import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
     63  import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
     64  import="net.sf.basedb.core.snapshot.SnapshotManager"
    6065  import="net.sf.basedb.util.Enumeration"
    6166  import="net.sf.basedb.util.ShareableUtil"
     
    7984  import="java.util.Map"
    8085  import="java.util.Date"
     86  import="java.util.ArrayList"
    8187%>
    8288<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    100106final DbControl dc = sc.newDbControl();
    101107ItemResultIterator<RawBioAssay> rawBioAssays = null;
    102 ItemResultList<AnnotationType> annotationTypes = null;
     108List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
    103109try
    104110{
    105111  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
     112  SnapshotManager manager = new SnapshotManager();
     113  for (AnnotationType at : annotationTypeQuery.list(dc))
     114  {
     115    annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
     116  }
    106117
    107118  // Query for experiments relatated to the current raw bioassay
     
    125136  Unit bytes = UnitUtil.getUnit(dc, Quantity.STORAGE_SIZE, "B");
    126137  Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
    127   annotationTypes = annotationTypeQuery.list(dc);
    128138  try
    129139  {
     
    388398      />
    389399      <%
    390       for (AnnotationType at : annotationTypes)
     400      for (AnnotationLoaderUtil loader : annotationLoaders)
    391401      {
     402        AnnotationType at = loader.getAnnotationType();
    392403        Enumeration<String, String> annotationEnum = null;
    393404        if (at.isEnumeration())
     
    770781                <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
    771782                <%
    772                 AnnotationSet as = item.isAnnotated() ? item.getAnnotationSet() : null;
    773                 if (as != null)
     783                if (item.isAnnotated())
    774784                {
    775                   for (AnnotationType at : annotationTypes)
     785                  AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
     786                  for (AnnotationLoaderUtil loader : annotationLoaders)
    776787                  {
    777                     if (as.hasAnnotation(at))
     788                    if (loader.find(snapshot))
    778789                    {
    779                       Annotation a = as.getAnnotation(at);
    780                       String suffix = a.getUnitSymbol(null);
    781                       if (suffix != null) suffix = "&nbsp;" + suffix;
    782790                      %>
    783791                      <tbl:cell
    784                         column="<%="at"+at.getId()%>"
     792                        column="<%="at"+loader.getId()%>"
    785793                        ><tbl:cellvalue
    786                           list="<%=a.getValues(null)%>"
    787                           suffix="<%=suffix%>"
     794                          list="<%=loader.getValues()%>"
     795                          suffix="<%=loader.getUnitSymbol()%>"
    788796                      /></tbl:cell>
    789797                      <%
Note: See TracChangeset for help on using the changeset viewer.