www/views/experiments/bioassaysets/view_bioassayset.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
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"
2305 22 May 06 jari 30   import="net.sf.basedb.core.ItemContext"
2305 22 May 06 jari 31   import="net.sf.basedb.core.Permission"
2305 22 May 06 jari 32   import="net.sf.basedb.core.Experiment"
2305 22 May 06 jari 33   import="net.sf.basedb.core.BioAssaySet"
2097 21 Mar 06 nicklas 34   import="net.sf.basedb.core.BioAssay"
2097 21 Mar 06 nicklas 35   import="net.sf.basedb.core.Transformation"
2097 21 Mar 06 nicklas 36   import="net.sf.basedb.core.Job"
2097 21 Mar 06 nicklas 37   import="net.sf.basedb.core.PluginDefinition"
2097 21 Mar 06 nicklas 38   import="net.sf.basedb.core.PluginConfiguration"
2305 22 May 06 jari 39   import="net.sf.basedb.core.User"
2305 22 May 06 jari 40   import="net.sf.basedb.core.ItemQuery"
2305 22 May 06 jari 41   import="net.sf.basedb.core.ItemResultList"
2305 22 May 06 jari 42   import="net.sf.basedb.core.Include"
2305 22 May 06 jari 43   import="net.sf.basedb.core.PermissionDeniedException"
2305 22 May 06 jari 44   import="net.sf.basedb.core.PluginDefinition"
2348 01 Jun 06 nicklas 45   import="net.sf.basedb.core.ParameterInfo"
2097 21 Mar 06 nicklas 46   import="net.sf.basedb.core.RawDataType"
2216 05 May 06 nicklas 47   import="net.sf.basedb.core.BasicItem"
2216 05 May 06 nicklas 48   import="net.sf.basedb.core.Nameable"
2216 05 May 06 nicklas 49   import="net.sf.basedb.core.File"
2305 22 May 06 jari 50   import="net.sf.basedb.core.plugin.GuiContext"
2305 22 May 06 jari 51   import="net.sf.basedb.core.plugin.Plugin"
2305 22 May 06 jari 52   import="net.sf.basedb.core.query.Orders"
2305 22 May 06 jari 53   import="net.sf.basedb.core.query.Hql"
2305 22 May 06 jari 54   import="net.sf.basedb.clients.web.Base"
2386 15 Jun 06 martin 55   import="net.sf.basedb.clients.web.PermissionUtil"
2305 22 May 06 jari 56   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 57   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 58   import="net.sf.basedb.util.formatter.Formatter"
2942 22 Nov 06 nicklas 59   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4871 01 Apr 09 nicklas 60   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4871 01 Apr 09 nicklas 61   import="net.sf.basedb.clients.web.extensions.JspContext"
4871 01 Apr 09 nicklas 62   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 63   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4871 01 Apr 09 nicklas 64   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4908 28 Apr 09 nicklas 65   import="net.sf.basedb.clients.web.extensions.plot.OverviewPlotAction"
4908 28 Apr 09 nicklas 66   import="net.sf.basedb.clients.web.extensions.plot.PlotGenerator"
4871 01 Apr 09 nicklas 67   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4908 28 Apr 09 nicklas 68   import="net.sf.basedb.util.extensions.ActionIterator"
2305 22 May 06 jari 69   import="java.util.Date"
2305 22 May 06 jari 70   import="java.util.Map"
2305 22 May 06 jari 71   import="java.util.Set"
2097 21 Mar 06 nicklas 72   import="java.util.List"
4908 28 Apr 09 nicklas 73   import="java.util.Iterator"
2305 22 May 06 jari 74 %>
2305 22 May 06 jari 75 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2305 22 May 06 jari 76 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
2305 22 May 06 jari 77 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
2305 22 May 06 jari 78 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4871 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.BIOASSAYSET;
2305 22 May 06 jari 82   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
2305 22 May 06 jari 83 %>
2305 22 May 06 jari 84 <%
2305 22 May 06 jari 85 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
2305 22 May 06 jari 86 final String ID = sc.getId();
2305 22 May 06 jari 87 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
2097 21 Mar 06 nicklas 88 final int itemId = cc.getId();
2097 21 Mar 06 nicklas 89 final String tabId = Values.getString(request.getParameter("tab"), "properties");
2305 22 May 06 jari 90
2305 22 May 06 jari 91 final float scale = Base.getScale(sc);
2305 22 May 06 jari 92 final String root = request.getContextPath();
7954 12 May 21 nicklas 93 final DbControl dc = sc.newDbControl(":View "+itemType);
2305 22 May 06 jari 94 try
2305 22 May 06 jari 95 {
2305 22 May 06 jari 96   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
2305 22 May 06 jari 97
2097 21 Mar 06 nicklas 98   String title = null;
2216 05 May 06 nicklas 99   final BioAssaySet bioAssaySet = BioAssaySet.getById(dc, itemId);
2216 05 May 06 nicklas 100   final Experiment experiment = bioAssaySet.getExperiment();
2216 05 May 06 nicklas 101   final int experimentId = experiment.getId();
4338 17 Jun 08 nicklas 102   final boolean hasDbSpots = bioAssaySet.getNumSpots() > 0;
2097 21 Mar 06 nicklas 103   Transformation transformation = bioAssaySet.getTransformation();
2097 21 Mar 06 nicklas 104   RawDataType rawDataType = experiment.getRawDataType();
2097 21 Mar 06 nicklas 105   
2097 21 Mar 06 nicklas 106   Job job = null;
2097 21 Mar 06 nicklas 107   boolean readJob = true;
2097 21 Mar 06 nicklas 108   PluginDefinition plugin = null;
2097 21 Mar 06 nicklas 109   boolean readPlugin = true;
2097 21 Mar 06 nicklas 110   PluginConfiguration configuration = null;
2097 21 Mar 06 nicklas 111   boolean readConfiguration = true;
2097 21 Mar 06 nicklas 112
2097 21 Mar 06 nicklas 113   try
2097 21 Mar 06 nicklas 114   {
2097 21 Mar 06 nicklas 115     job = transformation.getJob();
2097 21 Mar 06 nicklas 116   }
2097 21 Mar 06 nicklas 117   catch (PermissionDeniedException ex)
2097 21 Mar 06 nicklas 118   {
2097 21 Mar 06 nicklas 119     readJob = false;
2097 21 Mar 06 nicklas 120     readPlugin = false;
2097 21 Mar 06 nicklas 121     readConfiguration = false;
2097 21 Mar 06 nicklas 122   }
2097 21 Mar 06 nicklas 123   if (job != null)
2097 21 Mar 06 nicklas 124   {
2097 21 Mar 06 nicklas 125     try
2097 21 Mar 06 nicklas 126     {
2305 22 May 06 jari 127       plugin = job.getPluginDefinition();
2097 21 Mar 06 nicklas 128     }
2097 21 Mar 06 nicklas 129     catch (PermissionDeniedException ex)
2097 21 Mar 06 nicklas 130     {
2097 21 Mar 06 nicklas 131       readPlugin = false;
2097 21 Mar 06 nicklas 132     }
2097 21 Mar 06 nicklas 133     try
2097 21 Mar 06 nicklas 134     {
2305 22 May 06 jari 135       configuration = job.getPluginConfiguration();
2097 21 Mar 06 nicklas 136     }
2097 21 Mar 06 nicklas 137     catch (PermissionDeniedException ex)
2097 21 Mar 06 nicklas 138     {
2097 21 Mar 06 nicklas 139       readConfiguration = false;
2097 21 Mar 06 nicklas 140     }
2305 22 May 06 jari 141   }
2305 22 May 06 jari 142   
2309 22 May 06 nicklas 143   final boolean createPermission = experiment.hasPermission(Permission.USE);
2305 22 May 06 jari 144   final boolean writePermission = bioAssaySet.hasPermission(Permission.WRITE);
2305 22 May 06 jari 145   final boolean deletePermission = bioAssaySet.hasPermission(Permission.DELETE);
2942 22 Nov 06 nicklas 146   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
2942 22 Nov 06 nicklas 147   Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
4872 02 Apr 09 nicklas 148   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, bioAssaySet);
7604 25 Feb 19 nicklas 149   ExtensionsInvoker<ButtonAction> toolbarInvoker = ToolbarUtil.useExtensions(jspContext);
7605 26 Feb 19 nicklas 150   ExtensionsInvoker<OverviewPlotAction> overviewPlotInvoker = ExtensionsControl.useExtensions(jspContext, 
4908 28 Apr 09 nicklas 151       "net.sf.basedb.clients.web.bioassayset.overviewplots");
2305 22 May 06 jari 152   %>
6315 06 Sep 13 nicklas 153   <base:page title="<%=title%>" id="view-page">
6388 07 Jan 14 nicklas 154   <base:head scripts="table.js,tabcontrol-2.js,~bioassaysets.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css,joust-2.css">
4871 01 Apr 09 nicklas 155     <ext:scripts context="<%=jspContext%>" />
4871 01 Apr 09 nicklas 156     <ext:stylesheets context="<%=jspContext%>" />
4095 21 Jan 08 enell 157     <style>
5924 13 Jan 12 nicklas 158     .plot 
5924 13 Jan 12 nicklas 159     {
6021 19 Mar 12 nicklas 160       margin: 0.5em;
4095 21 Jan 08 enell 161     }
6315 06 Sep 13 nicklas 162     .plot.empty
6315 06 Sep 13 nicklas 163     {
6315 06 Sep 13 nicklas 164       background-image: url('../../../images/plot_empty_400x300.png');
6315 06 Sep 13 nicklas 165     }
4095 21 Jan 08 enell 166     </style>
2305 22 May 06 jari 167   </base:head>
6315 06 Sep 13 nicklas 168   <base:body>
5939 30 Jan 12 nicklas 169     <p:path><p:pathelement 
5939 30 Jan 12 nicklas 170       title="Experiments" href="<%="../index.jsp?ID="+ID%>" 
5939 30 Jan 12 nicklas 171       /><p:pathelement title="<%=HTML.encodeTags(experiment.getName())%>" 
6143 20 Sep 12 nicklas 172         href="<%="index.jsp?ID="+ID+"&amp;experiment_id="+experimentId%>" 
5939 30 Jan 12 nicklas 173       /><p:pathelement title="<%=HTML.encodeTags(bioAssaySet.getName())%>" 
5939 30 Jan 12 nicklas 174       /></p:path>
6315 06 Sep 13 nicklas 175       
6315 06 Sep 13 nicklas 176     <div id="page-data" 
6315 06 Sep 13 nicklas 177       data-item-id="<%=itemId%>"
6315 06 Sep 13 nicklas 178       data-experiment-id="<%=experimentId%>"
6315 06 Sep 13 nicklas 179     ></div>
2305 22 May 06 jari 180     
5939 30 Jan 12 nicklas 181     <t:tabcontrol 
5939 30 Jan 12 nicklas 182       id="view" 
5939 30 Jan 12 nicklas 183       subclass="content mastertabcontrol"
6315 06 Sep 13 nicklas 184       active="<%=tabId%>" remember="false">
2305 22 May 06 jari 185     <t:tab id="properties" title="Properties">
5939 30 Jan 12 nicklas 186       <div>
5939 30 Jan 12 nicklas 187       <table class="fullform">
5939 30 Jan 12 nicklas 188       <tr>
5939 30 Jan 12 nicklas 189         <th class="itemstatus">
5939 30 Jan 12 nicklas 190           <base:icon 
6315 06 Sep 13 nicklas 191             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 192             image="deleted.png"
5939 30 Jan 12 nicklas 193             tooltip="This item has been flagged for deletion. Click to delete it now."
5939 30 Jan 12 nicklas 194             enabled="<%=deletePermission %>"
5939 30 Jan 12 nicklas 195             visible="<%=bioAssaySet.isRemoved()%>" 
5939 30 Jan 12 nicklas 196           />
5939 30 Jan 12 nicklas 197         </th>
5940 31 Jan 12 nicklas 198         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 199           <tbl:toolbar subclass="bottomborder bg-filled-50">
5939 30 Jan 12 nicklas 200             <tbl:button 
6315 06 Sep 13 nicklas 201               id="btnEdit"
5942 01 Feb 12 nicklas 202               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 203               image="edit.png" 
5939 30 Jan 12 nicklas 204               title="Edit&hellip;" 
5939 30 Jan 12 nicklas 205               tooltip="<%=writePermission ? "Edit this bioassay set" : "You do not have permission to edit this bioassay set"%>" 
5939 30 Jan 12 nicklas 206             />
5939 30 Jan 12 nicklas 207             <tbl:button 
6315 06 Sep 13 nicklas 208               id="btnDelete"
5942 01 Feb 12 nicklas 209               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 210               image="delete.png" 
5939 30 Jan 12 nicklas 211               title="Delete"
5939 30 Jan 12 nicklas 212               visible="<%=!bioAssaySet.isRemoved()%>"
5939 30 Jan 12 nicklas 213               tooltip="<%=deletePermission ? "Delete this bioassay set" : "You do not have permission to delete this bioassay set"%>" 
5939 30 Jan 12 nicklas 214             />
5939 30 Jan 12 nicklas 215             <tbl:button 
6315 06 Sep 13 nicklas 216               id="btnRestore"
5942 01 Feb 12 nicklas 217               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 218               image="restore.png" 
5939 30 Jan 12 nicklas 219               title="Restore"
5939 30 Jan 12 nicklas 220               visible="<%=bioAssaySet.isRemoved()%>"
5939 30 Jan 12 nicklas 221               tooltip="<%=writePermission ? "Restore this bioassay set" : "You do not have permission to restore this bioassay set"%>" 
5939 30 Jan 12 nicklas 222             />
5939 30 Jan 12 nicklas 223             <tbl:button 
6315 06 Sep 13 nicklas 224               id="btnImport"
5946 03 Feb 12 nicklas 225               image="import.png" 
6315 06 Sep 13 nicklas 226               data-plugin-type="IMPORT"  
5939 30 Jan 12 nicklas 227               title="Import&hellip;" 
5939 30 Jan 12 nicklas 228               tooltip="Import data" 
5939 30 Jan 12 nicklas 229               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5939 30 Jan 12 nicklas 230             />
5939 30 Jan 12 nicklas 231             <tbl:button 
6315 06 Sep 13 nicklas 232               id="btnExport"
6315 06 Sep 13 nicklas 233               image="export.png"
6315 06 Sep 13 nicklas 234               data-plugin-type="EXPORT" 
5939 30 Jan 12 nicklas 235               title="Export&hellip;" 
5939 30 Jan 12 nicklas 236               tooltip="Export data" 
5939 30 Jan 12 nicklas 237               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5939 30 Jan 12 nicklas 238             />
5939 30 Jan 12 nicklas 239             <tbl:button
6315 06 Sep 13 nicklas 240               id="btnPlot"
5946 03 Feb 12 nicklas 241               image="plotter.png"
5939 30 Jan 12 nicklas 242               title="Plot tool&hellip;"
5939 30 Jan 12 nicklas 243               tooltip="A simple tool for generating plots"
5939 30 Jan 12 nicklas 244               visible="<%=hasDbSpots%>"
5939 30 Jan 12 nicklas 245             />
5939 30 Jan 12 nicklas 246             <tbl:button
6321 11 Sep 13 nicklas 247               id="btnExperimentExplorer"
5939 30 Jan 12 nicklas 248               image="explorer.png"
5939 30 Jan 12 nicklas 249               title="Experiment explorer"
5939 30 Jan 12 nicklas 250               tooltip="View the data reporter by reporter"
5939 30 Jan 12 nicklas 251               visible="<%=hasDbSpots%>"
5939 30 Jan 12 nicklas 252             />
5939 30 Jan 12 nicklas 253             <tbl:button
6315 06 Sep 13 nicklas 254               id="btnFilter"
6315 06 Sep 13 nicklas 255               data-plugin-type="ANALYZE"
6315 06 Sep 13 nicklas 256               data-cmd="NewFilteredBioAssaySet"
5939 30 Jan 12 nicklas 257               disabled="<%=!createPermission%>"
5946 03 Feb 12 nicklas 258               image="filter.png"
5939 30 Jan 12 nicklas 259               title="Filter bioassay set&hellip;"
5939 30 Jan 12 nicklas 260               tooltip="<%=createPermission ? 
5939 30 Jan 12 nicklas 261                 "Create a new bioassay set by filtering this bioassayset" :
5939 30 Jan 12 nicklas 262                 "You do not have permission analyze this experiment"%>"
5939 30 Jan 12 nicklas 263               visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
5939 30 Jan 12 nicklas 264              />
5939 30 Jan 12 nicklas 265             <tbl:button 
6315 06 Sep 13 nicklas 266               id="btnRunPlugin"
6315 06 Sep 13 nicklas 267               image="runplugin.png"  
6315 06 Sep 13 nicklas 268               data-plugin-type="OTHER" 
5939 30 Jan 12 nicklas 269               title="Run plugin&hellip;" 
5939 30 Jan 12 nicklas 270               tooltip="Run a plugin" 
5939 30 Jan 12 nicklas 271               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5939 30 Jan 12 nicklas 272             />
5939 30 Jan 12 nicklas 273             <tbl:button 
6315 06 Sep 13 nicklas 274               id="btnAnalyze"
6315 06 Sep 13 nicklas 275               data-plugin-type="ANALYZE"
5939 30 Jan 12 nicklas 276               disabled="<%=!createPermission%>"
5945 02 Feb 12 nicklas 277               image="runplugin.png" 
5939 30 Jan 12 nicklas 278               title="Run analysis&hellip;" 
5939 30 Jan 12 nicklas 279               tooltip="<%=createPermission ? "Run an analysis plugin" : 
5939 30 Jan 12 nicklas 280                 "You do not have permission to analyze this experiment"%>"
5939 30 Jan 12 nicklas 281               visible="<%=pluginCount.containsKey(Plugin.MainType.ANALYZE)%>"
5939 30 Jan 12 nicklas 282             />
5939 30 Jan 12 nicklas 283             <ext:render extensions="<%=toolbarInvoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 284               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5939 30 Jan 12 nicklas 285             <tbl:button
5939 30 Jan 12 nicklas 286               image="help.png"
6315 06 Sep 13 nicklas 287               subclass="auto-init"
6315 06 Sep 13 nicklas 288               data-auto-init="help"
6315 06 Sep 13 nicklas 289               data-help-id="bioassayset.view.properties"
5939 30 Jan 12 nicklas 290               title="Help&hellip;"
5939 30 Jan 12 nicklas 291               tooltip="Get help about this page"
5939 30 Jan 12 nicklas 292             />
5939 30 Jan 12 nicklas 293           </tbl:toolbar>
5939 30 Jan 12 nicklas 294         </td>
5939 30 Jan 12 nicklas 295       </tr>
5939 30 Jan 12 nicklas 296     </table>
5940 31 Jan 12 nicklas 297     <table style="width: 100%; height: 22em;" class="bottomborder">
6143 20 Sep 12 nicklas 298     <tr>
5939 30 Jan 12 nicklas 299       <td style="width: 50%; height: 100%;">
5939 30 Jan 12 nicklas 300       <table class="fullform" >
5939 30 Jan 12 nicklas 301       <tr>
5939 30 Jan 12 nicklas 302         <th>Name</th>
5939 30 Jan 12 nicklas 303         <td><%=HTML.encodeTags(bioAssaySet.getName())%></td>
5939 30 Jan 12 nicklas 304       </tr>
5939 30 Jan 12 nicklas 305       <tr>
5939 30 Jan 12 nicklas 306         <th>Experiment</th>
5939 30 Jan 12 nicklas 307         <td><%=Base.getLinkedName(ID, experiment, false, writePermission)%>
5939 30 Jan 12 nicklas 308         (<%=experiment.getRawDataType()%>)</td>
5939 30 Jan 12 nicklas 309       </tr>
5939 30 Jan 12 nicklas 310       <tr>
5939 30 Jan 12 nicklas 311         <th>Intensity transformation</th>
5939 30 Jan 12 nicklas 312         <td><%=bioAssaySet.getIntensityTransform().toString()%></td>
5939 30 Jan 12 nicklas 313       </tr>
5939 30 Jan 12 nicklas 314       <tr>
5939 30 Jan 12 nicklas 315         <th>Spots</th>
5939 30 Jan 12 nicklas 316         <td>db: <%=bioAssaySet.getNumSpots()%>; file: <%=bioAssaySet.getNumFileSpots()%></td>
5939 30 Jan 12 nicklas 317       </tr>
5939 30 Jan 12 nicklas 318       <tr>
5939 30 Jan 12 nicklas 319         <th>Reporters</th>
5939 30 Jan 12 nicklas 320         <td>db: <%=bioAssaySet.getNumReporters()%>; file: <%=bioAssaySet.getNumFileReporters()%></td>
5939 30 Jan 12 nicklas 321       </tr>
5939 30 Jan 12 nicklas 322       <tr>
5939 30 Jan 12 nicklas 323         <th>Permissions</th>
5939 30 Jan 12 nicklas 324         <td><%=PermissionUtil.getFullPermissionNames(bioAssaySet)%></td>
5939 30 Jan 12 nicklas 325       </tr>
5939 30 Jan 12 nicklas 326       <tr>
5939 30 Jan 12 nicklas 327         <th>Description</th>
5939 30 Jan 12 nicklas 328         <td><%=HTML.niceFormat(bioAssaySet.getDescription())%></td>
5939 30 Jan 12 nicklas 329       </tr>
5939 30 Jan 12 nicklas 330       <tr>
5939 30 Jan 12 nicklas 331         <th>Transformation</th>
5939 30 Jan 12 nicklas 332         <td><%=Base.getLinkedName(ID, transformation, false, 
5939 30 Jan 12 nicklas 333             transformation.hasPermission(Permission.WRITE))%></td>
5939 30 Jan 12 nicklas 334       </tr>
5939 30 Jan 12 nicklas 335       <tr>
5939 30 Jan 12 nicklas 336         <th>Job</th>
5939 30 Jan 12 nicklas 337         <td><%=Base.getLinkedName(ID, job, !readJob, false)%></td>
5939 30 Jan 12 nicklas 338       </tr>
5939 30 Jan 12 nicklas 339       <tr >
5940 31 Jan 12 nicklas 340         <th class="subprompt">- started</th>
5939 30 Jan 12 nicklas 341         <td>
5939 30 Jan 12 nicklas 342           <%=job == null ? "" : dateTimeFormatter.format(job.getStarted())%>
5939 30 Jan 12 nicklas 343         </td>
5939 30 Jan 12 nicklas 344       </tr>
5939 30 Jan 12 nicklas 345       <tr>
5940 31 Jan 12 nicklas 346         <th class="subprompt">- ended</th>
5939 30 Jan 12 nicklas 347         <td>
5939 30 Jan 12 nicklas 348           <%=job == null ? "" : dateTimeFormatter.format(job.getEnded())%>
5939 30 Jan 12 nicklas 349         </td>
5939 30 Jan 12 nicklas 350       </tr>
5939 30 Jan 12 nicklas 351       <tr>
5940 31 Jan 12 nicklas 352         <th class="subprompt">- server</th>
5939 30 Jan 12 nicklas 353         <td>
7265 14 Dec 16 nicklas 354           <%=job == null ? "" : HTML.encodeTags(job.getServerAndNode())%>
5939 30 Jan 12 nicklas 355         </td>
5939 30 Jan 12 nicklas 356       </tr>
5940 31 Jan 12 nicklas 357       <tr class="dynamic">
5940 31 Jan 12 nicklas 358         <th class="subprompt">- description</th>
5939 30 Jan 12 nicklas 359         <td><%=HTML.niceFormat(transformation.getDescription())%></td>
5939 30 Jan 12 nicklas 360       </tr>
5939 30 Jan 12 nicklas 361       </table>
5939 30 Jan 12 nicklas 362     </td>
5940 31 Jan 12 nicklas 363     <td style="width: 50%; height: 100%;" class="leftborder">
5939 30 Jan 12 nicklas 364       <table class="fullform" >
5939 30 Jan 12 nicklas 365       <tr>
5939 30 Jan 12 nicklas 366         <th>Plugin</th>
5939 30 Jan 12 nicklas 367         <td><%=Base.getLinkedName(ID, plugin, 
5939 30 Jan 12 nicklas 368             !readPlugin, plugin != null && plugin.hasPermission(Permission.WRITE))%></td>
5939 30 Jan 12 nicklas 369       </tr>
5939 30 Jan 12 nicklas 370       <tr>
5939 30 Jan 12 nicklas 371         <th>Plugin configuration</th>
5939 30 Jan 12 nicklas 372         <td><%=Base.getLinkedName(ID, configuration, !readConfiguration, 
5939 30 Jan 12 nicklas 373           configuration != null && configuration.hasPermission(Permission.WRITE))%></td>
5939 30 Jan 12 nicklas 374       </tr>
5940 31 Jan 12 nicklas 375       <tbody class="sectionheader">
5940 31 Jan 12 nicklas 376         <tr>
5940 31 Jan 12 nicklas 377           <th colspan="2">Plugin parameters</th>
5940 31 Jan 12 nicklas 378         </tr>
5940 31 Jan 12 nicklas 379       </tbody>
2097 21 Mar 06 nicklas 380         <%
2097 21 Mar 06 nicklas 381         if (job != null)
2097 21 Mar 06 nicklas 382         {
2097 21 Mar 06 nicklas 383           for (String name : job.getParameterNames())
2097 21 Mar 06 nicklas 384           {
2216 05 May 06 nicklas 385             StringBuilder sb = new StringBuilder();
2097 21 Mar 06 nicklas 386             String displayValue = "";
2348 01 Jun 06 nicklas 387             String description = "";
2097 21 Mar 06 nicklas 388             try
2097 21 Mar 06 nicklas 389             {
2348 01 Jun 06 nicklas 390               ParameterInfo pi = job.getParameterInfo(name);
2348 01 Jun 06 nicklas 391               if (pi.getLabel() != null) name = HTML.encodeTags(pi.getLabel());
2348 01 Jun 06 nicklas 392               description = HTML.encodeTags(pi.getDescription());
6988 30 Oct 15 nicklas 393               List<?> values = pi.getValuesOrMask();
2216 05 May 06 nicklas 394               int i = 0;
2216 05 May 06 nicklas 395               for (Object value : values)
2216 05 May 06 nicklas 396               {
2216 05 May 06 nicklas 397                 if (value != null)
2216 05 May 06 nicklas 398                 {
2216 05 May 06 nicklas 399                   if (i > 0) sb.append(", ");
2216 05 May 06 nicklas 400                   i++;
2216 05 May 06 nicklas 401                   if (value instanceof BasicItem)
2216 05 May 06 nicklas 402                   {
2216 05 May 06 nicklas 403                     BasicItem item = (BasicItem)value;
2216 05 May 06 nicklas 404                     String itemName = "";
2216 05 May 06 nicklas 405                     if (item instanceof File)
2216 05 May 06 nicklas 406                     {
2216 05 May 06 nicklas 407                       itemName = ((File)item).getPath().toString();
2216 05 May 06 nicklas 408                     }
2216 05 May 06 nicklas 409                     else if (item instanceof Nameable)
2216 05 May 06 nicklas 410                     {
2216 05 May 06 nicklas 411                       itemName = ((Nameable)item).getName();
2216 05 May 06 nicklas 412                     }
2216 05 May 06 nicklas 413                     else
2216 05 May 06 nicklas 414                     {
2216 05 May 06 nicklas 415                       itemName = item.toString();
2216 05 May 06 nicklas 416                     }
2216 05 May 06 nicklas 417                     sb.append(Base.getLink(ID, HTML.encodeTags(itemName), 
2216 05 May 06 nicklas 418                       item.getType(), item.getId(), item.hasPermission(Permission.WRITE)));
2216 05 May 06 nicklas 419                   }
2216 05 May 06 nicklas 420                   else if (value instanceof Date)
2216 05 May 06 nicklas 421                   {
2942 22 Nov 06 nicklas 422                     sb.append(dateFormatter.format((Date)value));
2216 05 May 06 nicklas 423                   }
2216 05 May 06 nicklas 424                   else
2216 05 May 06 nicklas 425                   {
2216 05 May 06 nicklas 426                     sb.append(HTML.encodeTags(value.toString()));
2216 05 May 06 nicklas 427                   }
2216 05 May 06 nicklas 428                 }
2216 05 May 06 nicklas 429               }
2216 05 May 06 nicklas 430               displayValue = sb.toString();
2097 21 Mar 06 nicklas 431             }
2097 21 Mar 06 nicklas 432             catch (Throwable ex)
2097 21 Mar 06 nicklas 433             {
2216 05 May 06 nicklas 434               displayValue = "<i>ERROR: "+ex.getMessage()+"</i>";
2097 21 Mar 06 nicklas 435             }
2097 21 Mar 06 nicklas 436             %>
2216 05 May 06 nicklas 437             <tr>
5940 31 Jan 12 nicklas 438             <th class="subprompt"><span title="<%=description%>">- <%=name%></span></th>
2097 21 Mar 06 nicklas 439               <td>
2097 21 Mar 06 nicklas 440                 <%=displayValue%>
2097 21 Mar 06 nicklas 441               </td>
2097 21 Mar 06 nicklas 442             </tr>
2097 21 Mar 06 nicklas 443             <%
2097 21 Mar 06 nicklas 444           }
2097 21 Mar 06 nicklas 445         }
2097 21 Mar 06 nicklas 446         %>
5939 30 Jan 12 nicklas 447         <tr class="dynamic">
5939 30 Jan 12 nicklas 448           <th></th>
5939 30 Jan 12 nicklas 449           <td></td>
5939 30 Jan 12 nicklas 450         </tr>
2097 21 Mar 06 nicklas 451         </table>
2097 21 Mar 06 nicklas 452
2097 21 Mar 06 nicklas 453       </td>
2097 21 Mar 06 nicklas 454       </tr>
2097 21 Mar 06 nicklas 455       </table>
5939 30 Jan 12 nicklas 456       </div>
4338 17 Jun 08 nicklas 457       <jsp:include page="../../../common/datafiles/list_files.jsp">
4338 17 Jun 08 nicklas 458         <jsp:param name="item_type" value="<%=itemType.name()%>" />
4338 17 Jun 08 nicklas 459         <jsp:param name="item_id" value="<%=itemId%>" />
4338 17 Jun 08 nicklas 460         <jsp:param name="ID" value="<%=ID%>" />
4338 17 Jun 08 nicklas 461       </jsp:include>
4338 17 Jun 08 nicklas 462       
4942 20 May 09 nicklas 463       <jsp:include page="../../../common/anytoany/list_anytoany.jsp">
4942 20 May 09 nicklas 464         <jsp:param name="ID" value="<%=ID%>" />
4942 20 May 09 nicklas 465         <jsp:param name="item_type" value="<%=itemType.name()%>" />
4942 20 May 09 nicklas 466         <jsp:param name="item_id" value="<%=itemId%>" />
4942 20 May 09 nicklas 467         <jsp:param name="title" value="Other items related to this bioassay set" />
4942 20 May 09 nicklas 468       </jsp:include>
4942 20 May 09 nicklas 469       
5939 30 Jan 12 nicklas 470       <base:section id="anaysis" title="Analysis subtree" context="<%=cc%>">
5939 30 Jan 12 nicklas 471         <jsp:include page="analysis_tree.jsp">
5939 30 Jan 12 nicklas 472           <jsp:param name="ID" value="<%=ID%>" />
5939 30 Jan 12 nicklas 473           <jsp:param name="experiment_id" value="<%=experimentId%>" />
5939 30 Jan 12 nicklas 474           <jsp:param name="item_id" value="<%=itemId%>" />
5939 30 Jan 12 nicklas 475         </jsp:include>
5939 30 Jan 12 nicklas 476       </base:section>
2097 21 Mar 06 nicklas 477       </t:tab>
2097 21 Mar 06 nicklas 478       
2892 10 Nov 06 nicklas 479       <t:tab id="annotations" title="Annotations" 
6315 06 Sep 13 nicklas 480         tooltip="View annotation values" clazz="white">
6255 22 Mar 13 nicklas 481         <jsp:include page="../../../common/annotations/list_frameset.jsp">
2892 10 Nov 06 nicklas 482           <jsp:param name="item_type" value="<%=itemType.name()%>" />
2892 10 Nov 06 nicklas 483           <jsp:param name="item_id" value="<%=itemId%>" />
2892 10 Nov 06 nicklas 484           <jsp:param name="ID" value="<%=ID%>" />
2892 10 Nov 06 nicklas 485         </jsp:include>
2892 10 Nov 06 nicklas 486       </t:tab>
2892 10 Nov 06 nicklas 487       
2099 21 Mar 06 nicklas 488       <t:tab id="bioassays" title="Bioassays" />
2097 21 Mar 06 nicklas 489       
6315 06 Sep 13 nicklas 490       <t:tab id="spotdata" title="Spot data" visible="<%=hasDbSpots%>">
6612 21 Nov 14 nicklas 491         <div class="bg-filled-50 absolutefull">
6315 06 Sep 13 nicklas 492           <table style="margin: auto; height: 100%;"><tr><td>
6315 06 Sep 13 nicklas 493           <b>Please wait. The spot data is loading...</b>
6315 06 Sep 13 nicklas 494           </td></tr></table>
6315 06 Sep 13 nicklas 495         </div>
6315 06 Sep 13 nicklas 496       </t:tab>
2678 28 Sep 06 nicklas 497       
2097 21 Mar 06 nicklas 498       <t:tab id="overviewplots" title="Overview plots" 
4908 28 Apr 09 nicklas 499         tooltip="Predefined plots for all bioassays in this bioassay set"
6021 19 Mar 12 nicklas 500         visible="<%=overviewPlotInvoker.getNumExtensions() > 0%>" clazz="white">
4095 21 Jan 08 enell 501         <%
4908 28 Apr 09 nicklas 502         if ("overviewplots".equals(tabId))
2097 21 Mar 06 nicklas 503         {
4908 28 Apr 09 nicklas 504           ActionIterator<OverviewPlotAction> plots = overviewPlotInvoker.iterate();
2097 21 Mar 06 nicklas 505           %>
6315 06 Sep 13 nicklas 506           <t:tabcontrol id="overviewplots" style="padding-top: 1em; border: 0px;">
4908 28 Apr 09 nicklas 507           <% 
4908 28 Apr 09 nicklas 508           while (plots.hasNext())
4908 28 Apr 09 nicklas 509           {
4908 28 Apr 09 nicklas 510             OverviewPlotAction action = plots.next();
4908 28 Apr 09 nicklas 511             String baseId = plots.getExtension().getId() + "." + action.getId();
4908 28 Apr 09 nicklas 512             %>
4908 28 Apr 09 nicklas 513             <t:tab 
4908 28 Apr 09 nicklas 514               tooltip="<%=action.getDescription() %>"
4908 28 Apr 09 nicklas 515               title="<%=action.getTitle()%>"
4908 28 Apr 09 nicklas 516               id="<%=baseId%>"
6021 19 Mar 12 nicklas 517               clazz="white"
4908 28 Apr 09 nicklas 518               >
4908 28 Apr 09 nicklas 519               <%
4908 28 Apr 09 nicklas 520               for (PlotGenerator generator : action.getPlotGenerators())
4908 28 Apr 09 nicklas 521               {
4908 28 Apr 09 nicklas 522                 String plotId = generator.getId();
6315 06 Sep 13 nicklas 523                 %><img 
6315 06 Sep 13 nicklas 524                   id="<%=baseId + "." + plotId%>"
6315 06 Sep 13 nicklas 525                   class="plot empty"
6315 06 Sep 13 nicklas 526                   data-plot-group="<%=baseId%>"
6315 06 Sep 13 nicklas 527                   data-plot-url="<%=HTML.encodeTags(generator.getUrl()) %>"
4908 28 Apr 09 nicklas 528                   src="../../../images/transparent_pixel.gif"
4908 28 Apr 09 nicklas 529                   width="<%=generator.getWidth()%>"
4908 28 Apr 09 nicklas 530                   height="<%=generator.getHeight()%>"
4908 28 Apr 09 nicklas 531                   alt="<%=HTML.encodeTags(generator.getTitle())%>"
4908 28 Apr 09 nicklas 532                 >&#8203;&#8203;<%
4908 28 Apr 09 nicklas 533               }
4908 28 Apr 09 nicklas 534               %>
4908 28 Apr 09 nicklas 535             </t:tab>
4908 28 Apr 09 nicklas 536             <%
4908 28 Apr 09 nicklas 537           }
4908 28 Apr 09 nicklas 538           %>
4908 28 Apr 09 nicklas 539           </t:tabcontrol>
2097 21 Mar 06 nicklas 540           <%
2097 21 Mar 06 nicklas 541         }
4095 21 Jan 08 enell 542         %>
2097 21 Mar 06 nicklas 543       </t:tab>
2305 22 May 06 jari 544       </t:tabcontrol>
2305 22 May 06 jari 545
2305 22 May 06 jari 546   </base:body>
2305 22 May 06 jari 547   </base:page>
2305 22 May 06 jari 548   <%
2305 22 May 06 jari 549 }
2305 22 May 06 jari 550 finally
2305 22 May 06 jari 551 {
2305 22 May 06 jari 552   if (dc != null) dc.close();
2305 22 May 06 jari 553 }
2305 22 May 06 jari 554
2305 22 May 06 jari 555 %>