www/views/rawbioassays/view_rawbioassay.jsp

Code
Comments
Other
Rev Date Author Line
1765 13 Jan 06 nicklas 1 <%-- $Id$
1765 13 Jan 06 nicklas 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 Martin Svensson
1765 13 Jan 06 nicklas 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/
1765 13 Jan 06 nicklas 8
1765 13 Jan 06 nicklas 9   BASE is free software; you can redistribute it and/or
1765 13 Jan 06 nicklas 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
1765 13 Jan 06 nicklas 12   of the License, or (at your option) any later version.
1765 13 Jan 06 nicklas 13
1765 13 Jan 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1765 13 Jan 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1765 13 Jan 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1765 13 Jan 06 nicklas 17   GNU General Public License for more details.
1765 13 Jan 06 nicklas 18
1765 13 Jan 06 nicklas 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/>.
1765 13 Jan 06 nicklas 21   ------------------------------------------------------------------
1765 13 Jan 06 nicklas 22
1765 13 Jan 06 nicklas 23   @author Nicklas
1765 13 Jan 06 nicklas 24   @version 2.0
1765 13 Jan 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1855 27 Jan 06 nicklas 27   buffer="500kb"
1765 13 Jan 06 nicklas 28   import="net.sf.basedb.core.SessionControl"
1765 13 Jan 06 nicklas 29   import="net.sf.basedb.core.DbControl"
1765 13 Jan 06 nicklas 30   import="net.sf.basedb.core.SystemItems"
1765 13 Jan 06 nicklas 31   import="net.sf.basedb.core.Item"
1765 13 Jan 06 nicklas 32   import="net.sf.basedb.core.ItemContext"
1765 13 Jan 06 nicklas 33   import="net.sf.basedb.core.Permission"
1811 24 Jan 06 nicklas 34   import="net.sf.basedb.core.AnnotationType"
1811 24 Jan 06 nicklas 35   import="net.sf.basedb.core.AnnotationSet"
1765 13 Jan 06 nicklas 36   import="net.sf.basedb.core.ExtendedProperties"
1765 13 Jan 06 nicklas 37   import="net.sf.basedb.core.ExtendedProperty"
1765 13 Jan 06 nicklas 38   import="net.sf.basedb.core.RawBioAssay"
2420 22 Jun 06 nicklas 39   import="net.sf.basedb.core.Experiment"
2392 16 Jun 06 nicklas 40   import="net.sf.basedb.core.RawDataType"
1765 13 Jan 06 nicklas 41   import="net.sf.basedb.core.Protocol"
1765 13 Jan 06 nicklas 42   import="net.sf.basedb.core.Software"
1765 13 Jan 06 nicklas 43   import="net.sf.basedb.core.ArrayDesign"
4258 29 Apr 08 nicklas 44   import="net.sf.basedb.core.Job"
1765 13 Jan 06 nicklas 45   import="net.sf.basedb.core.File"
1777 17 Jan 06 nicklas 46   import="net.sf.basedb.core.User"
3547 03 Jul 07 martin 47   import="net.sf.basedb.core.Group"
1811 24 Jan 06 nicklas 48   import="net.sf.basedb.core.ItemQuery"
3547 03 Jul 07 martin 49   import="net.sf.basedb.core.ItemResultIterator"
1811 24 Jan 06 nicklas 50   import="net.sf.basedb.core.ItemResultList"
2420 22 Jun 06 nicklas 51   import="net.sf.basedb.core.Include"
3547 03 Jul 07 martin 52   import="net.sf.basedb.core.MultiPermissions"
1765 13 Jan 06 nicklas 53   import="net.sf.basedb.core.PermissionDeniedException"
7447 22 Feb 18 nicklas 54   import="net.sf.basedb.core.ParameterInfo"
7447 22 Feb 18 nicklas 55   import="net.sf.basedb.core.BasicItem"
7447 22 Feb 18 nicklas 56   import="net.sf.basedb.core.Nameable"
1765 13 Jan 06 nicklas 57   import="net.sf.basedb.core.PluginDefinition"
7447 22 Feb 18 nicklas 58   import="net.sf.basedb.core.PluginConfiguration"
1765 13 Jan 06 nicklas 59   import="net.sf.basedb.core.plugin.GuiContext"
1765 13 Jan 06 nicklas 60   import="net.sf.basedb.core.plugin.Plugin"
3547 03 Jul 07 martin 61   import="net.sf.basedb.core.Project"
2420 22 Jun 06 nicklas 62   import="net.sf.basedb.core.query.Orders"
2420 22 Jun 06 nicklas 63   import="net.sf.basedb.core.query.Hql"
4258 29 Apr 08 nicklas 64   import="net.sf.basedb.util.formatter.Formatter"
1765 13 Jan 06 nicklas 65   import="net.sf.basedb.clients.web.Base"
5064 19 Aug 09 nicklas 66   import="net.sf.basedb.clients.web.ChangeHistoryUtil"
2386 15 Jun 06 martin 67   import="net.sf.basedb.clients.web.PermissionUtil"
1765 13 Jan 06 nicklas 68   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 69   import="net.sf.basedb.util.Values"
4698 10 Dec 08 nicklas 70   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 71   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4878 03 Apr 09 nicklas 72   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4878 03 Apr 09 nicklas 73   import="net.sf.basedb.clients.web.extensions.JspContext"
4878 03 Apr 09 nicklas 74   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 75   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4878 03 Apr 09 nicklas 76   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4878 03 Apr 09 nicklas 77   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
3547 03 Jul 07 martin 78   import="java.util.Collections"
1765 13 Jan 06 nicklas 79   import="java.util.Date"
1765 13 Jan 06 nicklas 80   import="java.util.Map"
1765 13 Jan 06 nicklas 81   import="java.util.Set"
1811 24 Jan 06 nicklas 82   import="java.util.List"
4258 29 Apr 08 nicklas 83   import="java.util.Date"
1765 13 Jan 06 nicklas 84 %>
1765 13 Jan 06 nicklas 85 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1765 13 Jan 06 nicklas 86 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
1855 27 Jan 06 nicklas 87 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
1855 27 Jan 06 nicklas 88 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4878 03 Apr 09 nicklas 89 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1765 13 Jan 06 nicklas 90 <%!
1765 13 Jan 06 nicklas 91   private static final Item itemType = Item.RAWBIOASSAY;
1765 13 Jan 06 nicklas 92   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
1765 13 Jan 06 nicklas 93 %>
1765 13 Jan 06 nicklas 94 <%
2392 16 Jun 06 nicklas 95 final String root = request.getContextPath()+"/";
1765 13 Jan 06 nicklas 96 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1765 13 Jan 06 nicklas 97 final String ID = sc.getId();
1765 13 Jan 06 nicklas 98 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1765 13 Jan 06 nicklas 99 final int itemId = cc.getId();
1855 27 Jan 06 nicklas 100 final String tab = Values.getString(request.getParameter("tab"), "properties");
1765 13 Jan 06 nicklas 101 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 102 final DbControl dc = sc.newDbControl(":View "+itemType);
1765 13 Jan 06 nicklas 103 try
1765 13 Jan 06 nicklas 104 {
1765 13 Jan 06 nicklas 105   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
1765 13 Jan 06 nicklas 106
1765 13 Jan 06 nicklas 107   String title = null;
1765 13 Jan 06 nicklas 108   RawBioAssay rawBioAssay = RawBioAssay.getById(dc, itemId);
4711 18 Dec 08 nicklas 109   RawDataType rawDataType = null;
4711 18 Dec 08 nicklas 110   try
4711 18 Dec 08 nicklas 111   {
4711 18 Dec 08 nicklas 112     rawDataType = rawBioAssay.getRawDataType();
4711 18 Dec 08 nicklas 113   }
4711 18 Dec 08 nicklas 114   catch (Throwable t)
4711 18 Dec 08 nicklas 115   {}
1765 13 Jan 06 nicklas 116   
4258 29 Apr 08 nicklas 117   Job job = null;
4258 29 Apr 08 nicklas 118   boolean readJob = true;
7447 22 Feb 18 nicklas 119   PluginDefinition plugin = null;
7447 22 Feb 18 nicklas 120   boolean readPlugin = true;
7447 22 Feb 18 nicklas 121   PluginConfiguration configuration = null;
7447 22 Feb 18 nicklas 122   boolean readConfiguration = true;
7447 22 Feb 18 nicklas 123
4258 29 Apr 08 nicklas 124   try
4258 29 Apr 08 nicklas 125   {
4258 29 Apr 08 nicklas 126     job = rawBioAssay.getJob();
4258 29 Apr 08 nicklas 127   }
4258 29 Apr 08 nicklas 128   catch (PermissionDeniedException ex)
4258 29 Apr 08 nicklas 129   {
4258 29 Apr 08 nicklas 130     readJob = false;
7447 22 Feb 18 nicklas 131     readPlugin = false;
7447 22 Feb 18 nicklas 132     readConfiguration = false;
4258 29 Apr 08 nicklas 133   }
7447 22 Feb 18 nicklas 134   if (job != null)
7447 22 Feb 18 nicklas 135   {
7447 22 Feb 18 nicklas 136     try
7447 22 Feb 18 nicklas 137     {
7447 22 Feb 18 nicklas 138       plugin = job.getPluginDefinition();
7447 22 Feb 18 nicklas 139     }
7447 22 Feb 18 nicklas 140     catch (PermissionDeniedException ex)
7447 22 Feb 18 nicklas 141     {
7447 22 Feb 18 nicklas 142       readPlugin = false;
7447 22 Feb 18 nicklas 143     }
7447 22 Feb 18 nicklas 144     try
7447 22 Feb 18 nicklas 145     {
7447 22 Feb 18 nicklas 146       configuration = job.getPluginConfiguration();
7447 22 Feb 18 nicklas 147     }
7447 22 Feb 18 nicklas 148     catch (PermissionDeniedException ex)
7447 22 Feb 18 nicklas 149     {
7447 22 Feb 18 nicklas 150       readConfiguration = false;
7447 22 Feb 18 nicklas 151     }
7447 22 Feb 18 nicklas 152   }
7447 22 Feb 18 nicklas 153
7447 22 Feb 18 nicklas 154   
4258 29 Apr 08 nicklas 155   final Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
4698 10 Dec 08 nicklas 156   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
1765 13 Jan 06 nicklas 157   final boolean writePermission = rawBioAssay.hasPermission(Permission.WRITE);
1765 13 Jan 06 nicklas 158   final boolean deletePermission = rawBioAssay.hasPermission(Permission.DELETE);
1765 13 Jan 06 nicklas 159   final boolean sharePermission = rawBioAssay.hasPermission(Permission.SET_PERMISSION);
2918 15 Nov 06 nicklas 160   final boolean setOwnerPermission = rawBioAssay.hasPermission(Permission.SET_OWNER);
4003 26 Nov 07 nicklas 161   final boolean isRemoved = rawBioAssay.isRemoved();
4003 26 Nov 07 nicklas 162   final boolean isUsed = isRemoved && rawBioAssay.isUsed();
4003 26 Nov 07 nicklas 163   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
2918 15 Nov 06 nicklas 164   final boolean isOwner = rawBioAssay.isOwner();
4878 03 Apr 09 nicklas 165   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, rawBioAssay);
7604 25 Feb 19 nicklas 166   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
1765 13 Jan 06 nicklas 167   %>
6311 23 Aug 13 nicklas 168   <base:page title="<%=title%>" id="view-page">
6311 23 Aug 13 nicklas 169   <base:head scripts="table.js,tabcontrol-2.js,~bioassays.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
4878 03 Apr 09 nicklas 170     <ext:scripts context="<%=jspContext%>" />
4878 03 Apr 09 nicklas 171     <ext:stylesheets context="<%=jspContext%>" />
1765 13 Jan 06 nicklas 172   </base:head>
1765 13 Jan 06 nicklas 173   <base:body>
5939 30 Jan 12 nicklas 174     <p:path><p:pathelement
5939 30 Jan 12 nicklas 175       title="Raw bioassays" href="<%="index.jsp?ID="+ID%>" 
5939 30 Jan 12 nicklas 176       /><p:pathelement title="<%=HTML.encodeTags(rawBioAssay.getName())%>" 
5939 30 Jan 12 nicklas 177       /></p:path>
6311 23 Aug 13 nicklas 178     <div id="page-data" data-item-id="<%=itemId%>"></div>
1855 27 Jan 06 nicklas 179     
5939 30 Jan 12 nicklas 180     <t:tabcontrol 
5939 30 Jan 12 nicklas 181       id="main" 
5939 30 Jan 12 nicklas 182       subclass="content mastertabcontrol" 
6311 23 Aug 13 nicklas 183       active="<%=tab%>">
1855 27 Jan 06 nicklas 184     <t:tab id="properties" title="Properties">
5939 30 Jan 12 nicklas 185       <div>
5939 30 Jan 12 nicklas 186       <table class="fullform">
5939 30 Jan 12 nicklas 187       <tr>
5939 30 Jan 12 nicklas 188         <th class="itemstatus">
4003 26 Nov 07 nicklas 189           <base:icon 
5946 03 Feb 12 nicklas 190             image="shared.png" 
5939 30 Jan 12 nicklas 191             visible="<%=rawBioAssay.isShared()%>"
5939 30 Jan 12 nicklas 192             tooltip="This item is shared to other users, groups and/or projects"
5939 30 Jan 12 nicklas 193           />
5939 30 Jan 12 nicklas 194           <base:icon 
6311 23 Aug 13 nicklas 195             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 196             image="deleted.png"
5939 30 Jan 12 nicklas 197             tooltip="This item has been flagged for deletion. Click to delete it now."
5939 30 Jan 12 nicklas 198             enabled="<%=deletePermanentlyPermission %>"
5939 30 Jan 12 nicklas 199             visible="<%=isRemoved%>" 
5939 30 Jan 12 nicklas 200           />
6311 23 Aug 13 nicklas 201           <base:icon
6311 23 Aug 13 nicklas 202             id="btnUsingItems"
6311 23 Aug 13 nicklas 203             image="used.png" 
5939 30 Jan 12 nicklas 204             tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
5939 30 Jan 12 nicklas 205             visible="<%=isRemoved && isUsed%>" />
5939 30 Jan 12 nicklas 206         </th>
5939 30 Jan 12 nicklas 207         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 208           <tbl:toolbar subclass="bottomborder bg-filled-50">
5939 30 Jan 12 nicklas 209             <tbl:button 
6311 23 Aug 13 nicklas 210               id="btnEdit"
5942 01 Feb 12 nicklas 211               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 212               image="edit.png" 
5939 30 Jan 12 nicklas 213               title="Edit&hellip;" 
5939 30 Jan 12 nicklas 214               tooltip="<%=writePermission ? "Edit this raw bioassay" : "You do not have permission to edit this raw bioassay"%>" 
5939 30 Jan 12 nicklas 215             />
5939 30 Jan 12 nicklas 216             <tbl:button 
6311 23 Aug 13 nicklas 217               id="btnDelete"
5942 01 Feb 12 nicklas 218               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 219               image="delete.png" 
5939 30 Jan 12 nicklas 220               title="Delete"
5939 30 Jan 12 nicklas 221               visible="<%=!rawBioAssay.isRemoved()%>"
5939 30 Jan 12 nicklas 222               tooltip="<%=deletePermission ? "Delete this raw bioassay" : "You do not have permission to delete this rawbioassay"%>" 
5939 30 Jan 12 nicklas 223             />
5939 30 Jan 12 nicklas 224             <tbl:button 
6311 23 Aug 13 nicklas 225               id="btnRestore"
5942 01 Feb 12 nicklas 226               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 227               image="restore.png" 
5939 30 Jan 12 nicklas 228               title="Restore"
5939 30 Jan 12 nicklas 229               visible="<%=rawBioAssay.isRemoved()%>"
5939 30 Jan 12 nicklas 230               tooltip="<%=writePermission ? "Restore this raw bioassay" : "You do not have permission to restore this rawbioassay"%>" 
5939 30 Jan 12 nicklas 231             />
5939 30 Jan 12 nicklas 232             <tbl:button 
6311 23 Aug 13 nicklas 233               id="btnShare"
5942 01 Feb 12 nicklas 234               disabled="<%=!sharePermission%>"
5945 02 Feb 12 nicklas 235               image="share.png"
5939 30 Jan 12 nicklas 236               title="Share&hellip;" 
5939 30 Jan 12 nicklas 237               tooltip="<%=sharePermission ? "Share this raw bioassay to other user, groups and projects" : "You do not have permission to share this raw bioassay"%>"
5939 30 Jan 12 nicklas 238             />
5939 30 Jan 12 nicklas 239             <tbl:button 
6311 23 Aug 13 nicklas 240               id="btnSetOwner"
5942 01 Feb 12 nicklas 241               disabled="<%=!setOwnerPermission%>"
5939 30 Jan 12 nicklas 242               image="take_ownership.png"
5939 30 Jan 12 nicklas 243               title="Set owner&hellip;"
5939 30 Jan 12 nicklas 244               tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
5939 30 Jan 12 nicklas 245             />
5939 30 Jan 12 nicklas 246             <tbl:button 
6311 23 Aug 13 nicklas 247               id="btnImport"
5946 03 Feb 12 nicklas 248               image="import.png" 
6311 23 Aug 13 nicklas 249               data-plugin-type="IMPORT"  
5939 30 Jan 12 nicklas 250               title="Import&hellip;" 
5939 30 Jan 12 nicklas 251               tooltip="Import data" 
5939 30 Jan 12 nicklas 252               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5939 30 Jan 12 nicklas 253             />
5939 30 Jan 12 nicklas 254             <tbl:button 
6311 23 Aug 13 nicklas 255               id="btnExport"
6311 23 Aug 13 nicklas 256               image="export.png"
6311 23 Aug 13 nicklas 257               data-plugin-type="EXPORT" 
5939 30 Jan 12 nicklas 258               title="Export&hellip;" 
5939 30 Jan 12 nicklas 259               tooltip="Export data" 
5939 30 Jan 12 nicklas 260               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5939 30 Jan 12 nicklas 261             />
5939 30 Jan 12 nicklas 262             <tbl:button 
6311 23 Aug 13 nicklas 263               id="btnRunPlugin"
6311 23 Aug 13 nicklas 264               image="runplugin.png"  
6311 23 Aug 13 nicklas 265               data-plugin-type="OTHER" 
5939 30 Jan 12 nicklas 266               title="Run plugin&hellip;" 
5939 30 Jan 12 nicklas 267               tooltip="Run a plugin" 
5939 30 Jan 12 nicklas 268               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5939 30 Jan 12 nicklas 269             />
5939 30 Jan 12 nicklas 270             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 271               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5939 30 Jan 12 nicklas 272             <tbl:button
5939 30 Jan 12 nicklas 273               image="help.png"
6311 23 Aug 13 nicklas 274               subclass="auto-init"
6311 23 Aug 13 nicklas 275               data-auto-init="help"
6311 23 Aug 13 nicklas 276               data-help-id="rawbioassay.view.properties"
5939 30 Jan 12 nicklas 277               title="Help&hellip;"
5939 30 Jan 12 nicklas 278               tooltip="Get help about this page"
5939 30 Jan 12 nicklas 279             />
5939 30 Jan 12 nicklas 280           </tbl:toolbar>
5939 30 Jan 12 nicklas 281         </td>
1765 13 Jan 06 nicklas 282       </tr>
5939 30 Jan 12 nicklas 283     </table>
5939 30 Jan 12 nicklas 284     <table style="width: 100%; height: 20em;" class="bottomborder">
6143 20 Sep 12 nicklas 285     <tr>
5939 30 Jan 12 nicklas 286       <td style="width: 50%; height: 100%;">
8026 15 Dec 21 nicklas 287         <div style="height: 20em; overflow: auto;">
5939 30 Jan 12 nicklas 288         <table class="fullform" >
4258 29 Apr 08 nicklas 289         <tr>
5939 30 Jan 12 nicklas 290           <th>Name</th>
5939 30 Jan 12 nicklas 291           <td><%=HTML.encodeTags(rawBioAssay.getName())%></td>
4258 29 Apr 08 nicklas 292         </tr>
4258 29 Apr 08 nicklas 293         <tr>
5939 30 Jan 12 nicklas 294           <th>Registered</th>
5939 30 Jan 12 nicklas 295           <td><%=dateFormatter.format(rawBioAssay.getEntryDate())%></td>
4258 29 Apr 08 nicklas 296         </tr>
4258 29 Apr 08 nicklas 297         <tr>
5939 30 Jan 12 nicklas 298           <th>Platform</th>
5939 30 Jan 12 nicklas 299           <td><base:propertyvalue item="<%=rawBioAssay%>" property="platform" /></td>
4258 29 Apr 08 nicklas 300         </tr>
4258 29 Apr 08 nicklas 301         <tr>
5939 30 Jan 12 nicklas 302           <th>Variant</th>
5939 30 Jan 12 nicklas 303           <td><base:propertyvalue item="<%=rawBioAssay%>" property="variant" /></td>
4258 29 Apr 08 nicklas 304         </tr>
1769 13 Jan 06 nicklas 305         <tr>
5939 30 Jan 12 nicklas 306           <th>Raw data type</th>
5939 30 Jan 12 nicklas 307           <td><base:catch><%=HTML.encodeTags(rawBioAssay.getRawDataType().getName())%></base:catch></td>
1769 13 Jan 06 nicklas 308         </tr>
1769 13 Jan 06 nicklas 309         <tr>
5939 30 Jan 12 nicklas 310           <th>Spots</th>
5939 30 Jan 12 nicklas 311           <td><%=rawBioAssay.hasData() ? "yes (db: " + rawBioAssay.getNumDbSpots() + 
5939 30 Jan 12 nicklas 312               "; file: " + rawBioAssay.getNumFileSpots() + ")" : "no"%></td>
1769 13 Jan 06 nicklas 313         </tr>
1769 13 Jan 06 nicklas 314         <tr>
5939 30 Jan 12 nicklas 315           <th>Parent bioassay</th>
5939 30 Jan 12 nicklas 316           <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentBioAssay" /></td>
1769 13 Jan 06 nicklas 317         </tr>
1769 13 Jan 06 nicklas 318         <tr>
5939 30 Jan 12 nicklas 319           <th>Parent extract</th>
5939 30 Jan 12 nicklas 320           <td><base:propertyvalue item="<%=rawBioAssay%>" property="parentExtract" /></td>
1769 13 Jan 06 nicklas 321         </tr>
1769 13 Jan 06 nicklas 322         <tr>
5939 30 Jan 12 nicklas 323           <th>Protocol</th>
5939 30 Jan 12 nicklas 324           <td><base:propertyvalue item="<%=rawBioAssay%>" property="protocol" /></td>
1769 13 Jan 06 nicklas 325         </tr>
1769 13 Jan 06 nicklas 326         <tr>
5939 30 Jan 12 nicklas 327           <th>Software</th>
5939 30 Jan 12 nicklas 328           <td><base:propertyvalue item="<%=rawBioAssay%>" property="software" /></td>
1769 13 Jan 06 nicklas 329         </tr>
1769 13 Jan 06 nicklas 330         <tr>
5939 30 Jan 12 nicklas 331           <th>Array design</th>
5939 30 Jan 12 nicklas 332           <td><base:propertyvalue item="<%=rawBioAssay%>" property="arrayDesign" /></td>
1769 13 Jan 06 nicklas 333         </tr>
1769 13 Jan 06 nicklas 334         <tr>
5939 30 Jan 12 nicklas 335           <th>Owner</th>
5939 30 Jan 12 nicklas 336           <td><base:propertyvalue item="<%=rawBioAssay%>" property="owner" /></td>
1769 13 Jan 06 nicklas 337         </tr>
5939 30 Jan 12 nicklas 338         <tr class="dynamic">
5939 30 Jan 12 nicklas 339           <th>Description</th>
5939 30 Jan 12 nicklas 340           <td><%=HTML.niceFormat(rawBioAssay.getDescription())%></td>
5939 30 Jan 12 nicklas 341         </tr>
1769 13 Jan 06 nicklas 342         </table>
8026 15 Dec 21 nicklas 343         </div>
5939 30 Jan 12 nicklas 344       </td>
5939 30 Jan 12 nicklas 345       <td style="width: 50%; height: 100%;" class="leftborder">
8026 15 Dec 21 nicklas 346         <div style="height: 20em; overflow: auto;">
5939 30 Jan 12 nicklas 347         <table class="fullform">
5939 30 Jan 12 nicklas 348         <tr>
5939 30 Jan 12 nicklas 349           <th>Job</th>
5939 30 Jan 12 nicklas 350           <td colspan="3"><%=Base.getLinkedName(ID, job, !readJob, true)%></td>
5939 30 Jan 12 nicklas 351         </tr>
5939 30 Jan 12 nicklas 352         <tr>
5939 30 Jan 12 nicklas 353           <th>Plugin</th>
7447 22 Feb 18 nicklas 354           <td colspan="3">
7447 22 Feb 18 nicklas 355             <base:propertyvalue item="<%=rawBioAssay%>" property="job.pluginDefinition" nulltext="<i>External</i>" />
7447 22 Feb 18 nicklas 356             <%=job != null && job.getPluginVersion() != null ? "(" + HTML.encodeTags(job.getPluginVersion()) + ")" : ""%>
7447 22 Feb 18 nicklas 357           </td>
5939 30 Jan 12 nicklas 358         </tr>
7447 22 Feb 18 nicklas 359         <%
7447 22 Feb 18 nicklas 360         if (configuration != null)
7447 22 Feb 18 nicklas 361         {
7447 22 Feb 18 nicklas 362           %>
5939 30 Jan 12 nicklas 363           <tr>
7447 22 Feb 18 nicklas 364             <th>Configuration / file format</th>
7447 22 Feb 18 nicklas 365             <td colspan="3"><%=Base.getLinkedName(ID, configuration, !readConfiguration, true)%></td>
5939 30 Jan 12 nicklas 366           </tr>
7447 22 Feb 18 nicklas 367           <%
7447 22 Feb 18 nicklas 368         }
7447 22 Feb 18 nicklas 369         if (job != null)
5939 30 Jan 12 nicklas 370         {
5939 30 Jan 12 nicklas 371           %>
7447 22 Feb 18 nicklas 372           <tr>
7447 22 Feb 18 nicklas 373             <th>Type</th>
7447 22 Feb 18 nicklas 374             <td><base:propertyvalue item="<%=job%>" property="itemSubtype" /></td>
7447 22 Feb 18 nicklas 375           </tr>
7447 22 Feb 18 nicklas 376           <tr>
7447 22 Feb 18 nicklas 377             <th>Started</th>
7447 22 Feb 18 nicklas 378             <td>
7447 22 Feb 18 nicklas 379               <%=dateTimeFormatter.format(job.getStarted())%>
5939 30 Jan 12 nicklas 380             </td>
5939 30 Jan 12 nicklas 381           </tr>
7447 22 Feb 18 nicklas 382           <tr>
7447 22 Feb 18 nicklas 383             <th>Ended</th>
7447 22 Feb 18 nicklas 384             <td>
7447 22 Feb 18 nicklas 385               <%=dateTimeFormatter.format(job.getEnded())%>
7447 22 Feb 18 nicklas 386             </td>
7447 22 Feb 18 nicklas 387           </tr>
5939 30 Jan 12 nicklas 388           <%
7447 22 Feb 18 nicklas 389           if (job.getServer() != null)
7447 22 Feb 18 nicklas 390           {
7447 22 Feb 18 nicklas 391             %>
7447 22 Feb 18 nicklas 392             <tr>
7447 22 Feb 18 nicklas 393               <th>Server</th>
7447 22 Feb 18 nicklas 394               <td>
7447 22 Feb 18 nicklas 395                 <%=HTML.encodeTags(job.getServerAndNode())%>
7447 22 Feb 18 nicklas 396               </td>
7447 22 Feb 18 nicklas 397             </tr>
7447 22 Feb 18 nicklas 398             <%
7447 22 Feb 18 nicklas 399           }
7447 22 Feb 18 nicklas 400           for (String name : job.getParameterNames())
7447 22 Feb 18 nicklas 401           {
7447 22 Feb 18 nicklas 402             StringBuilder sb = new StringBuilder();
7447 22 Feb 18 nicklas 403             String displayValue = "";
7447 22 Feb 18 nicklas 404             String description = "";
7447 22 Feb 18 nicklas 405             try
7447 22 Feb 18 nicklas 406             {
7447 22 Feb 18 nicklas 407               ParameterInfo pi = job.getParameterInfo(name);
7447 22 Feb 18 nicklas 408               if (pi.getLabel() != null) name = HTML.encodeTags(pi.getLabel());
7447 22 Feb 18 nicklas 409               description = HTML.encodeTags(pi.getDescription());
7447 22 Feb 18 nicklas 410               List<?> values = pi.getValuesOrMask();
7447 22 Feb 18 nicklas 411               int i = 0;
7447 22 Feb 18 nicklas 412               for (Object value : values)
7447 22 Feb 18 nicklas 413               {
7447 22 Feb 18 nicklas 414                 if (value != null)
7447 22 Feb 18 nicklas 415                 {
7447 22 Feb 18 nicklas 416                   if (i > 0) sb.append(", ");
7447 22 Feb 18 nicklas 417                   i++;
7447 22 Feb 18 nicklas 418                   if (value instanceof BasicItem)
7447 22 Feb 18 nicklas 419                   {
7447 22 Feb 18 nicklas 420                     BasicItem item = (BasicItem)value;
7447 22 Feb 18 nicklas 421                     String itemName = "";
7447 22 Feb 18 nicklas 422                     if (item instanceof File)
7447 22 Feb 18 nicklas 423                     {
7447 22 Feb 18 nicklas 424                       itemName = ((File)item).getPath().toString();
7447 22 Feb 18 nicklas 425                     }
7447 22 Feb 18 nicklas 426                     else if (item instanceof Nameable)
7447 22 Feb 18 nicklas 427                     {
7447 22 Feb 18 nicklas 428                       itemName = ((Nameable)item).getName();
7447 22 Feb 18 nicklas 429                     }
7447 22 Feb 18 nicklas 430                     else
7447 22 Feb 18 nicklas 431                     {
7447 22 Feb 18 nicklas 432                       itemName = item.toString();
7447 22 Feb 18 nicklas 433                     }
7447 22 Feb 18 nicklas 434                     sb.append(Base.getLink(ID, HTML.encodeTags(itemName), 
7447 22 Feb 18 nicklas 435                       item.getType(), item.getId(), item.hasPermission(Permission.WRITE)));
7447 22 Feb 18 nicklas 436                   }
7447 22 Feb 18 nicklas 437                   else if (value instanceof Date)
7447 22 Feb 18 nicklas 438                   {
7447 22 Feb 18 nicklas 439                     sb.append(dateFormatter.format((Date)value));
7447 22 Feb 18 nicklas 440                   }
7447 22 Feb 18 nicklas 441                   else
7447 22 Feb 18 nicklas 442                   {
7447 22 Feb 18 nicklas 443                     sb.append(HTML.encodeTags(value.toString()));
7447 22 Feb 18 nicklas 444                   }
7447 22 Feb 18 nicklas 445                 }
7447 22 Feb 18 nicklas 446               }
7447 22 Feb 18 nicklas 447               displayValue = sb.toString();
7447 22 Feb 18 nicklas 448             }
7447 22 Feb 18 nicklas 449             catch (Throwable ex)
7447 22 Feb 18 nicklas 450             {
7447 22 Feb 18 nicklas 451               displayValue = "<i>ERROR: "+ex.getMessage()+"</i>";
7447 22 Feb 18 nicklas 452             }
7447 22 Feb 18 nicklas 453             %>
7447 22 Feb 18 nicklas 454             <tr>
7447 22 Feb 18 nicklas 455               <th><span title="<%=description%>"><%=name%></span></th>
7447 22 Feb 18 nicklas 456               <td>
7447 22 Feb 18 nicklas 457                 <%=displayValue%>
7447 22 Feb 18 nicklas 458               </td>
7447 22 Feb 18 nicklas 459             </tr>
7447 22 Feb 18 nicklas 460             <%
7447 22 Feb 18 nicklas 461           }
5939 30 Jan 12 nicklas 462         }
5939 30 Jan 12 nicklas 463         %>
7447 22 Feb 18 nicklas 464         <tr class="dynamic">
7447 22 Feb 18 nicklas 465           <th></th>
7447 22 Feb 18 nicklas 466           <td colspan="3"></td>
7447 22 Feb 18 nicklas 467         </tr>
5939 30 Jan 12 nicklas 468         </table>
8026 15 Dec 21 nicklas 469         </div>
2420 22 Jun 06 nicklas 470       </td>
2420 22 Jun 06 nicklas 471       </tr>
2420 22 Jun 06 nicklas 472       </table>
5939 30 Jan 12 nicklas 473       </div>
2420 22 Jun 06 nicklas 474       
3820 12 Oct 07 nicklas 475       <jsp:include page="../../common/datafiles/list_files.jsp">
3820 12 Oct 07 nicklas 476         <jsp:param name="item_type" value="<%=itemType.name()%>" />
3820 12 Oct 07 nicklas 477         <jsp:param name="item_id" value="<%=itemId%>" />
3820 12 Oct 07 nicklas 478         <jsp:param name="ID" value="<%=ID%>" />
3820 12 Oct 07 nicklas 479       </jsp:include>
3820 12 Oct 07 nicklas 480       
2420 22 Jun 06 nicklas 481       <%
2420 22 Jun 06 nicklas 482       Set<String> names = rawBioAssay.getHeaderNames();
5939 30 Jan 12 nicklas 483       %>
5939 30 Jan 12 nicklas 484       <base:section 
5939 30 Jan 12 nicklas 485         id="headers"
5939 30 Jan 12 nicklas 486         title="<%="Raw data headers (" + (names == null ? 0 : names.size()) + ")"%>"
5939 30 Jan 12 nicklas 487         context="<%=cc%>"
5939 30 Jan 12 nicklas 488         >
3820 12 Oct 07 nicklas 489         <%
5939 30 Jan 12 nicklas 490         if (names == null || names.size() == 0)
5939 30 Jan 12 nicklas 491         {
5939 30 Jan 12 nicklas 492           %>
5939 30 Jan 12 nicklas 493           <div class="messagecontainer note">
5939 30 Jan 12 nicklas 494           None.
5939 30 Jan 12 nicklas 495           </div>
5657 16 Jun 11 nicklas 496           <%
5939 30 Jan 12 nicklas 497         }
5939 30 Jan 12 nicklas 498         else
5939 30 Jan 12 nicklas 499         {
5939 30 Jan 12 nicklas 500           %>
5939 30 Jan 12 nicklas 501           <table class="fullform fullborder">
5939 30 Jan 12 nicklas 502           <%
5657 16 Jun 11 nicklas 503           boolean needsTr = true;
5657 16 Jun 11 nicklas 504           if (names != null)
3820 12 Oct 07 nicklas 505           {
5657 16 Jun 11 nicklas 506             for (String name : names)
5657 16 Jun 11 nicklas 507             {
5657 16 Jun 11 nicklas 508               %>
5939 30 Jan 12 nicklas 509               <%=needsTr ? "<tr><th>" : "<th class=\"leftborder\">" %>
5939 30 Jan 12 nicklas 510                 <%=HTML.encodeTags(name)%></th>
5657 16 Jun 11 nicklas 511                 <td><%=HTML.encodeTags(rawBioAssay.getHeader(name))%></td>
5657 16 Jun 11 nicklas 512               <%=needsTr ? "" : "</tr>"%>
5657 16 Jun 11 nicklas 513               <%
5657 16 Jun 11 nicklas 514               needsTr = !needsTr;
5657 16 Jun 11 nicklas 515             }
3820 12 Oct 07 nicklas 516             %>
5939 30 Jan 12 nicklas 517             <%=needsTr ? "" : "<th class=\"leftborder\"></th><td></td></tr>"%>
3820 12 Oct 07 nicklas 518             <%
3820 12 Oct 07 nicklas 519           }
2420 22 Jun 06 nicklas 520           %>
5657 16 Jun 11 nicklas 521           </table>
5939 30 Jan 12 nicklas 522           <%
5939 30 Jan 12 nicklas 523         }
5939 30 Jan 12 nicklas 524         %>
5939 30 Jan 12 nicklas 525       </base:section>
2420 22 Jun 06 nicklas 526       <%
2420 22 Jun 06 nicklas 527       ItemQuery<Experiment> experimentQuery = rawBioAssay.getExperiments();
3888 29 Oct 07 nicklas 528       experimentQuery.include(Include.ALL);
2420 22 Jun 06 nicklas 529       experimentQuery.order(Orders.asc(Hql.property("name")));
2420 22 Jun 06 nicklas 530       ItemResultList<Experiment> experiments = experimentQuery.list(dc);
5939 30 Jan 12 nicklas 531       %>
5939 30 Jan 12 nicklas 532       <base:section 
5939 30 Jan 12 nicklas 533         id="experiments"
5939 30 Jan 12 nicklas 534         title="<%="Experiments (" + experiments.size() + ")"%>"
5939 30 Jan 12 nicklas 535         context="<%=cc%>"
5939 30 Jan 12 nicklas 536         >
2420 22 Jun 06 nicklas 537         <%
5939 30 Jan 12 nicklas 538         if (experiments.size() == 0)
5939 30 Jan 12 nicklas 539         {
5939 30 Jan 12 nicklas 540           %>
5939 30 Jan 12 nicklas 541           <div class="messagecontainer note">
5939 30 Jan 12 nicklas 542           This raw bioassay isn't used in any experiments
5939 30 Jan 12 nicklas 543           (or, you don't have permission to view them).
5939 30 Jan 12 nicklas 544           </div>
5939 30 Jan 12 nicklas 545           <%
5939 30 Jan 12 nicklas 546         }
5939 30 Jan 12 nicklas 547         else
5939 30 Jan 12 nicklas 548         {
5939 30 Jan 12 nicklas 549           %>
3820 12 Oct 07 nicklas 550           <tbl:table
6143 20 Sep 12 nicklas 551             id="tbl.experiments"
3820 12 Oct 07 nicklas 552             columns="all"
3820 12 Oct 07 nicklas 553             >
5939 30 Jan 12 nicklas 554             <tbl:columndef 
5939 30 Jan 12 nicklas 555               id="name"
5939 30 Jan 12 nicklas 556               title="Name"
5939 30 Jan 12 nicklas 557             />
5939 30 Jan 12 nicklas 558             <tbl:columndef 
5939 30 Jan 12 nicklas 559               id="description"
5939 30 Jan 12 nicklas 560               title="Description"
5939 30 Jan 12 nicklas 561             />
5939 30 Jan 12 nicklas 562             <tbl:data>
5939 30 Jan 12 nicklas 563               <tbl:headers>
5939 30 Jan 12 nicklas 564                 <tbl:headerrow>
5939 30 Jan 12 nicklas 565                   <tbl:columnheaders />
5939 30 Jan 12 nicklas 566                 </tbl:headerrow>
5939 30 Jan 12 nicklas 567               </tbl:headers>
5939 30 Jan 12 nicklas 568               <tbl:rows>
5939 30 Jan 12 nicklas 569               <%
5939 30 Jan 12 nicklas 570               for (Experiment item : experiments)
5939 30 Jan 12 nicklas 571               {
5939 30 Jan 12 nicklas 572                 %>
5939 30 Jan 12 nicklas 573                 <tbl:row>
5939 30 Jan 12 nicklas 574                   <tbl:cell column="name"><base:icon 
5946 03 Feb 12 nicklas 575                     image="deleted.png" 
5939 30 Jan 12 nicklas 576                     tooltip="This item has been scheduled for deletion" 
5939 30 Jan 12 nicklas 577                     visible="<%=item.isRemoved()%>"
5939 30 Jan 12 nicklas 578                   /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
5939 30 Jan 12 nicklas 579                   <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
5939 30 Jan 12 nicklas 580                 </tbl:row>
5939 30 Jan 12 nicklas 581                 <%
5939 30 Jan 12 nicklas 582               }
3820 12 Oct 07 nicklas 583               %>
5939 30 Jan 12 nicklas 584               </tbl:rows>
5939 30 Jan 12 nicklas 585             </tbl:data>
3820 12 Oct 07 nicklas 586           </tbl:table>
5939 30 Jan 12 nicklas 587           <%
5939 30 Jan 12 nicklas 588         }
5939 30 Jan 12 nicklas 589         %>
5939 30 Jan 12 nicklas 590       </base:section>
5939 30 Jan 12 nicklas 591
5502 18 Nov 10 nicklas 592       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5502 18 Nov 10 nicklas 593         <jsp:param name="ID" value="<%=ID%>" />
5502 18 Nov 10 nicklas 594         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5502 18 Nov 10 nicklas 595         <jsp:param name="item_id" value="<%=itemId%>" />
5502 18 Nov 10 nicklas 596         <jsp:param name="title" value="Other items related to this sample" />
5502 18 Nov 10 nicklas 597       </jsp:include>
7813 19 May 20 nicklas 598       <jsp:include page="../../common/itemlists/list_membership.jsp">
7813 19 May 20 nicklas 599         <jsp:param name="ID" value="<%=ID%>" />
7813 19 May 20 nicklas 600         <jsp:param name="item_type" value="<%=itemType.name()%>" />
7813 19 May 20 nicklas 601         <jsp:param name="item_id" value="<%=itemId%>" />
7813 19 May 20 nicklas 602         <jsp:param name="title" value="Item lists where this raw bioassay is a member" />
7813 19 May 20 nicklas 603       </jsp:include>
7813 19 May 20 nicklas 604       
5935 26 Jan 12 nicklas 605       <jsp:include page="../../common/share/list_share.jsp">
5935 26 Jan 12 nicklas 606         <jsp:param name="ID" value="<%=ID%>" />
5935 26 Jan 12 nicklas 607         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5935 26 Jan 12 nicklas 608         <jsp:param name="item_id" value="<%=itemId%>" />
5935 26 Jan 12 nicklas 609         <jsp:param name="title" value="Shared to" />
5935 26 Jan 12 nicklas 610       </jsp:include>
1855 27 Jan 06 nicklas 611       </t:tab>
1855 27 Jan 06 nicklas 612       
2875 08 Nov 06 nicklas 613       <t:tab id="annotations" title="Annotations &amp; parameters" 
6311 23 Aug 13 nicklas 614         tooltip="View annotation values and protocol parameters" clazz="white">
6255 22 Mar 13 nicklas 615         <jsp:include page="../../common/annotations/list_frameset.jsp">
1855 27 Jan 06 nicklas 616           <jsp:param name="item_type" value="<%=itemType.name()%>" />
1855 27 Jan 06 nicklas 617           <jsp:param name="item_id" value="<%=itemId%>" />
1855 27 Jan 06 nicklas 618           <jsp:param name="ID" value="<%=ID%>" />
1855 27 Jan 06 nicklas 619         </jsp:include>
1855 27 Jan 06 nicklas 620       </t:tab>
5935 26 Jan 12 nicklas 621
5590 16 Mar 11 nicklas 622       <t:tab id="rawdata" title="Raw data" visible="<%=rawBioAssay.getNumDbSpots() > 0%>" />
4746 10 Feb 09 nicklas 623       <t:tab id="overview" title="Overview" 
6311 23 Aug 13 nicklas 624         tooltip="Display a tree overview of related items">
6242 25 Feb 13 nicklas 625         <jsp:include page="../../common/overview/overview.jsp">
6242 25 Feb 13 nicklas 626           <jsp:param name="item_type" value="<%=itemType.name()%>" />
6242 25 Feb 13 nicklas 627           <jsp:param name="item_id" value="<%=itemId%>" />
6242 25 Feb 13 nicklas 628           <jsp:param name="ID" value="<%=ID%>" />
6242 25 Feb 13 nicklas 629         </jsp:include>
4746 10 Feb 09 nicklas 630       </t:tab>
7166 07 Jun 16 nicklas 631       <t:tab id="history" title="History"
7166 07 Jun 16 nicklas 632         tooltip="Displays a log with the history of this item"
6311 23 Aug 13 nicklas 633         visible="<%=ChangeHistoryUtil.showChangeHistoryTab(sc)%>">
6244 25 Feb 13 nicklas 634         <jsp:include page="../../common/history/frameset.jsp">
6244 25 Feb 13 nicklas 635           <jsp:param name="item_type" value="<%=itemType.name()%>" />
6244 25 Feb 13 nicklas 636           <jsp:param name="item_id" value="<%=itemId%>" />
6244 25 Feb 13 nicklas 637           <jsp:param name="ID" value="<%=ID%>" />
6244 25 Feb 13 nicklas 638         </jsp:include>
5064 19 Aug 09 nicklas 639       </t:tab>
1855 27 Jan 06 nicklas 640       </t:tabcontrol>
1765 13 Jan 06 nicklas 641
1765 13 Jan 06 nicklas 642   </base:body>
1765 13 Jan 06 nicklas 643   </base:page>
1765 13 Jan 06 nicklas 644   <%
1765 13 Jan 06 nicklas 645 }
1765 13 Jan 06 nicklas 646 finally
1765 13 Jan 06 nicklas 647 {
1765 13 Jan 06 nicklas 648   if (dc != null) dc.close();
1765 13 Jan 06 nicklas 649 }
1765 13 Jan 06 nicklas 650
1765 13 Jan 06 nicklas 651 %>