www/views/rawbioassays/rawdata/view_rawdata.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 Johan Enell, Jari Häkkinen, Nicklas Nordborg
3675 16 Aug 07 jari 4   Copyright (C) 2007 Nicklas Nordborg
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"
1765 13 Jan 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1765 13 Jan 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1765 13 Jan 06 nicklas 29   import="net.sf.basedb.core.SystemItems"
1765 13 Jan 06 nicklas 30   import="net.sf.basedb.core.Item"
1765 13 Jan 06 nicklas 31   import="net.sf.basedb.core.ItemContext"
1765 13 Jan 06 nicklas 32   import="net.sf.basedb.core.Permission"
1765 13 Jan 06 nicklas 33   import="net.sf.basedb.core.ExtendedProperties"
1765 13 Jan 06 nicklas 34   import="net.sf.basedb.core.ExtendedProperty"
1943 08 Feb 06 nicklas 35   import="net.sf.basedb.core.RawDataProperty"
1765 13 Jan 06 nicklas 36   import="net.sf.basedb.core.RawBioAssay"
1933 07 Feb 06 nicklas 37   import="net.sf.basedb.core.RawDataType"
1943 08 Feb 06 nicklas 38   import="net.sf.basedb.core.ReporterType"
1943 08 Feb 06 nicklas 39   import="net.sf.basedb.core.Reporter"
1943 08 Feb 06 nicklas 40   import="net.sf.basedb.core.Feature"
1943 08 Feb 06 nicklas 41   import="net.sf.basedb.core.Well"
1943 08 Feb 06 nicklas 42   import="net.sf.basedb.core.Plate"
1943 08 Feb 06 nicklas 43   import="net.sf.basedb.core.ArrayDesignBlock"
1765 13 Jan 06 nicklas 44   import="net.sf.basedb.core.PermissionDeniedException"
1765 13 Jan 06 nicklas 45   import="net.sf.basedb.core.PluginDefinition"
1765 13 Jan 06 nicklas 46   import="net.sf.basedb.core.data.RawData"
1943 08 Feb 06 nicklas 47   import="net.sf.basedb.core.data.ReporterData"
2314 23 May 06 nicklas 48   import="net.sf.basedb.core.data.FeatureData"
1765 13 Jan 06 nicklas 49   import="net.sf.basedb.core.plugin.GuiContext"
1765 13 Jan 06 nicklas 50   import="net.sf.basedb.core.plugin.Plugin"
1765 13 Jan 06 nicklas 51   import="net.sf.basedb.clients.web.Base"
1765 13 Jan 06 nicklas 52   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 53   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 54   import="net.sf.basedb.util.formatter.Formatter"
4860 27 Mar 09 martin 55   import="net.sf.basedb.util.formatter.WellCoordinateFormatter"
2942 22 Nov 06 nicklas 56   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
1765 13 Jan 06 nicklas 57   import="java.util.Date"
1765 13 Jan 06 nicklas 58   import="java.util.Map"
1765 13 Jan 06 nicklas 59   import="java.util.Set"
2747 19 Oct 06 enell 60   import="java.util.List"
1765 13 Jan 06 nicklas 61 %>
1765 13 Jan 06 nicklas 62 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1765 13 Jan 06 nicklas 63 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
1765 13 Jan 06 nicklas 64 <%!
1765 13 Jan 06 nicklas 65   private static final Item itemType = Item.RAWDATA;
1765 13 Jan 06 nicklas 66   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
1765 13 Jan 06 nicklas 67 %>
1765 13 Jan 06 nicklas 68 <%
1765 13 Jan 06 nicklas 69 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1765 13 Jan 06 nicklas 70 final String ID = sc.getId();
1765 13 Jan 06 nicklas 71 final int rawBioAssayId = Values.getInt(request.getParameter("rawbioassay_id"));
1765 13 Jan 06 nicklas 72 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 73 final DbControl dc = sc.newDbControl(":View "+itemType);
1765 13 Jan 06 nicklas 74 try
1765 13 Jan 06 nicklas 75 {
7014 12 Nov 15 nicklas 76   final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
1933 07 Feb 06 nicklas 77   final RawBioAssay rawBioAssay = RawBioAssay.getById(dc, rawBioAssayId);
1933 07 Feb 06 nicklas 78   final RawDataType rawDataType = rawBioAssay.getRawDataType();
1933 07 Feb 06 nicklas 79   final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, rawDataType.getId(), null, null);
1933 07 Feb 06 nicklas 80   final int itemId = cc.getId();
1933 07 Feb 06 nicklas 81   
1765 13 Jan 06 nicklas 82   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
1765 13 Jan 06 nicklas 83
5319 20 Apr 10 nicklas 84   final RawData rawData = rawBioAssay.getRawDataById(itemId, true);
1943 08 Feb 06 nicklas 85   String title = "Raw data of "+HTML.encodeTags(rawBioAssay.getName()) + " at position " + rawData.getPosition();
1943 08 Feb 06 nicklas 86   
7014 12 Nov 15 nicklas 87   final ReporterData reporter = readReporter ? rawData.getReporter() : null;
2314 23 May 06 nicklas 88   final FeatureData feature = rawData.getFeature();
3453 05 Jun 07 nicklas 89   Formatter<Date> dateFormatter = FormatterFactory.getDateTimeFormatter(sc);
4860 27 Mar 09 martin 90   WellCoordinateFormatter rowFormatter = new WellCoordinateFormatter(true);
4860 27 Mar 09 martin 91   WellCoordinateFormatter columnFormatter = new WellCoordinateFormatter(false);
1765 13 Jan 06 nicklas 92   %>
6311 23 Aug 13 nicklas 93   <base:page title="<%=title%>" type="popup" id="view-page">
6311 23 Aug 13 nicklas 94   <base:head scripts="tabcontrol-2.js,~rawdata.js" styles="tabcontrol.css" />
6520 18 Aug 14 nicklas 95   <base:body data-read-only="1">
6143 20 Sep 12 nicklas 96     <h1><%=title%></h1>
1943 08 Feb 06 nicklas 97   
5915 16 Dec 11 nicklas 98     <t:tabcontrol id="rawdata" 
5915 16 Dec 11 nicklas 99       subclass="content dialogtabcontrol"
5915 16 Dec 11 nicklas 100       position="bottom">
1943 08 Feb 06 nicklas 101     <t:tab id="raw" title="Raw data">
1943 08 Feb 06 nicklas 102     
5915 16 Dec 11 nicklas 103       <table class="fullform outlined larger">
5924 13 Jan 12 nicklas 104       <tbody class="sectionheader">
1943 08 Feb 06 nicklas 105         <tr>
5915 16 Dec 11 nicklas 106           <th colspan="4">Common rawdata properties</th>
1943 08 Feb 06 nicklas 107         </tr>
5915 16 Dec 11 nicklas 108       </tbody>
5915 16 Dec 11 nicklas 109       <tbody>
5915 16 Dec 11 nicklas 110       <tr>
5915 16 Dec 11 nicklas 111         <th>Position</th>
5915 16 Dec 11 nicklas 112         <td><%=rawData.getPosition()%></td>
5915 16 Dec 11 nicklas 113         <th class="leftborder">Block</th>
5915 16 Dec 11 nicklas 114         <td><%=rawData.getBlock()%></td>
5915 16 Dec 11 nicklas 115       </tr>
5915 16 Dec 11 nicklas 116       <tr>
5915 16 Dec 11 nicklas 117         <th>Row</th>
5915 16 Dec 11 nicklas 118         <td><%=rawData.getRow()%></td>
5915 16 Dec 11 nicklas 119         <th class="leftborder">Column</th>
5915 16 Dec 11 nicklas 120         <td><%=rawData.getColumn()%></td>
5915 16 Dec 11 nicklas 121       </tr>
5915 16 Dec 11 nicklas 122       <tr>
5915 16 Dec 11 nicklas 123         <th>Meta grid X</th>
5915 16 Dec 11 nicklas 124         <td><%=rawData.getMetaGridX()%></td>
5915 16 Dec 11 nicklas 125         <th class="leftborder">Meta grid Y</th>
5915 16 Dec 11 nicklas 126         <td><%=rawData.getMetaGridY()%></td>
5915 16 Dec 11 nicklas 127       </tr>
5915 16 Dec 11 nicklas 128       <tr>
5915 16 Dec 11 nicklas 129         <th>X</th>
5915 16 Dec 11 nicklas 130         <td><%=rawData.getX()%></td>
5915 16 Dec 11 nicklas 131         <th class="leftborder">Y</th>
5915 16 Dec 11 nicklas 132         <td><%=rawData.getY()%></td>
5915 16 Dec 11 nicklas 133       </tr>
5915 16 Dec 11 nicklas 134       <tr>
5915 16 Dec 11 nicklas 135         <th>Reporter</th>
5915 16 Dec 11 nicklas 136         <td><%=reporter == null ? "<i>- none -</i>" : HTML.encodeTags(reporter.getName())%></td>
5915 16 Dec 11 nicklas 137         <th class="leftborder">Feature</th>
5915 16 Dec 11 nicklas 138         <td><%=feature == null ? "<i>- none -</i>" : feature.getId()%></td>
5915 16 Dec 11 nicklas 139       </tr>
5915 16 Dec 11 nicklas 140       </tbody>
5915 16 Dec 11 nicklas 141       
5924 13 Jan 12 nicklas 142       <tbody class="sectionheader">
5915 16 Dec 11 nicklas 143         <tr>
5915 16 Dec 11 nicklas 144           <th colspan="4"><%=rawDataType.getName()%> properties</th>
1943 08 Feb 06 nicklas 145         </tr>
5915 16 Dec 11 nicklas 146       </tbody>
5915 16 Dec 11 nicklas 147       
5915 16 Dec 11 nicklas 148       <tbody>
1943 08 Feb 06 nicklas 149           <%
1943 08 Feb 06 nicklas 150           boolean needsTr = true;
1943 08 Feb 06 nicklas 151           for (RawDataProperty rawProperty : rawDataType.getProperties())
1943 08 Feb 06 nicklas 152           {
1943 08 Feb 06 nicklas 153             String name = rawProperty.getName();
7605 26 Feb 19 nicklas 154             Formatter<Object> f = FormatterFactory.getExtendedPropertyFormatter(sc, rawProperty);
2942 22 Nov 06 nicklas 155             String value = f.format(rawData.getExtended(name));
1943 08 Feb 06 nicklas 156             title = Values.trimString(rawProperty.getTitle(), 25);
1943 08 Feb 06 nicklas 157             %>
6143 20 Sep 12 nicklas 158               <%=needsTr ? "<tr><th>" : "<th class=\"leftborder\">" %>
5915 16 Dec 11 nicklas 159               <span 
1943 08 Feb 06 nicklas 160                 title="<%=HTML.encodeTags(rawProperty.getDescription())%>"><%=HTML.encodeTags(title)%></span>
5915 16 Dec 11 nicklas 161               </th>
2942 22 Nov 06 nicklas 162               <td><%=value%></td>
1943 08 Feb 06 nicklas 163               <%=needsTr ? "" : "</tr>"%>
1943 08 Feb 06 nicklas 164             <%
1943 08 Feb 06 nicklas 165             needsTr = !needsTr;
1943 08 Feb 06 nicklas 166           }
1943 08 Feb 06 nicklas 167           %>
5915 16 Dec 11 nicklas 168           <%=needsTr ? "" : "<th class=\"leftborder\"></th><td></td></tr>"%>
5915 16 Dec 11 nicklas 169         <tr class="dynamic">
5915 16 Dec 11 nicklas 170           <th></th>
5915 16 Dec 11 nicklas 171           <td></td>
5915 16 Dec 11 nicklas 172           <th class="leftborder"></th>
5915 16 Dec 11 nicklas 173           <td></td>
5915 16 Dec 11 nicklas 174         </tr>
5915 16 Dec 11 nicklas 175       </tbody>      
1765 13 Jan 06 nicklas 176       </table>
5915 16 Dec 11 nicklas 177     
1943 08 Feb 06 nicklas 178     </t:tab>
7014 12 Nov 15 nicklas 179     <t:tab id="reporter" title="Reporter" >
7014 12 Nov 15 nicklas 180       <%
7014 12 Nov 15 nicklas 181       if (reporter == null)
1943 08 Feb 06 nicklas 182       {
7014 12 Nov 15 nicklas 183         %>
7014 12 Nov 15 nicklas 184         <table class="fullcc bg-filled-50"><tr><td>
7014 12 Nov 15 nicklas 185         <b><%=readReporter ? "No reporter" : "Denied" %></b>
7014 12 Nov 15 nicklas 186         </td></tr></table>
7014 12 Nov 15 nicklas 187         <%
1943 08 Feb 06 nicklas 188       }
7014 12 Nov 15 nicklas 189       else
1943 08 Feb 06 nicklas 190       {
7014 12 Nov 15 nicklas 191         boolean readCurrentReporterType = true;
7014 12 Nov 15 nicklas 192         ReporterType currentReporterType = null;
7014 12 Nov 15 nicklas 193         try
7014 12 Nov 15 nicklas 194         {
7014 12 Nov 15 nicklas 195           currentReporterType = Reporter.getReporterType(dc, reporter);
7014 12 Nov 15 nicklas 196         }
7014 12 Nov 15 nicklas 197         catch (PermissionDeniedException ex)
7014 12 Nov 15 nicklas 198         {
7014 12 Nov 15 nicklas 199           readCurrentReporterType = false;
7014 12 Nov 15 nicklas 200         }
7014 12 Nov 15 nicklas 201         %>
5915 16 Dec 11 nicklas 202         <table class="fullform outlined">
5924 13 Jan 12 nicklas 203         <tbody class="sectionheader">
1943 08 Feb 06 nicklas 204           <tr>
5915 16 Dec 11 nicklas 205             <th colspan="4">Common reporter properties</th>
1943 08 Feb 06 nicklas 206           </tr>
5915 16 Dec 11 nicklas 207         </tbody>
5915 16 Dec 11 nicklas 208         <tbody>
5915 16 Dec 11 nicklas 209         
5915 16 Dec 11 nicklas 210         <tr>
5915 16 Dec 11 nicklas 211           <th>Name</th>
5915 16 Dec 11 nicklas 212           <td><%=HTML.encodeTags(reporter.getName())%></td>
5915 16 Dec 11 nicklas 213           <th class="leftborder">External ID</th>
5915 16 Dec 11 nicklas 214           <td><%=HTML.encodeTags(reporter.getExternalId())%></td>
5915 16 Dec 11 nicklas 215         </tr>
5915 16 Dec 11 nicklas 216         <tr>
6143 20 Sep 12 nicklas 217           <th>Gene symbol</th>
5915 16 Dec 11 nicklas 218           <td><%=HTML.encodeTags(reporter.getSymbol())%></td>
5915 16 Dec 11 nicklas 219           <th class="leftborder">Type</th>
5915 16 Dec 11 nicklas 220           <td><%=Base.getEncodedName(currentReporterType, !readCurrentReporterType)%></td>
5915 16 Dec 11 nicklas 221         </tr>
5915 16 Dec 11 nicklas 222         <tr>
5915 16 Dec 11 nicklas 223           <th>Last update</th>
5915 16 Dec 11 nicklas 224           <td><%=dateFormatter.format(reporter.getLastUpdate())%></td>
5915 16 Dec 11 nicklas 225           <th class="leftborder">from/by</th>
5915 16 Dec 11 nicklas 226           <td><%=reporter.getLastSource() %></td>
5915 16 Dec 11 nicklas 227         </tr>
5915 16 Dec 11 nicklas 228         <tr>
5915 16 Dec 11 nicklas 229           <th>Description</th>
5915 16 Dec 11 nicklas 230           <td colspan="3"><%=HTML.niceFormat(reporter.getDescription())%></td>
5915 16 Dec 11 nicklas 231         </tr>
5915 16 Dec 11 nicklas 232         </tbody>
5915 16 Dec 11 nicklas 233         
5924 13 Jan 12 nicklas 234         <tbody class="sectionheader">
1943 08 Feb 06 nicklas 235           <tr>
5915 16 Dec 11 nicklas 236             <th colspan="4">Extended reporter properties</th>
1943 08 Feb 06 nicklas 237           </tr>
5915 16 Dec 11 nicklas 238         </tbody>
5915 16 Dec 11 nicklas 239         <tbody>
1943 08 Feb 06 nicklas 240             <%
2747 19 Oct 06 enell 241             List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData");
2747 19 Oct 06 enell 242             if (reporterProperties != null)
1943 08 Feb 06 nicklas 243             {
2747 19 Oct 06 enell 244               boolean needsTr = true;
2747 19 Oct 06 enell 245               for (ExtendedProperty ep : reporterProperties)
2747 19 Oct 06 enell 246               {
2747 19 Oct 06 enell 247                 String name = ep.getName();
7605 26 Feb 19 nicklas 248                 Formatter<Object> f = FormatterFactory.getExtendedPropertyFormatter(sc, ep);
2942 22 Nov 06 nicklas 249                 String value = f.format(reporter.getExtended(name));
2747 19 Oct 06 enell 250                 %>
5915 16 Dec 11 nicklas 251                   <%=needsTr ? "<tr><th>" : "<th class=\"leftborder\">" %>
5939 30 Jan 12 nicklas 252                   <%=HTML.encodeTags(ep.getTitle())%></th>
2942 22 Nov 06 nicklas 253                   <td><%=value%></td>
2747 19 Oct 06 enell 254                   <%=needsTr ? "" : "</tr>"%>
2747 19 Oct 06 enell 255                 <%
2747 19 Oct 06 enell 256                 needsTr = !needsTr;
2747 19 Oct 06 enell 257               }
1943 08 Feb 06 nicklas 258               %>
5915 16 Dec 11 nicklas 259               <%=needsTr ? "" : "<th class=\"leftborder\"></th><td></td></tr>"%>
1943 08 Feb 06 nicklas 260               <%
1943 08 Feb 06 nicklas 261             }
1943 08 Feb 06 nicklas 262             %>
5915 16 Dec 11 nicklas 263           <tr class="dynamic">
5915 16 Dec 11 nicklas 264             <th></th>
5915 16 Dec 11 nicklas 265             <td></td>
5915 16 Dec 11 nicklas 266             <th class="leftborder"></th>
5915 16 Dec 11 nicklas 267             <td></td>
5915 16 Dec 11 nicklas 268           </tr>
5915 16 Dec 11 nicklas 269         </tbody>
1943 08 Feb 06 nicklas 270         </table>
7014 12 Nov 15 nicklas 271         <%
7014 12 Nov 15 nicklas 272       }
7014 12 Nov 15 nicklas 273       %>
7014 12 Nov 15 nicklas 274     </t:tab>
1943 08 Feb 06 nicklas 275     <%
1943 08 Feb 06 nicklas 276     if (feature != null)
1943 08 Feb 06 nicklas 277     {
1943 08 Feb 06 nicklas 278       ArrayDesignBlock block = null;
1943 08 Feb 06 nicklas 279       boolean readBlock = true;
1943 08 Feb 06 nicklas 280       try
1943 08 Feb 06 nicklas 281       {
1943 08 Feb 06 nicklas 282         block = Feature.getArrayDesignBlock(dc, feature);
1943 08 Feb 06 nicklas 283       }
1943 08 Feb 06 nicklas 284       catch (PermissionDeniedException ex)
1943 08 Feb 06 nicklas 285       {
1943 08 Feb 06 nicklas 286         readBlock = false;
1943 08 Feb 06 nicklas 287       }
1943 08 Feb 06 nicklas 288       
1943 08 Feb 06 nicklas 289       Well well = null;
1943 08 Feb 06 nicklas 290       boolean readWell = true;
1943 08 Feb 06 nicklas 291       try
1943 08 Feb 06 nicklas 292       {
1943 08 Feb 06 nicklas 293         well = Feature.getWell(dc, feature);
1943 08 Feb 06 nicklas 294       }
1943 08 Feb 06 nicklas 295       catch (PermissionDeniedException ex)
1943 08 Feb 06 nicklas 296       {
1943 08 Feb 06 nicklas 297         readWell = false;
1943 08 Feb 06 nicklas 298       }
1943 08 Feb 06 nicklas 299       %>
1943 08 Feb 06 nicklas 300       <t:tab id="feature" title="Feature / well" >
5915 16 Dec 11 nicklas 301       <table class="fullform outlined">
5924 13 Jan 12 nicklas 302         <tbody class="sectionheader">
5915 16 Dec 11 nicklas 303           <tr>
5915 16 Dec 11 nicklas 304             <th colspan="6">Feature</th>
5915 16 Dec 11 nicklas 305           </tr>
5915 16 Dec 11 nicklas 306         </tbody>
5915 16 Dec 11 nicklas 307         <tbody>
5915 16 Dec 11 nicklas 308           <tr>
6143 20 Sep 12 nicklas 309             <th>Position</th>
5915 16 Dec 11 nicklas 310             <td><%=feature.getPosition()%></td>
6143 20 Sep 12 nicklas 311             <th class="leftborder">Meta grid X</th>
5915 16 Dec 11 nicklas 312             <td><%=readBlock ? Integer.toString(block.getMetaGridX()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 313             <th class="leftborder">Meta grid Y</th>
5915 16 Dec 11 nicklas 314             <td><%=readBlock ? Integer.toString(block.getMetaGridY()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 315           </tr>
5915 16 Dec 11 nicklas 316           <tr>
5915 16 Dec 11 nicklas 317             <th>Feature ID</th>
5915 16 Dec 11 nicklas 318             <td><%=feature.getExternalId() %></td>
5915 16 Dec 11 nicklas 319             <th class="leftborder">Block size X</th>
5915 16 Dec 11 nicklas 320             <td><%=readBlock ? Integer.toString(block.getBlockSizeX()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 321             <th class="leftborder">Block size Y</th>
5915 16 Dec 11 nicklas 322             <td><%=readBlock ? Integer.toString(block.getBlockSizeY()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 323           </tr>
5915 16 Dec 11 nicklas 324           <tr>
5915 16 Dec 11 nicklas 325             <th>Block number</th>
5915 16 Dec 11 nicklas 326             <td><%=block.getBlockNumber()%></td>
5915 16 Dec 11 nicklas 327             <th class="leftborder">Origin X</th>
5915 16 Dec 11 nicklas 328             <td><%=readBlock ? Integer.toString(block.getOriginX()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 329             <th class="leftborder">Origin Y</th>
5915 16 Dec 11 nicklas 330             <td><%=readBlock ? Integer.toString(block.getOriginY()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 331           </tr>
5915 16 Dec 11 nicklas 332           <tr>
5915 16 Dec 11 nicklas 333             <th>Row</th>
5915 16 Dec 11 nicklas 334             <td><%=feature.getRow()%></td>
5915 16 Dec 11 nicklas 335             <th class="leftborder">Spacing X</th>
5915 16 Dec 11 nicklas 336             <td><%=readBlock ? Integer.toString(block.getSpacingX()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 337             <th class="leftborder">Spacing Y</th>
5915 16 Dec 11 nicklas 338             <td><%=readBlock ? Integer.toString(block.getSpacingY()) : "<i>- denied -</i>"%></td>
5915 16 Dec 11 nicklas 339           </tr>
5915 16 Dec 11 nicklas 340           <tr>
5915 16 Dec 11 nicklas 341             <th>Column</th>
5915 16 Dec 11 nicklas 342             <td><%=feature.getColumn()%></td>
5915 16 Dec 11 nicklas 343             <th class="leftborder"></th>
5915 16 Dec 11 nicklas 344             <td></td>
5915 16 Dec 11 nicklas 345             <th class="leftborder"></th>
5915 16 Dec 11 nicklas 346             <td></td>
5915 16 Dec 11 nicklas 347           </tr>
5915 16 Dec 11 nicklas 348         </tbody>
5915 16 Dec 11 nicklas 349         
5924 13 Jan 12 nicklas 350         <tbody class="sectionheader">
5915 16 Dec 11 nicklas 351           <tr>
5915 16 Dec 11 nicklas 352             <th colspan="6">Plate position</th>
5915 16 Dec 11 nicklas 353           </tr>
5915 16 Dec 11 nicklas 354         </tbody>
5915 16 Dec 11 nicklas 355         
5915 16 Dec 11 nicklas 356         <tbody>
5915 16 Dec 11 nicklas 357           <%
5915 16 Dec 11 nicklas 358           if (!readWell)
5915 16 Dec 11 nicklas 359           {
5915 16 Dec 11 nicklas 360             %>
5915 16 Dec 11 nicklas 361             <tr>
5915 16 Dec 11 nicklas 362               <th>Plate</th>
5915 16 Dec 11 nicklas 363               <td colspan="5"><i>- denied -</i></td>
5915 16 Dec 11 nicklas 364             </tr>
5915 16 Dec 11 nicklas 365             <%
5915 16 Dec 11 nicklas 366           }
5915 16 Dec 11 nicklas 367           else if (well == null)
5915 16 Dec 11 nicklas 368           {
5915 16 Dec 11 nicklas 369             %>
5915 16 Dec 11 nicklas 370             <tr>
5915 16 Dec 11 nicklas 371               <th>Plate</th>
5915 16 Dec 11 nicklas 372               <td colspan="5"><i>- none -</i></td>
5915 16 Dec 11 nicklas 373             </tr>
5915 16 Dec 11 nicklas 374             <%
5915 16 Dec 11 nicklas 375           }
5915 16 Dec 11 nicklas 376           else
5915 16 Dec 11 nicklas 377           {
5915 16 Dec 11 nicklas 378             Plate plate = well.getPlate();
5915 16 Dec 11 nicklas 379             %>
5915 16 Dec 11 nicklas 380             <tr>
5915 16 Dec 11 nicklas 381               <th>Plate</th>
5915 16 Dec 11 nicklas 382               <td colspan="5"><%=HTML.encodeTags(plate.getName())%></td>
5915 16 Dec 11 nicklas 383             </tr>
5915 16 Dec 11 nicklas 384             <tr>
5915 16 Dec 11 nicklas 385               <th>Well</th>
5915 16 Dec 11 nicklas 386               <td colspan="5"><%=rowFormatter.format(well.getRow())%><%=columnFormatter.format(well.getColumn())%></td>
5915 16 Dec 11 nicklas 387             </tr>
5915 16 Dec 11 nicklas 388             <%
5915 16 Dec 11 nicklas 389           }
5915 16 Dec 11 nicklas 390           %>
5915 16 Dec 11 nicklas 391           <tr class="dynamic">
5915 16 Dec 11 nicklas 392             <th></th>
5915 16 Dec 11 nicklas 393             <td colspan="5"></td>
5915 16 Dec 11 nicklas 394           </tr>
5915 16 Dec 11 nicklas 395         </tbody>
1765 13 Jan 06 nicklas 396       </table>
1943 08 Feb 06 nicklas 397       </t:tab>
1943 08 Feb 06 nicklas 398       <%
1943 08 Feb 06 nicklas 399     }
1943 08 Feb 06 nicklas 400     %>
1943 08 Feb 06 nicklas 401     </t:tabcontrol>
1765 13 Jan 06 nicklas 402
5915 16 Dec 11 nicklas 403     <base:buttongroup subclass="dialogbuttons">
6311 23 Aug 13 nicklas 404       <base:button id="close" title="Close" />
5915 16 Dec 11 nicklas 405     </base:buttongroup>
1765 13 Jan 06 nicklas 406     
1765 13 Jan 06 nicklas 407   </base:body>
1765 13 Jan 06 nicklas 408   </base:page>
1765 13 Jan 06 nicklas 409   <%
1765 13 Jan 06 nicklas 410 }
1765 13 Jan 06 nicklas 411 finally
1765 13 Jan 06 nicklas 412 {
1765 13 Jan 06 nicklas 413   if (dc != null) dc.close();
1765 13 Jan 06 nicklas 414 }
1765 13 Jan 06 nicklas 415
1765 13 Jan 06 nicklas 416 %>