www/views/experiments/list_experiments.jsp

Code
Comments
Other
Rev Date Author Line
2305 22 May 06 jari 1 <%-- $Id$
2305 22 May 06 jari 2   ------------------------------------------------------------------
5425 23 Sep 10 nicklas 3   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
3675 16 Aug 07 jari 4   Copyright (C) 2007 Johan Enell, Martin Svensson
2305 22 May 06 jari 5
2304 22 May 06 jari 6   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 7   Available at http://base.thep.lu.se/
2305 22 May 06 jari 8
2305 22 May 06 jari 9   BASE is free software; you can redistribute it and/or
2305 22 May 06 jari 10   modify it under the terms of the GNU General Public License
4476 05 Sep 08 jari 11   as published by the Free Software Foundation; either version 3
2305 22 May 06 jari 12   of the License, or (at your option) any later version.
2305 22 May 06 jari 13
2305 22 May 06 jari 14   BASE is distributed in the hope that it will be useful,
2305 22 May 06 jari 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
2305 22 May 06 jari 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2305 22 May 06 jari 17   GNU General Public License for more details.
2305 22 May 06 jari 18
2305 22 May 06 jari 19   You should have received a copy of the GNU General Public License
4511 11 Sep 08 jari 20   along with BASE. If not, see <http://www.gnu.org/licenses/>.
2305 22 May 06 jari 21   ------------------------------------------------------------------
2305 22 May 06 jari 22
2305 22 May 06 jari 23   @author Nicklas
2305 22 May 06 jari 24   @version 2.0
2305 22 May 06 jari 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
2305 22 May 06 jari 27   import="net.sf.basedb.core.SessionControl"
2305 22 May 06 jari 28   import="net.sf.basedb.core.DbControl"
2305 22 May 06 jari 29   import="net.sf.basedb.core.Item"
7153 20 May 16 nicklas 30   import="net.sf.basedb.core.AnnotationType"
2305 22 May 06 jari 31   import="net.sf.basedb.core.Experiment"
2305 22 May 06 jari 32   import="net.sf.basedb.core.RawDataType"
2305 22 May 06 jari 33   import="net.sf.basedb.core.RawDataTypes"
2305 22 May 06 jari 34   import="net.sf.basedb.core.ItemQuery"
2305 22 May 06 jari 35   import="net.sf.basedb.core.Include"
2305 22 May 06 jari 36   import="net.sf.basedb.core.ItemResultIterator"
2305 22 May 06 jari 37   import="net.sf.basedb.core.ItemResultList"
2305 22 May 06 jari 38   import="net.sf.basedb.core.ItemContext"
3552 06 Jul 07 martin 39   import="net.sf.basedb.core.Nameable"
2305 22 May 06 jari 40   import="net.sf.basedb.core.Permission"
2305 22 May 06 jari 41   import="net.sf.basedb.core.PluginDefinition"
4669 26 Nov 08 nicklas 42   import="net.sf.basedb.core.Quantity"
4669 26 Nov 08 nicklas 43   import="net.sf.basedb.core.Unit"
2305 22 May 06 jari 44   import="net.sf.basedb.core.query.Hql"
2305 22 May 06 jari 45   import="net.sf.basedb.core.query.Restrictions"
2305 22 May 06 jari 46   import="net.sf.basedb.core.query.Expressions"
2305 22 May 06 jari 47   import="net.sf.basedb.core.plugin.GuiContext"
2305 22 May 06 jari 48   import="net.sf.basedb.core.plugin.Plugin"
7153 20 May 16 nicklas 49   import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
7153 20 May 16 nicklas 50   import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
7153 20 May 16 nicklas 51   import="net.sf.basedb.core.snapshot.SnapshotManager"
2305 22 May 06 jari 52   import="net.sf.basedb.util.Enumeration"
3552 06 Jul 07 martin 53   import="net.sf.basedb.util.ShareableUtil"
4669 26 Nov 08 nicklas 54   import="net.sf.basedb.util.units.UnitUtil"
2305 22 May 06 jari 55   import="net.sf.basedb.clients.web.Base"
2305 22 May 06 jari 56   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 57   import="net.sf.basedb.clients.web.PermissionUtil"
2305 22 May 06 jari 58   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 59   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 60   import="net.sf.basedb.util.formatter.Formatter"
2942 22 Nov 06 nicklas 61   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4870 01 Apr 09 nicklas 62   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4870 01 Apr 09 nicklas 63   import="net.sf.basedb.clients.web.extensions.JspContext"
4870 01 Apr 09 nicklas 64   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 65   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4870 01 Apr 09 nicklas 66   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 67   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6040 30 Mar 12 nicklas 68   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
7337 12 Apr 17 nicklas 69   import="net.sf.basedb.clients.web.util.ProjectSpecificInfoFilter"
4870 01 Apr 09 nicklas 70   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
3552 06 Jul 07 martin 71   import="java.util.Iterator"
2305 22 May 06 jari 72   import="java.util.List"
7153 20 May 16 nicklas 73   import="java.util.ArrayList"
2305 22 May 06 jari 74   import="java.util.Map"
2942 22 Nov 06 nicklas 75   import="java.util.Date"
2305 22 May 06 jari 76 %>
2305 22 May 06 jari 77 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2305 22 May 06 jari 78 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4870 01 Apr 09 nicklas 79 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
2305 22 May 06 jari 80 <%!
2305 22 May 06 jari 81   private static final Item itemType = Item.EXPERIMENT;
2305 22 May 06 jari 82   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
2305 22 May 06 jari 83 %>
2305 22 May 06 jari 84 <%
2305 22 May 06 jari 85 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
2305 22 May 06 jari 86 final String ID = sc.getId();
2305 22 May 06 jari 87 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
2305 22 May 06 jari 88 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
2305 22 May 06 jari 89
2305 22 May 06 jari 90 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
2305 22 May 06 jari 91 final String callback = request.getParameter("callback");
2305 22 May 06 jari 92 final String title = mode.generateTitle("experiment", "experiments");
7954 12 May 21 nicklas 93 final DbControl dc = sc.newDbControl(":List "+itemType);
2305 22 May 06 jari 94 ItemResultIterator<Experiment> experiments = null;
7153 20 May 16 nicklas 95 List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
2305 22 May 06 jari 96 try
2305 22 May 06 jari 97 {
7153 20 May 16 nicklas 98   ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
7153 20 May 16 nicklas 99   SnapshotManager manager = new SnapshotManager();
7337 12 Apr 17 nicklas 100   ProjectSpecificInfoFilter psInfo = new ProjectSpecificInfoFilter();
7153 20 May 16 nicklas 101   for (AnnotationType at : annotationTypeQuery.list(dc))
7153 20 May 16 nicklas 102   {
7153 20 May 16 nicklas 103     annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
7153 20 May 16 nicklas 104   }
7153 20 May 16 nicklas 105
4669 26 Nov 08 nicklas 106   Unit bytes = UnitUtil.getUnit(dc, Quantity.STORAGE_SIZE, "B");
2305 22 May 06 jari 107   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 108   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2305 22 May 06 jari 109   try
2305 22 May 06 jari 110   {
7914 23 Feb 21 nicklas 111     final ItemQuery<Experiment> query = Base.getConfiguredQuery(dc, cc, jspContext, true, Experiment.getQuery(), mode);
2305 22 May 06 jari 112     experiments = query.iterate(dc);
2305 22 May 06 jari 113   }
2305 22 May 06 jari 114   catch (Throwable t)
2305 22 May 06 jari 115   {
2305 22 May 06 jari 116     cc.setMessage(t.getMessage());
2305 22 May 06 jari 117   }
2305 22 May 06 jari 118   int numListed = 0;
2942 22 Nov 06 nicklas 119   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
7604 25 Feb 19 nicklas 120   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 121   ExtensionsInvoker<ListColumnAction<Experiment,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
2305 22 May 06 jari 122   %>
6315 06 Sep 13 nicklas 123   <base:page title="<%=title==null ? "Experiments" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6315 06 Sep 13 nicklas 124   <base:head scripts="table.js,~experiments.js" styles="table.css,toolbar.css">
4870 01 Apr 09 nicklas 125     <ext:scripts context="<%=jspContext%>" />
4870 01 Apr 09 nicklas 126     <ext:stylesheets context="<%=jspContext%>" />
2305 22 May 06 jari 127   </base:head>
2305 22 May 06 jari 128   
2305 22 May 06 jari 129   <base:body>
5952 10 Feb 12 nicklas 130     <h1><%=title==null ? "Experiments" : title%></h1>
5952 10 Feb 12 nicklas 131     <div class="content">
2305 22 May 06 jari 132     <tbl:table 
2305 22 May 06 jari 133       id="experiments" 
2305 22 May 06 jari 134       columns="<%=cc.getSetting("columns")%>"
2305 22 May 06 jari 135       sortby="<%=cc.getSortProperty()%>" 
2305 22 May 06 jari 136       direction="<%=cc.getSortDirection()%>"
2305 22 May 06 jari 137       action="index.jsp"
2305 22 May 06 jari 138       sc="<%=sc%>"
2305 22 May 06 jari 139       item="<%=itemType%>"
6698 30 Jan 15 nicklas 140       filterrows="<%=cc.getFilterRows()%>"
5952 10 Feb 12 nicklas 141       subclass="fulltable"
7982 14 Jun 21 nicklas 142       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
2305 22 May 06 jari 143       >
2305 22 May 06 jari 144       <tbl:hidden 
2305 22 May 06 jari 145         name="mode" 
2305 22 May 06 jari 146         value="<%=mode.getName()%>" 
2305 22 May 06 jari 147       />
2305 22 May 06 jari 148       <tbl:hidden 
2305 22 May 06 jari 149         name="callback" 
2305 22 May 06 jari 150         value="<%=callback%>" 
2305 22 May 06 jari 151         skip="<%=callback == null%>" 
2305 22 May 06 jari 152       />
2305 22 May 06 jari 153       <tbl:columndef 
2305 22 May 06 jari 154         id="name"
2305 22 May 06 jari 155         property="name"
2305 22 May 06 jari 156         datatype="string"
2305 22 May 06 jari 157         title="Name"
2305 22 May 06 jari 158         sortable="true" 
2305 22 May 06 jari 159         filterable="true"
2305 22 May 06 jari 160         exportable="true"
2305 22 May 06 jari 161         show="always" 
2305 22 May 06 jari 162       />
4332 12 Jun 08 martin 163       <tbl:columndef 
4332 12 Jun 08 martin 164         id="id"
4387 11 Aug 08 nicklas 165         clazz="uniquecol"
4332 12 Jun 08 martin 166         property="id"
4332 12 Jun 08 martin 167         datatype="int"
4332 12 Jun 08 martin 168         title="ID"
4332 12 Jun 08 martin 169         sortable="true"
4332 12 Jun 08 martin 170         filterable="true"
4332 12 Jun 08 martin 171         exportable="true"
4332 12 Jun 08 martin 172       />
4698 10 Dec 08 nicklas 173       <tbl:columndef 
4698 10 Dec 08 nicklas 174         id="entryDate"
4698 10 Dec 08 nicklas 175         property="entryDate"
4698 10 Dec 08 nicklas 176         datatype="date"
4698 10 Dec 08 nicklas 177         title="Registered"
4698 10 Dec 08 nicklas 178         sortable="true" 
4698 10 Dec 08 nicklas 179         filterable="true"
4698 10 Dec 08 nicklas 180         exportable="true"
4698 10 Dec 08 nicklas 181         formatter="<%=dateFormatter%>"
4698 10 Dec 08 nicklas 182       />
2305 22 May 06 jari 183       <%
2305 22 May 06 jari 184       Enumeration<String, String> rawEnumeration = new Enumeration<String, String>();
2305 22 May 06 jari 185       for (RawDataType rdt : RawDataTypes.getRawDataTypes())
2305 22 May 06 jari 186       {
2305 22 May 06 jari 187         rawEnumeration.add(rdt.getId(), HTML.encodeTags(rdt.getName()));
2305 22 May 06 jari 188       }
3820 12 Oct 07 nicklas 189       rawEnumeration.sortValues();
2305 22 May 06 jari 190       %>
2305 22 May 06 jari 191       <tbl:columndef 
2305 22 May 06 jari 192         id="rawDataType"
2305 22 May 06 jari 193         property="rawDataType"
2305 22 May 06 jari 194         datatype="string"
2305 22 May 06 jari 195         enumeration="<%=rawEnumeration%>"
2305 22 May 06 jari 196         title="Raw data type"
2305 22 May 06 jari 197         sortable="true" 
2305 22 May 06 jari 198         filterable="true"
2305 22 May 06 jari 199         exportable="true"
2305 22 May 06 jari 200       />
2305 22 May 06 jari 201       <tbl:columndef 
2305 22 May 06 jari 202         id="bytes"
2305 22 May 06 jari 203         property="bytes"
2305 22 May 06 jari 204         datatype="long"
2305 22 May 06 jari 205         title="Bytes"
2305 22 May 06 jari 206         sortable="true" 
2305 22 May 06 jari 207         filterable="true"
2305 22 May 06 jari 208         exportable="true"
4669 26 Nov 08 nicklas 209         unit="<%=bytes%>"
2305 22 May 06 jari 210       />
2305 22 May 06 jari 211       <tbl:columndef 
2694 03 Oct 06 nicklas 212         id="directory"
2694 03 Oct 06 nicklas 213         property="directory.name"
2694 03 Oct 06 nicklas 214         datatype="string"
2694 03 Oct 06 nicklas 215         title="Directory"
2694 03 Oct 06 nicklas 216         sortable="true" 
2694 03 Oct 06 nicklas 217         filterable="true"
2694 03 Oct 06 nicklas 218         exportable="true"
2694 03 Oct 06 nicklas 219       />
2694 03 Oct 06 nicklas 220       <tbl:columndef 
5877 16 Nov 11 nicklas 221         id="reporterCloneTemplate"
5877 16 Nov 11 nicklas 222         property="virtualDb.reporterCloneTemplate.name"
5877 16 Nov 11 nicklas 223         datatype="string"
5877 16 Nov 11 nicklas 224         title="Reporter clone template"
5877 16 Nov 11 nicklas 225         sortable="true" 
5877 16 Nov 11 nicklas 226         filterable="true"
5877 16 Nov 11 nicklas 227         exportable="true"
5877 16 Nov 11 nicklas 228       />
5877 16 Nov 11 nicklas 229       <tbl:columndef 
2694 03 Oct 06 nicklas 230         id="title"
2694 03 Oct 06 nicklas 231         property="title"
2694 03 Oct 06 nicklas 232         datatype="string"
2694 03 Oct 06 nicklas 233         title="Title"
2694 03 Oct 06 nicklas 234         sortable="true" 
2694 03 Oct 06 nicklas 235         filterable="true"
2694 03 Oct 06 nicklas 236         exportable="true"
2694 03 Oct 06 nicklas 237       />
2694 03 Oct 06 nicklas 238       <tbl:columndef 
2305 22 May 06 jari 239         id="abstract"
2305 22 May 06 jari 240         property="abstract"
2305 22 May 06 jari 241         datatype="string"
2305 22 May 06 jari 242         title="Abstract"
2305 22 May 06 jari 243         sortable="true" 
2305 22 May 06 jari 244         filterable="true"
2305 22 May 06 jari 245         exportable="true"
2305 22 May 06 jari 246       />
2305 22 May 06 jari 247       <tbl:columndef 
2305 22 May 06 jari 248         id="affiliations"
2305 22 May 06 jari 249         property="affiliations"
2305 22 May 06 jari 250         datatype="string"
2305 22 May 06 jari 251         title="Affiliations"
2305 22 May 06 jari 252         sortable="true" 
2305 22 May 06 jari 253         filterable="true"
2305 22 May 06 jari 254         exportable="true"
2305 22 May 06 jari 255       />
2305 22 May 06 jari 256       <tbl:columndef 
2305 22 May 06 jari 257         id="authors"
2305 22 May 06 jari 258         property="authors"
2305 22 May 06 jari 259         datatype="string"
2305 22 May 06 jari 260         title="Authors"
2305 22 May 06 jari 261         sortable="true" 
2305 22 May 06 jari 262         filterable="true"
2305 22 May 06 jari 263         exportable="true"
2305 22 May 06 jari 264       />
2305 22 May 06 jari 265       <tbl:columndef 
2305 22 May 06 jari 266         id="experimentDesign"
2305 22 May 06 jari 267         property="experimentDesign"
2305 22 May 06 jari 268         datatype="string"
2305 22 May 06 jari 269         title="Experiment design"
2305 22 May 06 jari 270         sortable="true" 
2305 22 May 06 jari 271         filterable="true"
2305 22 May 06 jari 272         exportable="true"
2305 22 May 06 jari 273       />
2305 22 May 06 jari 274       <tbl:columndef 
2305 22 May 06 jari 275         id="experimentType"
2305 22 May 06 jari 276         property="experimentType"
2305 22 May 06 jari 277         datatype="string"
2305 22 May 06 jari 278         title="Experiment type"
2305 22 May 06 jari 279         sortable="true" 
2305 22 May 06 jari 280         filterable="true"
2305 22 May 06 jari 281         exportable="true"
2305 22 May 06 jari 282       />
2305 22 May 06 jari 283       <tbl:columndef 
2305 22 May 06 jari 284         id="publication"
2305 22 May 06 jari 285         property="publication"
2305 22 May 06 jari 286         datatype="string"
2305 22 May 06 jari 287         title="Publication"
2305 22 May 06 jari 288         sortable="true" 
2305 22 May 06 jari 289         filterable="true"
2305 22 May 06 jari 290         exportable="true"
2305 22 May 06 jari 291       />
2305 22 May 06 jari 292       <tbl:columndef 
2305 22 May 06 jari 293         id="publicationDate"
2305 22 May 06 jari 294         property="publicationDate"
2305 22 May 06 jari 295         datatype="date"
2305 22 May 06 jari 296         title="Publication date"
2305 22 May 06 jari 297         sortable="true" 
2305 22 May 06 jari 298         filterable="true"
2305 22 May 06 jari 299         exportable="true"
2942 22 Nov 06 nicklas 300         formatter="<%=dateFormatter%>"
2305 22 May 06 jari 301       />
2305 22 May 06 jari 302       <tbl:columndef 
2305 22 May 06 jari 303         id="pubMedId"
2305 22 May 06 jari 304         property="pubMedId"
2305 22 May 06 jari 305         datatype="string"
2305 22 May 06 jari 306         title="PubMedId"
2305 22 May 06 jari 307         sortable="true" 
2305 22 May 06 jari 308         filterable="true"
2305 22 May 06 jari 309         exportable="true"
2305 22 May 06 jari 310       />
2305 22 May 06 jari 311       <tbl:columndef 
2305 22 May 06 jari 312         id="owner"
2305 22 May 06 jari 313         property="owner.name"
2305 22 May 06 jari 314         datatype="string"
2305 22 May 06 jari 315         title="Owner"
2305 22 May 06 jari 316         sortable="true" 
2305 22 May 06 jari 317         filterable="true"
2305 22 May 06 jari 318         exportable="true"
2305 22 May 06 jari 319       />
2305 22 May 06 jari 320       <tbl:columndef 
2305 22 May 06 jari 321         id="description"
2305 22 May 06 jari 322         property="description"
2305 22 May 06 jari 323         datatype="string"
2305 22 May 06 jari 324         title="Description" 
2305 22 May 06 jari 325         sortable="true" 
2305 22 May 06 jari 326         filterable="true" 
2305 22 May 06 jari 327         exportable="true"
2305 22 May 06 jari 328       />
2305 22 May 06 jari 329       <tbl:columndef 
2305 22 May 06 jari 330         id="actions"
2305 22 May 06 jari 331         title="Actions"
2305 22 May 06 jari 332       />
7153 20 May 16 nicklas 333       <%
7153 20 May 16 nicklas 334       for (AnnotationLoaderUtil loader : annotationLoaders)
7153 20 May 16 nicklas 335       {
7153 20 May 16 nicklas 336         AnnotationType at = loader.getAnnotationType();
7605 26 Feb 19 nicklas 337         Formatter<Object> formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
7153 20 May 16 nicklas 338         Enumeration<String, String> annotationEnum = null;
7153 20 May 16 nicklas 339         if (at.isEnumeration())
7153 20 May 16 nicklas 340         {
7153 20 May 16 nicklas 341           annotationEnum = new Enumeration<String, String>();
7153 20 May 16 nicklas 342           if (!at.getDisplayAsList()) annotationEnum.add("", "-none-");
7153 20 May 16 nicklas 343           List<?> values = at.getValues();
7153 20 May 16 nicklas 344           for (Object value : values)
7153 20 May 16 nicklas 345           {
7153 20 May 16 nicklas 346             String encoded = HTML.encodeTags(value.toString());
7153 20 May 16 nicklas 347             annotationEnum.add(encoded, encoded);
7153 20 May 16 nicklas 348           }
7153 20 May 16 nicklas 349         }
7153 20 May 16 nicklas 350         %>
7153 20 May 16 nicklas 351         <tbl:columndef 
7153 20 May 16 nicklas 352           id="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+at.getId()%>"
7153 20 May 16 nicklas 353           title="<%=HTML.encodeTags(at.getName())+(loader.isSearchingInheritedAnnotations() ? " [I]" : " [A]")%>" 
7153 20 May 16 nicklas 354           property="<%=(loader.isSearchingInheritedAnnotations() ? "##" : "#")+at.getId()%>"
7153 20 May 16 nicklas 355           annotation="true"
7153 20 May 16 nicklas 356           datatype="<%=at.getValueType().getStringValue()%>"
7153 20 May 16 nicklas 357           enumeration="<%=annotationEnum%>"
7153 20 May 16 nicklas 358           smartenum="<%=at.getDisplayAsList() %>"
7153 20 May 16 nicklas 359           sortable="<%=at.getMultiplicity() == 1 && !loader.isSearchingInheritedAnnotations()%>" 
7153 20 May 16 nicklas 360           filterable="true" 
7153 20 May 16 nicklas 361           exportable="true"
7153 20 May 16 nicklas 362           formatter="<%=formatter%>"
7153 20 May 16 nicklas 363           unit="<%=at.getDefaultUnit()%>"
7153 20 May 16 nicklas 364         />
7153 20 May 16 nicklas 365         <%
7153 20 May 16 nicklas 366       }
7153 20 May 16 nicklas 367       %>
2401 21 Jun 06 martin 368       <tbl:columndef
2401 21 Jun 06 martin 369         id="permission"
2401 21 Jun 06 martin 370         title="Permission"
2401 21 Jun 06 martin 371       />
5165 28 Oct 09 nicklas 372       <tbl:columndef
3552 06 Jul 07 martin 373         id="sharedTo"
3552 06 Jul 07 martin 374         title="Shared to"
5165 28 Oct 09 nicklas 375         filterable="true"
5165 28 Oct 09 nicklas 376         filterproperty="!sharedTo.name"
5165 28 Oct 09 nicklas 377         datatype="string"
3552 06 Jul 07 martin 378       />
6040 30 Mar 12 nicklas 379       <tbl:columndef 
6040 30 Mar 12 nicklas 380         id="xt-columns" 
6040 30 Mar 12 nicklas 381         extensions="<%=columnsInvoker%>" 
6040 30 Mar 12 nicklas 382         jspcontext="<%=jspContext%>" 
6040 30 Mar 12 nicklas 383       />
6604 18 Nov 14 nicklas 384       <div class="panelgroup bg-filled-50 bottomborder">
5952 10 Feb 12 nicklas 385         <tbl:toolbar
5952 10 Feb 12 nicklas 386           subclass="bottomborder"
5952 10 Feb 12 nicklas 387           visible="<%=mode.hasToolbar()%>"
5952 10 Feb 12 nicklas 388           >
5952 10 Feb 12 nicklas 389           <tbl:button 
6315 06 Sep 13 nicklas 390             id="btnNewItem"
5952 10 Feb 12 nicklas 391             disabled="<%=!createPermission%>" 
5952 10 Feb 12 nicklas 392             image="new.png" 
5952 10 Feb 12 nicklas 393             title="New&hellip;" 
5952 10 Feb 12 nicklas 394             tooltip="<%=createPermission ? "Create new experiment" : "You do not have permission to create experiments"%>" 
5952 10 Feb 12 nicklas 395           />
5952 10 Feb 12 nicklas 396           <tbl:button 
6315 06 Sep 13 nicklas 397             id="btnDeleteItems"
5952 10 Feb 12 nicklas 398             image="delete.png"
5952 10 Feb 12 nicklas 399             title="Delete" 
5952 10 Feb 12 nicklas 400             tooltip="Delete the selected items" 
5952 10 Feb 12 nicklas 401           />
5952 10 Feb 12 nicklas 402           <tbl:button 
6315 06 Sep 13 nicklas 403             id="btnRestoreItems"
5952 10 Feb 12 nicklas 404             image="restore.png"
5952 10 Feb 12 nicklas 405             title="Restore" 
5952 10 Feb 12 nicklas 406             tooltip="Restore the selected (deleted) items"
5952 10 Feb 12 nicklas 407           />
5952 10 Feb 12 nicklas 408           <tbl:button 
6315 06 Sep 13 nicklas 409             id="btnShareItems"
5952 10 Feb 12 nicklas 410             image="share.png"
5952 10 Feb 12 nicklas 411             title="Share&hellip;" 
5952 10 Feb 12 nicklas 412             tooltip="Share the selected items"
5952 10 Feb 12 nicklas 413           />
5952 10 Feb 12 nicklas 414           <tbl:button 
6315 06 Sep 13 nicklas 415             id="btnSetOwner"
5952 10 Feb 12 nicklas 416             image="take_ownership.png"
5952 10 Feb 12 nicklas 417             title="Set owner&hellip;"
5952 10 Feb 12 nicklas 418             tooltip="Change owner of the selected items"
5952 10 Feb 12 nicklas 419           />
5952 10 Feb 12 nicklas 420           <tbl:button 
6315 06 Sep 13 nicklas 421             id="btnColumns"
5952 10 Feb 12 nicklas 422             image="columns.png" 
5952 10 Feb 12 nicklas 423             title="Columns&hellip;" 
5952 10 Feb 12 nicklas 424             tooltip="Show, hide and re-order columns" 
5952 10 Feb 12 nicklas 425           />
5952 10 Feb 12 nicklas 426           <tbl:button 
6315 06 Sep 13 nicklas 427             id="btnImport"
6315 06 Sep 13 nicklas 428             data-plugin-type="IMPORT"
5952 10 Feb 12 nicklas 429             image="import.png" 
5952 10 Feb 12 nicklas 430             title="Import&hellip;" 
5952 10 Feb 12 nicklas 431             tooltip="Import data" 
5952 10 Feb 12 nicklas 432             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5952 10 Feb 12 nicklas 433           />
5952 10 Feb 12 nicklas 434           <tbl:button 
6315 06 Sep 13 nicklas 435             id="btnExport"
6315 06 Sep 13 nicklas 436             data-plugin-type="EXPORT"
5952 10 Feb 12 nicklas 437             image="export.png" 
5952 10 Feb 12 nicklas 438             title="Export&hellip;" 
5952 10 Feb 12 nicklas 439             tooltip="Export data" 
5952 10 Feb 12 nicklas 440             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5952 10 Feb 12 nicklas 441           />
5952 10 Feb 12 nicklas 442           <tbl:button 
6315 06 Sep 13 nicklas 443             id="btnRunPlugin"
6315 06 Sep 13 nicklas 444             data-plugin-type="OTHER"
5952 10 Feb 12 nicklas 445             image="runplugin.png" 
5952 10 Feb 12 nicklas 446             title="Run plugin&hellip;" 
5952 10 Feb 12 nicklas 447             tooltip="Run a plugin" 
5952 10 Feb 12 nicklas 448             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5952 10 Feb 12 nicklas 449           />
5952 10 Feb 12 nicklas 450           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 451             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5952 10 Feb 12 nicklas 452         </tbl:toolbar>
5952 10 Feb 12 nicklas 453         <tbl:panel>
6182 23 Oct 12 nicklas 454           <tbl:presetselector />
5952 10 Feb 12 nicklas 455           <tbl:navigator
5952 10 Feb 12 nicklas 456             page="<%=cc.getPage()%>" 
5952 10 Feb 12 nicklas 457             rowsperpage="<%=cc.getRowsPerPage()%>" 
5952 10 Feb 12 nicklas 458             totalrows="<%=experiments == null ? 0 : experiments.getTotalCount()%>" 
5952 10 Feb 12 nicklas 459             visible="<%=mode.hasNavigator()%>"
5952 10 Feb 12 nicklas 460           />
5952 10 Feb 12 nicklas 461         </tbl:panel>
5952 10 Feb 12 nicklas 462       </div>
2305 22 May 06 jari 463       <tbl:data>
5948 08 Feb 12 nicklas 464         <tbl:headers>
5948 08 Feb 12 nicklas 465           <tbl:headerrow>
7943 04 May 21 nicklas 466             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 467             <tbl:columnheaders />
5948 08 Feb 12 nicklas 468           </tbl:headerrow>
6698 30 Jan 15 nicklas 469           <%
6698 30 Jan 15 nicklas 470           int numFilters = cc.getNumPropertyFilters();
6698 30 Jan 15 nicklas 471           int numRows = cc.getFilterRows();
6698 30 Jan 15 nicklas 472           for (int filterNo = 0; filterNo < numRows; filterNo++)
6698 30 Jan 15 nicklas 473           {
6698 30 Jan 15 nicklas 474             boolean lastRow = filterNo == numRows-1;
6698 30 Jan 15 nicklas 475             %>
6698 30 Jan 15 nicklas 476             <tbl:headerrow>
7943 04 May 21 nicklas 477               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 478                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 479                   <div class="index"></div>
7943 04 May 21 nicklas 480                   <div class="check">
7943 04 May 21 nicklas 481                     <base:icon 
7943 04 May 21 nicklas 482                       subclass="link table-check"
7943 04 May 21 nicklas 483                       image="check_uncheck.png" 
7943 04 May 21 nicklas 484                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 485                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 486                     />
7943 04 May 21 nicklas 487                   </div>
7943 04 May 21 nicklas 488                   <div class="icons">
7943 04 May 21 nicklas 489                     <base:icon
7943 04 May 21 nicklas 490                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 491                       image="add.png"
7943 04 May 21 nicklas 492                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 493                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 494                     /><base:icon
7943 04 May 21 nicklas 495                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 496                       image="remove.png"
7943 04 May 21 nicklas 497                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 498                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 499                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 500                     />
7943 04 May 21 nicklas 501                   </div>
7943 04 May 21 nicklas 502                 </div>
6698 30 Jan 15 nicklas 503               </tbl:header>
6698 30 Jan 15 nicklas 504               <tbl:propertyfilter row="<%=filterNo%>" />
6698 30 Jan 15 nicklas 505             </tbl:headerrow>
6698 30 Jan 15 nicklas 506             <%
6698 30 Jan 15 nicklas 507           }
6698 30 Jan 15 nicklas 508           %>
7913 22 Feb 21 nicklas 509           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 510         </tbl:headers>
5948 08 Feb 12 nicklas 511         <tbl:rows>
2305 22 May 06 jari 512           <%
5952 10 Feb 12 nicklas 513           if (cc.getMessage() != null)
5952 10 Feb 12 nicklas 514           {
5952 10 Feb 12 nicklas 515             %>
6604 18 Nov 14 nicklas 516             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 517               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5952 10 Feb 12 nicklas 518             </tbl:panel>
5952 10 Feb 12 nicklas 519             <%
5952 10 Feb 12 nicklas 520             cc.setMessage(null);
5952 10 Feb 12 nicklas 521           }
2305 22 May 06 jari 522           int index = cc.getPage()*cc.getRowsPerPage();
2305 22 May 06 jari 523           int selectedItemId = Values.getInt(request.getParameter("item_id"));
2305 22 May 06 jari 524           if (experiments != null)
2507 09 Aug 06 martin 525           {            
2305 22 May 06 jari 526             while (experiments.hasNext())
2305 22 May 06 jari 527             {
2305 22 May 06 jari 528               Experiment item = experiments.next();
2305 22 May 06 jari 529               int itemId = item.getId();
6221 10 Jan 13 nicklas 530               
6221 10 Jan 13 nicklas 531               
4003 26 Nov 07 nicklas 532               boolean deletePermission = item.hasPermission(Permission.DELETE);
2437 28 Jun 06 nicklas 533               boolean sharePermission = item.hasPermission(Permission.SET_PERMISSION);
2507 09 Aug 06 martin 534               boolean writePermission = item.hasPermission(Permission.WRITE);
2507 09 Aug 06 martin 535               String tooltip = mode.isSelectionMode() ?
2507 09 Aug 06 martin 536                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
2305 22 May 06 jari 537               String name = HTML.encodeTags(item.getName());
2305 22 May 06 jari 538               index++;
2305 22 May 06 jari 539               numListed++;
2305 22 May 06 jari 540               %>
2305 22 May 06 jari 541               <tbl:row>
7943 04 May 21 nicklas 542                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 543                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 544                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 545                     <div class="check">
7943 04 May 21 nicklas 546                       <base:input
7943 04 May 21 nicklas 547                         type="checkbox" 
7943 04 May 21 nicklas 548                         name="<%=itemId%>" 
7943 04 May 21 nicklas 549                         value="<%=itemId%>" 
7943 04 May 21 nicklas 550                         title="<%=name%>" 
7943 04 May 21 nicklas 551                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 552                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 553                       />
7943 04 May 21 nicklas 554                       <base:input 
7943 04 May 21 nicklas 555                         type="radio" 
7943 04 May 21 nicklas 556                         name="item_id" 
7943 04 May 21 nicklas 557                         value="<%=itemId%>" 
7943 04 May 21 nicklas 558                         title="<%=name%>" 
7943 04 May 21 nicklas 559                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 560                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 561                       />
7943 04 May 21 nicklas 562                     </div>
7943 04 May 21 nicklas 563                     <div class="icons">
7943 04 May 21 nicklas 564                       <base:icon 
7943 04 May 21 nicklas 565                         image="deleted.png"
7943 04 May 21 nicklas 566                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 567                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 568                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 569                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 570                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 571                       /><base:icon 
7943 04 May 21 nicklas 572                         image="shared.png" 
7943 04 May 21 nicklas 573                         id="<%="share."+itemId %>"
7943 04 May 21 nicklas 574                         subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
7943 04 May 21 nicklas 575                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 576                         tooltip="This item is shared to other users, groups and/or projects" 
7943 04 May 21 nicklas 577                         visible="<%=item.isShared()%>"
7943 04 May 21 nicklas 578                       />
7943 04 May 21 nicklas 579                     </div>
7943 04 May 21 nicklas 580                   </div>
7943 04 May 21 nicklas 581                 </tbl:header>
6315 06 Sep 13 nicklas 582                 <tbl:cell column="name"><div 
6315 06 Sep 13 nicklas 583                   class="link table-item"
6315 06 Sep 13 nicklas 584                   data-item-id="<%=itemId%>"
6315 06 Sep 13 nicklas 585                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6315 06 Sep 13 nicklas 586                   tabindex="0"
2433 27 Jun 06 nicklas 587                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
4332 12 Jun 08 martin 588                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
4698 10 Dec 08 nicklas 589                 <tbl:cell column="entryDate" value="<%=item.getEntryDate()%>" />
2305 22 May 06 jari 590                 <tbl:cell column="bytes"><%=Values.formatBytes(item.getBytes())%></tbl:cell>
2305 22 May 06 jari 591                 <tbl:cell column="rawDataType"><%=HTML.encodeTags(item.getRawDataType().getName())%></tbl:cell>
2694 03 Oct 06 nicklas 592                 <tbl:cell column="directory"
2694 03 Oct 06 nicklas 593                   ><base:propertyvalue 
2694 03 Oct 06 nicklas 594                     item="<%=item%>" 
2694 03 Oct 06 nicklas 595                     property="directory" 
2694 03 Oct 06 nicklas 596                     enableEditLink="<%=mode.hasEditLink()%>" 
2694 03 Oct 06 nicklas 597                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2694 03 Oct 06 nicklas 598                   /></tbl:cell>
5877 16 Nov 11 nicklas 599                 <tbl:cell column="reporterCloneTemplate"
5877 16 Nov 11 nicklas 600                   ><base:propertyvalue 
5877 16 Nov 11 nicklas 601                     item="<%=item%>" 
5877 16 Nov 11 nicklas 602                     property="virtualDb.reporterCloneTemplate" 
5877 16 Nov 11 nicklas 603                     enableEditLink="<%=mode.hasEditLink()%>" 
5877 16 Nov 11 nicklas 604                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
5877 16 Nov 11 nicklas 605                   /></tbl:cell>
2694 03 Oct 06 nicklas 606                 <tbl:cell column="title"><%=HTML.encodeTags(item.getTitle())%></tbl:cell>
2305 22 May 06 jari 607                 <tbl:cell column="abstract"><%=HTML.encodeTags(item.getAbstract())%></tbl:cell>
2305 22 May 06 jari 608                 <tbl:cell column="affiliations"><%=HTML.encodeTags(item.getAffiliations())%></tbl:cell>
2305 22 May 06 jari 609                 <tbl:cell column="authors"><%=HTML.encodeTags(item.getAuthors())%></tbl:cell>
2305 22 May 06 jari 610                 <tbl:cell column="experimentDesign"><%=HTML.encodeTags(item.getExperimentDesign())%></tbl:cell>
2305 22 May 06 jari 611                 <tbl:cell column="experimentType"><%=HTML.encodeTags(item.getExperimentType())%></tbl:cell>
2305 22 May 06 jari 612                 <tbl:cell column="publication"><%=HTML.encodeTags(item.getPublication())%></tbl:cell>
2942 22 Nov 06 nicklas 613                 <tbl:cell column="publicationDate" value="<%=item.getPublicationDate()%>" />
2305 22 May 06 jari 614                 <tbl:cell column="pubMedId"><%=HTML.encodeTags(item.getPubMedId())%></tbl:cell>
2354 07 Jun 06 martin 615                 <tbl:cell column="owner"
2354 07 Jun 06 martin 616                   ><base:propertyvalue 
2354 07 Jun 06 martin 617                     item="<%=item%>" 
2354 07 Jun 06 martin 618                     property="owner"
2354 07 Jun 06 martin 619                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 620                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 621                   /></tbl:cell>
2305 22 May 06 jari 622                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
6143 20 Sep 12 nicklas 623                 <tbl:cell column="actions"><a href="bioassaysets/index.jsp?ID=<%=ID%>&amp;experiment_id=<%=itemId%>">Analyze</a></tbl:cell>
7153 20 May 16 nicklas 624                 <%
7153 20 May 16 nicklas 625                 if (item.isAnnotated())
7153 20 May 16 nicklas 626                 {
7153 20 May 16 nicklas 627                   AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
7153 20 May 16 nicklas 628                   for (AnnotationLoaderUtil loader : annotationLoaders)
7153 20 May 16 nicklas 629                   {
7153 20 May 16 nicklas 630                     %>
7153 20 May 16 nicklas 631                     <tbl:cell 
7153 20 May 16 nicklas 632                       column="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+loader.getId()%>"
7153 20 May 16 nicklas 633                       ><%
7337 12 Apr 17 nicklas 634                       if (loader.find(snapshot, psInfo.reset())) 
7153 20 May 16 nicklas 635                       {
7153 20 May 16 nicklas 636                         %><tbl:cellvalue 
7153 20 May 16 nicklas 637                           list="<%=loader.getValues()%>"
8160 07 Jun 23 nicklas 638                           bulletlist="<%=loader.useBulletList() %>"
7153 20 May 16 nicklas 639                           suffix="<%=loader.getUnitSymbol()%>"
8083 20 Oct 22 nicklas 640                           clazz="<%=psInfo.hasProjectSpecificAnnotation() ? "ps-annotation" : null%>"
7153 20 May 16 nicklas 641                         /><%
7153 20 May 16 nicklas 642                       }
7153 20 May 16 nicklas 643                       %></tbl:cell>
7153 20 May 16 nicklas 644                     <%
7153 20 May 16 nicklas 645                   }
7153 20 May 16 nicklas 646                 }
7153 20 May 16 nicklas 647                 %>
2401 21 Jun 06 martin 648                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
3552 06 Jul 07 martin 649                 <tbl:cell column="sharedTo">
3552 06 Jul 07 martin 650                   <%
3552 06 Jul 07 martin 651                   Iterator<Nameable> sharees = ShareableUtil.getSharedTo(dc, item).iterator();
3552 06 Jul 07 martin 652                   while(sharees.hasNext())
3552 06 Jul 07 martin 653                   {
3552 06 Jul 07 martin 654                     Nameable n = sharees.next();
3552 06 Jul 07 martin 655                     if (mode.hasPropertyLink())
3552 06 Jul 07 martin 656                     {
3552 06 Jul 07 martin 657                       out.write(Base.getLinkedName(ID, n, false, mode.hasEditLink()));
3552 06 Jul 07 martin 658                     }
3552 06 Jul 07 martin 659                     else
3552 06 Jul 07 martin 660                     {
3552 06 Jul 07 martin 661                       out.write(HTML.encodeTags(n.getName()));
3552 06 Jul 07 martin 662                     }
3552 06 Jul 07 martin 663                     out.write(sharees.hasNext() ? ", " : "");
3552 06 Jul 07 martin 664                   }
3552 06 Jul 07 martin 665                   %>
3552 06 Jul 07 martin 666                 </tbl:cell>
6040 30 Mar 12 nicklas 667                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6040 30 Mar 12 nicklas 668                   <tbl:cell column="xt-columns" />
6040 30 Mar 12 nicklas 669                 </tbl:xt-cells>
2305 22 May 06 jari 670               </tbl:row>
2305 22 May 06 jari 671               <%
2305 22 May 06 jari 672               }
2305 22 May 06 jari 673             }
5952 10 Feb 12 nicklas 674           if (numListed == 0)
5952 10 Feb 12 nicklas 675           {
5952 10 Feb 12 nicklas 676             %>
6604 18 Nov 14 nicklas 677             <tbl:panel subclass="bg-filled-50">
5952 10 Feb 12 nicklas 678               <div class="messagecontainer note">
5952 10 Feb 12 nicklas 679               <%=experiments == null || experiments.getTotalCount() == 0 ? "No experiments were found" : "No experiments on this page. Please select another page!" %>
5952 10 Feb 12 nicklas 680               </div>
5952 10 Feb 12 nicklas 681             </tbl:panel>
5952 10 Feb 12 nicklas 682             <%
5952 10 Feb 12 nicklas 683           }
2305 22 May 06 jari 684           %>
5952 10 Feb 12 nicklas 685         </tbl:rows>
2305 22 May 06 jari 686       </tbl:data>
2305 22 May 06 jari 687     </tbl:table>
5952 10 Feb 12 nicklas 688     </div>
5952 10 Feb 12 nicklas 689     
5951 09 Feb 12 nicklas 690     <base:buttongroup subclass="dialogbuttons">
6315 06 Sep 13 nicklas 691       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6315 06 Sep 13 nicklas 692       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6315 06 Sep 13 nicklas 693       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
2305 22 May 06 jari 694     </base:buttongroup>
5951 09 Feb 12 nicklas 695     
2305 22 May 06 jari 696   </base:body>
2305 22 May 06 jari 697   </base:page>
2305 22 May 06 jari 698   <%
2305 22 May 06 jari 699 }
2305 22 May 06 jari 700 finally
2305 22 May 06 jari 701 {
2305 22 May 06 jari 702   if (experiments != null) experiments.close();
2305 22 May 06 jari 703   if (dc != null) dc.close();
2305 22 May 06 jari 704 }
3675 16 Aug 07 jari 705 %>