www/lims/arraydesigns/features/list_features.jsp

Code
Comments
Other
Rev Date Author Line
1820 24 Jan 06 nicklas 1 <%-- $Id$
1820 24 Jan 06 nicklas 2   ------------------------------------------------------------------
5425 23 Sep 10 nicklas 3   Copyright (C) 2006 Johan Enell, Jari Häkkinen, Nicklas Nordborg, Martin Svensson
3675 16 Aug 07 jari 4   Copyright (C) 2007 Johan Enell, Nicklas Nordborg
1820 24 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/
1820 24 Jan 06 nicklas 8
1820 24 Jan 06 nicklas 9   BASE is free software; you can redistribute it and/or
1820 24 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
1820 24 Jan 06 nicklas 12   of the License, or (at your option) any later version.
1820 24 Jan 06 nicklas 13
1820 24 Jan 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1820 24 Jan 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1820 24 Jan 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1820 24 Jan 06 nicklas 17   GNU General Public License for more details.
1820 24 Jan 06 nicklas 18
1820 24 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/>.
1820 24 Jan 06 nicklas 21   ------------------------------------------------------------------
1820 24 Jan 06 nicklas 22
1820 24 Jan 06 nicklas 23   @author Nicklas
1820 24 Jan 06 nicklas 24   @version 2.0
1820 24 Jan 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1820 24 Jan 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1820 24 Jan 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1820 24 Jan 06 nicklas 29   import="net.sf.basedb.core.Item"
1820 24 Jan 06 nicklas 30   import="net.sf.basedb.core.ItemContext"
1820 24 Jan 06 nicklas 31   import="net.sf.basedb.core.data.FeatureData"
1820 24 Jan 06 nicklas 32   import="net.sf.basedb.core.data.ReporterData"
1820 24 Jan 06 nicklas 33   import="net.sf.basedb.core.ArrayDesign"
1820 24 Jan 06 nicklas 34   import="net.sf.basedb.core.ArrayDesignBlock"
1820 24 Jan 06 nicklas 35   import="net.sf.basedb.core.Feature"
4093 18 Jan 08 enell 36   import="net.sf.basedb.core.FeatureIdentificationMethod"
1941 08 Feb 06 nicklas 37   import="net.sf.basedb.core.ReporterType"
1941 08 Feb 06 nicklas 38   import="net.sf.basedb.core.Reporter"
1941 08 Feb 06 nicklas 39   import="net.sf.basedb.core.Well"
1820 24 Jan 06 nicklas 40   import="net.sf.basedb.core.ItemQuery"
4866 31 Mar 09 martin 41   import="net.sf.basedb.core.ItemResultIterator"
1820 24 Jan 06 nicklas 42   import="net.sf.basedb.core.DataQuery"
1820 24 Jan 06 nicklas 43   import="net.sf.basedb.core.DataResultIterator"
1941 08 Feb 06 nicklas 44   import="net.sf.basedb.core.ItemResultList"
1820 24 Jan 06 nicklas 45   import="net.sf.basedb.core.Permission"
1820 24 Jan 06 nicklas 46   import="net.sf.basedb.core.PluginDefinition"
1820 24 Jan 06 nicklas 47   import="net.sf.basedb.core.PermissionDeniedException"
4866 31 Mar 09 martin 48   import="net.sf.basedb.core.PlateGeometry"
1941 08 Feb 06 nicklas 49   import="net.sf.basedb.core.ExtendedProperty"
1941 08 Feb 06 nicklas 50   import="net.sf.basedb.core.ExtendedProperties"
4866 31 Mar 09 martin 51   import="net.sf.basedb.core.query.Aggregations"  
1820 24 Jan 06 nicklas 52   import="net.sf.basedb.core.query.Restrictions"
1820 24 Jan 06 nicklas 53   import="net.sf.basedb.core.query.Expressions"
1820 24 Jan 06 nicklas 54   import="net.sf.basedb.core.query.Orders"
1820 24 Jan 06 nicklas 55   import="net.sf.basedb.core.query.Hql"
4866 31 Mar 09 martin 56   import="net.sf.basedb.core.query.Selects"
1820 24 Jan 06 nicklas 57   import="net.sf.basedb.core.plugin.GuiContext"
1820 24 Jan 06 nicklas 58   import="net.sf.basedb.core.plugin.Plugin"
1941 08 Feb 06 nicklas 59   import="net.sf.basedb.util.Enumeration"
1820 24 Jan 06 nicklas 60   import="net.sf.basedb.clients.web.Base"
1820 24 Jan 06 nicklas 61   import="net.sf.basedb.clients.web.ModeInfo"
5062 19 Aug 09 nicklas 62   import="net.sf.basedb.clients.web.ChangeHistoryUtil"
1820 24 Jan 06 nicklas 63   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 64   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 65   import="net.sf.basedb.util.formatter.Formatter"
4860 27 Mar 09 martin 66   import="net.sf.basedb.util.formatter.WellCoordinateFormatter"
2942 22 Nov 06 nicklas 67   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4884 03 Apr 09 nicklas 68   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4884 03 Apr 09 nicklas 69   import="net.sf.basedb.clients.web.extensions.JspContext"
4884 03 Apr 09 nicklas 70   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 71   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4884 03 Apr 09 nicklas 72   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 73   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6039 29 Mar 12 nicklas 74   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
4884 03 Apr 09 nicklas 75   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
1820 24 Jan 06 nicklas 76   import="java.util.List"
1820 24 Jan 06 nicklas 77   import="java.util.Map"
1941 08 Feb 06 nicklas 78   import="java.util.Date"
1820 24 Jan 06 nicklas 79 %>
1820 24 Jan 06 nicklas 80 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1820 24 Jan 06 nicklas 81 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
1861 30 Jan 06 nicklas 82 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
1861 30 Jan 06 nicklas 83 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4884 03 Apr 09 nicklas 84 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1820 24 Jan 06 nicklas 85 <%!
1820 24 Jan 06 nicklas 86   private static final Item itemType = Item.FEATURE;
1820 24 Jan 06 nicklas 87   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
1820 24 Jan 06 nicklas 88 %>
1820 24 Jan 06 nicklas 89 <%
1820 24 Jan 06 nicklas 90 final int arrayDesignId = Values.getInt(request.getParameter("arraydesign_id"));
1820 24 Jan 06 nicklas 91 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
1820 24 Jan 06 nicklas 92 final String ID = sc.getId();
1820 24 Jan 06 nicklas 93 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1820 24 Jan 06 nicklas 94
1820 24 Jan 06 nicklas 95 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
1820 24 Jan 06 nicklas 96 final String callback = request.getParameter("callback");
1820 24 Jan 06 nicklas 97 final String title = mode.generateTitle("feature", "features");
7954 12 May 21 nicklas 98 final DbControl dc = sc.newDbControl(":List "+itemType);
2314 23 May 06 nicklas 99 DataResultIterator<FeatureData> features = null;
1820 24 Jan 06 nicklas 100 try
1820 24 Jan 06 nicklas 101 {
7014 12 Nov 15 nicklas 102   final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
7014 12 Nov 15 nicklas 103
1820 24 Jan 06 nicklas 104   final ArrayDesign design = ArrayDesign.getById(dc, arrayDesignId);
4093 18 Jan 08 enell 105   final FeatureIdentificationMethod fiMethod = design.getFeatureIdentificationMethod();
4698 10 Dec 08 nicklas 106   Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
4698 10 Dec 08 nicklas 107   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
4866 31 Mar 09 martin 108   
4866 31 Mar 09 martin 109   WellCoordinateFormatter rowFormatter = new WellCoordinateFormatter(true);
4866 31 Mar 09 martin 110   WellCoordinateFormatter columnFormatter = new WellCoordinateFormatter(false);
4866 31 Mar 09 martin 111   
2314 23 May 06 nicklas 112   final DataQuery<FeatureData> query = design.getFeatures();
1820 24 Jan 06 nicklas 113
1820 24 Jan 06 nicklas 114   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
1941 08 Feb 06 nicklas 115   final ItemQuery<ReporterType> typeQuery = ReporterType.getQuery();
1941 08 Feb 06 nicklas 116   typeQuery.order(Orders.asc(Hql.property("name")));
1941 08 Feb 06 nicklas 117   typeQuery.setCacheResult(true);
1941 08 Feb 06 nicklas 118   
2747 19 Oct 06 enell 119   List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData");
2747 19 Oct 06 enell 120   
4866 31 Mar 09 martin 121   Enumeration<String, String> plateRows = new Enumeration<String, String>();
4866 31 Mar 09 martin 122   final ItemQuery<PlateGeometry> geometryQuery = PlateGeometry.getQuery();
4866 31 Mar 09 martin 123   geometryQuery.order(Orders.desc(Hql.property("rows")));
4866 31 Mar 09 martin 124   ItemResultIterator<PlateGeometry> result = geometryQuery.iterate(dc);
4866 31 Mar 09 martin 125   int maxRows = result.next().getRows();
6497 26 Jun 14 nicklas 126   for (int row = 0; row < maxRows && row < 256; row++)
4866 31 Mar 09 martin 127   {
4866 31 Mar 09 martin 128     plateRows.add(Integer.toString(row), rowFormatter.format(row));
4866 31 Mar 09 martin 129   }
4866 31 Mar 09 martin 130   
6497 26 Jun 14 nicklas 131   Enumeration<String, String> plateColumns = new Enumeration<String, String>();
6497 26 Jun 14 nicklas 132   final ItemQuery<PlateGeometry> columnsGeometryQuery = PlateGeometry.getQuery();
6497 26 Jun 14 nicklas 133   columnsGeometryQuery.order(Orders.desc(Hql.property("columns")));
6497 26 Jun 14 nicklas 134   ItemResultIterator<PlateGeometry> columnsResult = columnsGeometryQuery.iterate(dc);
6497 26 Jun 14 nicklas 135   int maxColumns = columnsResult.next().getColumns();
6497 26 Jun 14 nicklas 136   for (int column = 0; column < maxColumns && column < 256; column++)
6497 26 Jun 14 nicklas 137   {
6497 26 Jun 14 nicklas 138     plateColumns.add(Integer.toString(column), columnFormatter.format(column));
6497 26 Jun 14 nicklas 139   }
6497 26 Jun 14 nicklas 140   
7914 23 Feb 21 nicklas 141   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2029 20 Feb 06 nicklas 142   try
2029 20 Feb 06 nicklas 143   {
5026 28 Jul 09 nicklas 144     query.join(Hql.leftJoin(null, "reporter", "rpt", null, true));
7914 23 Feb 21 nicklas 145     cc.configureQuery(dc, query, jspContext, true);
4302 19 May 08 nicklas 146     if (!"row".equals(cc.getSortProperty())) query.order(Orders.asc(Hql.property("row")));
4302 19 May 08 nicklas 147     if (!"column".equals(cc.getSortProperty())) query.order(Orders.asc(Hql.property("column")));
2029 20 Feb 06 nicklas 148     features = query.iterate(dc);
2029 20 Feb 06 nicklas 149   }
2029 20 Feb 06 nicklas 150   catch (Throwable t)
2029 20 Feb 06 nicklas 151   {
2029 20 Feb 06 nicklas 152     cc.setMessage(t.getMessage());
5026 28 Jul 09 nicklas 153     t.printStackTrace();
2029 20 Feb 06 nicklas 154   }
1820 24 Jan 06 nicklas 155   int numListed = 0;
7604 25 Feb 19 nicklas 156   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 157   ExtensionsInvoker<ListColumnAction<FeatureData,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
1820 24 Jan 06 nicklas 158   %>
6307 15 Aug 13 nicklas 159   <base:page title="<%=title%>" id="list-page">
6307 15 Aug 13 nicklas 160   <base:head scripts="table.js,tabcontrol-2.js,~features.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
4884 03 Apr 09 nicklas 161     <ext:scripts context="<%=jspContext%>" />
4884 03 Apr 09 nicklas 162     <ext:stylesheets context="<%=jspContext%>" />
1820 24 Jan 06 nicklas 163   </base:head>
1820 24 Jan 06 nicklas 164   
1820 24 Jan 06 nicklas 165   <base:body>
5954 13 Feb 12 nicklas 166     <p:path><p:pathelement 
5954 13 Feb 12 nicklas 167       title="Array designs" href="<%="../index.jsp?ID="+ID%>" 
5954 13 Feb 12 nicklas 168       /><p:pathelement title="<%=HTML.encodeTags(design.getName())%>" 
5954 13 Feb 12 nicklas 169       /></p:path>
1861 30 Jan 06 nicklas 170
5954 13 Feb 12 nicklas 171     <t:tabcontrol 
5954 13 Feb 12 nicklas 172       id="main" 
5954 13 Feb 12 nicklas 173       subclass="content mastertabcontrol"
6307 15 Aug 13 nicklas 174       active="images">
1861 30 Jan 06 nicklas 175     <t:tab id="properties" title="Properties" />
1861 30 Jan 06 nicklas 176     <t:tab id="annotations" title="Annotations" />
1861 30 Jan 06 nicklas 177     
1861 30 Jan 06 nicklas 178     <t:tab id="images" title="Features">
1820 24 Jan 06 nicklas 179     <tbl:table 
1820 24 Jan 06 nicklas 180       id="features" 
1820 24 Jan 06 nicklas 181       columns="<%=cc.getSetting("columns")%>"
1820 24 Jan 06 nicklas 182       sortby="<%=cc.getSortProperty()%>" 
1820 24 Jan 06 nicklas 183       direction="<%=cc.getSortDirection()%>"
1820 24 Jan 06 nicklas 184       action="index.jsp"
1820 24 Jan 06 nicklas 185       sc="<%=sc%>"
1820 24 Jan 06 nicklas 186       item="<%=itemType%>"
6702 02 Feb 15 nicklas 187       filterrows="<%=cc.getFilterRows()%>"
5954 13 Feb 12 nicklas 188       subclass="fulltable"
7982 14 Jun 21 nicklas 189       stickyheaders="<%=cc.getSetting("columns.sticky", fiMethod == FeatureIdentificationMethod.FEATURE_ID ? "externalId" : "position")%>"
1820 24 Jan 06 nicklas 190       >
1820 24 Jan 06 nicklas 191       <tbl:hidden 
1820 24 Jan 06 nicklas 192         name="mode" 
1820 24 Jan 06 nicklas 193         value="<%=mode.getName()%>" 
1820 24 Jan 06 nicklas 194       />
1820 24 Jan 06 nicklas 195       <tbl:hidden 
1820 24 Jan 06 nicklas 196         name="arraydesign_id" 
1820 24 Jan 06 nicklas 197         value="<%=String.valueOf(arrayDesignId)%>" 
1820 24 Jan 06 nicklas 198       />
1820 24 Jan 06 nicklas 199       <tbl:hidden 
1820 24 Jan 06 nicklas 200         name="callback" 
1820 24 Jan 06 nicklas 201         value="<%=callback%>" 
1820 24 Jan 06 nicklas 202         skip="<%=callback == null%>" 
1820 24 Jan 06 nicklas 203       />
1820 24 Jan 06 nicklas 204       <tbl:columndef 
1820 24 Jan 06 nicklas 205         id="position"
4387 11 Aug 08 nicklas 206         clazz="uniquecol"
1820 24 Jan 06 nicklas 207         property="position"
1820 24 Jan 06 nicklas 208         datatype="int"
1820 24 Jan 06 nicklas 209         title="Position"
1820 24 Jan 06 nicklas 210         sortable="true" 
1820 24 Jan 06 nicklas 211         filterable="true"
1820 24 Jan 06 nicklas 212         exportable="true"
4106 29 Jan 08 nicklas 213         show="<%=fiMethod == FeatureIdentificationMethod.FEATURE_ID ? "auto" : "always"%>"
1820 24 Jan 06 nicklas 214       />
1820 24 Jan 06 nicklas 215       <tbl:columndef 
4332 12 Jun 08 martin 216         id="id"
4387 11 Aug 08 nicklas 217         clazz="uniquecol"
4332 12 Jun 08 martin 218         property="id"
4332 12 Jun 08 martin 219         datatype="int"
4332 12 Jun 08 martin 220         title="ID"
4332 12 Jun 08 martin 221         sortable="true"
4332 12 Jun 08 martin 222         filterable="true"
4332 12 Jun 08 martin 223         exportable="true"
4332 12 Jun 08 martin 224       />
4332 12 Jun 08 martin 225       <tbl:columndef 
4093 18 Jan 08 enell 226         id="externalId"
4387 11 Aug 08 nicklas 227         clazz="uniquecol"
4093 18 Jan 08 enell 228         property="externalId"
4093 18 Jan 08 enell 229         datatype="string"
4093 18 Jan 08 enell 230         title="Feature ID"
4093 18 Jan 08 enell 231         sortable="true" 
4093 18 Jan 08 enell 232         filterable="true"
4093 18 Jan 08 enell 233         exportable="true"
4106 29 Jan 08 nicklas 234         show="<%=fiMethod == FeatureIdentificationMethod.FEATURE_ID ? "always" : "auto"%>"
4093 18 Jan 08 enell 235       />
4093 18 Jan 08 enell 236       <tbl:columndef 
1820 24 Jan 06 nicklas 237         id="block"
2537 17 Aug 06 nicklas 238         property="arrayDesignBlock.blockNumber"
1820 24 Jan 06 nicklas 239         datatype="int"
1820 24 Jan 06 nicklas 240         title="Block"
1820 24 Jan 06 nicklas 241         sortable="true" 
1820 24 Jan 06 nicklas 242         filterable="true"
1820 24 Jan 06 nicklas 243         exportable="true"
1820 24 Jan 06 nicklas 244       />
1820 24 Jan 06 nicklas 245       <tbl:columndef 
1820 24 Jan 06 nicklas 246         id="metaGridX"
1820 24 Jan 06 nicklas 247         property="arrayDesignBlock.metaGridX"
1820 24 Jan 06 nicklas 248         datatype="int"
1820 24 Jan 06 nicklas 249         title="Meta grid X"
1820 24 Jan 06 nicklas 250         sortable="true" 
1820 24 Jan 06 nicklas 251         filterable="true"
1820 24 Jan 06 nicklas 252         exportable="true"
1820 24 Jan 06 nicklas 253       />
1820 24 Jan 06 nicklas 254       <tbl:columndef 
1820 24 Jan 06 nicklas 255         id="metaGridY"
1820 24 Jan 06 nicklas 256         property="arrayDesignBlock.metaGridY"
1820 24 Jan 06 nicklas 257         datatype="int"
1820 24 Jan 06 nicklas 258         title="Meta grid Y"
1820 24 Jan 06 nicklas 259         sortable="true" 
1820 24 Jan 06 nicklas 260         filterable="true"
1820 24 Jan 06 nicklas 261         exportable="true"
1820 24 Jan 06 nicklas 262       />
1820 24 Jan 06 nicklas 263       <tbl:columndef 
1820 24 Jan 06 nicklas 264         id="row"
1820 24 Jan 06 nicklas 265         property="row"
1820 24 Jan 06 nicklas 266         datatype="int"
1820 24 Jan 06 nicklas 267         title="Row"
1820 24 Jan 06 nicklas 268         sortable="true" 
1820 24 Jan 06 nicklas 269         filterable="true"
4866 31 Mar 09 martin 270         exportable="true"        
1820 24 Jan 06 nicklas 271       />
1820 24 Jan 06 nicklas 272       <tbl:columndef 
1820 24 Jan 06 nicklas 273         id="column"
1820 24 Jan 06 nicklas 274         property="column"
1820 24 Jan 06 nicklas 275         datatype="int"
1820 24 Jan 06 nicklas 276         title="Column"
1820 24 Jan 06 nicklas 277         sortable="true" 
1820 24 Jan 06 nicklas 278         filterable="true"
1820 24 Jan 06 nicklas 279         exportable="true"
1820 24 Jan 06 nicklas 280       />
1820 24 Jan 06 nicklas 281       <tbl:columndef 
1820 24 Jan 06 nicklas 282         id="blockSizeX"
1820 24 Jan 06 nicklas 283         property="arrayDesignBlock.blockSizeX"
1820 24 Jan 06 nicklas 284         datatype="int"
1820 24 Jan 06 nicklas 285         title="Block size X"
1820 24 Jan 06 nicklas 286         sortable="true" 
1820 24 Jan 06 nicklas 287         filterable="true"
1820 24 Jan 06 nicklas 288         exportable="true"
1820 24 Jan 06 nicklas 289       />
1820 24 Jan 06 nicklas 290       <tbl:columndef 
1820 24 Jan 06 nicklas 291         id="blockSizeY"
1820 24 Jan 06 nicklas 292         property="arrayDesignBlock.blockSizeY"
1820 24 Jan 06 nicklas 293         datatype="int"
1820 24 Jan 06 nicklas 294         title="Block size Y"
1820 24 Jan 06 nicklas 295         sortable="true" 
1820 24 Jan 06 nicklas 296         filterable="true"
1820 24 Jan 06 nicklas 297         exportable="true"
1820 24 Jan 06 nicklas 298       />
1820 24 Jan 06 nicklas 299       <tbl:columndef 
1820 24 Jan 06 nicklas 300         id="originX"
1820 24 Jan 06 nicklas 301         property="arrayDesignBlock.originX"
1820 24 Jan 06 nicklas 302         datatype="int"
1820 24 Jan 06 nicklas 303         title="Origin X"
1820 24 Jan 06 nicklas 304         sortable="true" 
1820 24 Jan 06 nicklas 305         filterable="true"
1820 24 Jan 06 nicklas 306         exportable="true"
1820 24 Jan 06 nicklas 307       />
1820 24 Jan 06 nicklas 308       <tbl:columndef 
1820 24 Jan 06 nicklas 309         id="originY"
1820 24 Jan 06 nicklas 310         property="arrayDesignBlock.originY"
1820 24 Jan 06 nicklas 311         datatype="int"
1820 24 Jan 06 nicklas 312         title="Origin Y"
1820 24 Jan 06 nicklas 313         sortable="true" 
1820 24 Jan 06 nicklas 314         filterable="true"
1820 24 Jan 06 nicklas 315         exportable="true"
1820 24 Jan 06 nicklas 316       />
1820 24 Jan 06 nicklas 317       <tbl:columndef 
1820 24 Jan 06 nicklas 318         id="spacingX"
1820 24 Jan 06 nicklas 319         property="arrayDesignBlock.spacingX"
1820 24 Jan 06 nicklas 320         datatype="int"
1820 24 Jan 06 nicklas 321         title="Spacing X"
1820 24 Jan 06 nicklas 322         sortable="true" 
1820 24 Jan 06 nicklas 323         filterable="true"
1820 24 Jan 06 nicklas 324         exportable="true"
1820 24 Jan 06 nicklas 325       />
1820 24 Jan 06 nicklas 326       <tbl:columndef 
1820 24 Jan 06 nicklas 327         id="spacingY"
1820 24 Jan 06 nicklas 328         property="arrayDesignBlock.spacingY"
1820 24 Jan 06 nicklas 329         datatype="int"
1820 24 Jan 06 nicklas 330         title="Spacing Y"
1820 24 Jan 06 nicklas 331         sortable="true" 
1820 24 Jan 06 nicklas 332         filterable="true"
1820 24 Jan 06 nicklas 333         exportable="true"
1820 24 Jan 06 nicklas 334       />
1941 08 Feb 06 nicklas 335       <tbl:columndef 
4240 22 Apr 08 nicklas 336         id="diameter"
4240 22 Apr 08 nicklas 337         property="arrayDesignBlock.featureDiameter"
4240 22 Apr 08 nicklas 338         datatype="int"
4240 22 Apr 08 nicklas 339         title="Diameter"
4240 22 Apr 08 nicklas 340         sortable="true" 
4240 22 Apr 08 nicklas 341         filterable="true"
4240 22 Apr 08 nicklas 342         exportable="true"
4240 22 Apr 08 nicklas 343       />
4302 19 May 08 nicklas 344       <tbl:columndef
4302 19 May 08 nicklas 345         id="reporterList"
5425 23 Sep 10 nicklas 346         property="$rpt.£reporterListScores"
4302 19 May 08 nicklas 347         datatype="int"
4302 19 May 08 nicklas 348         title="[Rep] Reporter list"
4302 19 May 08 nicklas 349         filterable="true"
4302 19 May 08 nicklas 350         enumeration="<%=Base.getReporterListsEnum(dc)%>"
4302 19 May 08 nicklas 351         multiple="false"
4302 19 May 08 nicklas 352       />
4240 22 Apr 08 nicklas 353       <tbl:columndef 
1941 08 Feb 06 nicklas 354         id="reporter.name"
6702 02 Feb 15 nicklas 355         property="$rpt.name"
6702 02 Feb 15 nicklas 356         exportproperty="reporter.name"
1941 08 Feb 06 nicklas 357         datatype="string"
1941 08 Feb 06 nicklas 358         title="[Rep] Name"
7014 12 Nov 15 nicklas 359         sortable="<%=readReporter%>" 
7014 12 Nov 15 nicklas 360         filterable="<%=readReporter%>"
7014 12 Nov 15 nicklas 361         exportable="<%=readReporter%>"
1941 08 Feb 06 nicklas 362       />
1941 08 Feb 06 nicklas 363       <%
7014 12 Nov 15 nicklas 364       if (readReporter)
1941 08 Feb 06 nicklas 365       {
7014 12 Nov 15 nicklas 366         %>
7014 12 Nov 15 nicklas 367         <tbl:columndef 
7014 12 Nov 15 nicklas 368           id="reporter.externalId"
7014 12 Nov 15 nicklas 369           clazz="uniquecol"
7014 12 Nov 15 nicklas 370           property="$rpt.externalId"
7014 12 Nov 15 nicklas 371           exportproperty="reporter.externalId"
7014 12 Nov 15 nicklas 372           datatype="string"
7014 12 Nov 15 nicklas 373           title="[Rep] ID"
7014 12 Nov 15 nicklas 374           sortable="true" 
7014 12 Nov 15 nicklas 375           filterable="true"
7014 12 Nov 15 nicklas 376           exportable="true"
7014 12 Nov 15 nicklas 377         />
7014 12 Nov 15 nicklas 378         <tbl:columndef 
7014 12 Nov 15 nicklas 379           id="reporter.symbol"
7014 12 Nov 15 nicklas 380           property="$rpt.symbol"
7014 12 Nov 15 nicklas 381           exportproperty="reporter.symbol"
7014 12 Nov 15 nicklas 382           datatype="string"
7014 12 Nov 15 nicklas 383           title="[Rep] Gene symbol"
7014 12 Nov 15 nicklas 384           sortable="true" 
7014 12 Nov 15 nicklas 385           filterable="true"
7014 12 Nov 15 nicklas 386           exportable="true"
7014 12 Nov 15 nicklas 387         />
7014 12 Nov 15 nicklas 388         <tbl:columndef 
7014 12 Nov 15 nicklas 389           id="reporter.description"
7014 12 Nov 15 nicklas 390           property="$rpt.description"
7014 12 Nov 15 nicklas 391           exportproperty="reporter.description"
7014 12 Nov 15 nicklas 392           datatype="string"
7014 12 Nov 15 nicklas 393           title="[Rep] Description" 
7014 12 Nov 15 nicklas 394           sortable="true" 
7014 12 Nov 15 nicklas 395           filterable="true" 
7014 12 Nov 15 nicklas 396           exportable="true"
7014 12 Nov 15 nicklas 397         />
7014 12 Nov 15 nicklas 398         <tbl:columndef 
7014 12 Nov 15 nicklas 399           id="reporter.entryDate"
7014 12 Nov 15 nicklas 400           property="$rpt.entryDate"
7014 12 Nov 15 nicklas 401           exportproperty="reporter.entryDate"
7014 12 Nov 15 nicklas 402           datatype="date"
7014 12 Nov 15 nicklas 403           title="[Rep] Registered"
7014 12 Nov 15 nicklas 404           sortable="true" 
7014 12 Nov 15 nicklas 405           filterable="true"
7014 12 Nov 15 nicklas 406           exportable="true"
7014 12 Nov 15 nicklas 407           formatter="<%=dateFormatter%>"
7014 12 Nov 15 nicklas 408         />
7014 12 Nov 15 nicklas 409         <tbl:columndef 
7014 12 Nov 15 nicklas 410           id="reporter.lastUpdate"
7014 12 Nov 15 nicklas 411           property="$rpt.lastUpdate"
7014 12 Nov 15 nicklas 412           exportproperty="reporter.lastUpdate"
7014 12 Nov 15 nicklas 413           datatype="timestamp"
7014 12 Nov 15 nicklas 414           title="[Rep] Last update" 
7014 12 Nov 15 nicklas 415           sortable="true" 
7014 12 Nov 15 nicklas 416           filterable="true" 
7014 12 Nov 15 nicklas 417           exportable="true"
7014 12 Nov 15 nicklas 418           formatter="<%=dateTimeFormatter%>"
7014 12 Nov 15 nicklas 419         />
7014 12 Nov 15 nicklas 420         <%
7014 12 Nov 15 nicklas 421         Enumeration<String, String> types = new Enumeration<String, String>();
7014 12 Nov 15 nicklas 422         ItemResultList<ReporterType> reporterTypes = typeQuery.list(dc);
7014 12 Nov 15 nicklas 423         types.add("", "- none -");
7014 12 Nov 15 nicklas 424         for (ReporterType rt : reporterTypes)
2747 19 Oct 06 enell 425         {
7014 12 Nov 15 nicklas 426           types.add(Integer.toString(rt.getId()), HTML.encodeTags(rt.getName()));
2747 19 Oct 06 enell 427         }
7014 12 Nov 15 nicklas 428         %>
7014 12 Nov 15 nicklas 429         <tbl:columndef 
7014 12 Nov 15 nicklas 430           id="reporter.reporterType"
7014 12 Nov 15 nicklas 431           property="$rpt.reporterType"
7014 12 Nov 15 nicklas 432           sortproperty="$rpt.reporterType.name"
7014 12 Nov 15 nicklas 433           exportproperty="reporter.reporterType.name:string"
7014 12 Nov 15 nicklas 434           datatype="int"
7014 12 Nov 15 nicklas 435           enumeration="<%=types%>"
7014 12 Nov 15 nicklas 436           title="[Rep] Type"
7014 12 Nov 15 nicklas 437           sortable="true" 
7014 12 Nov 15 nicklas 438           filterable="true"
7014 12 Nov 15 nicklas 439           exportable="true"
7014 12 Nov 15 nicklas 440         />
7014 12 Nov 15 nicklas 441         <%
7014 12 Nov 15 nicklas 442         if (reporterProperties != null)
7014 12 Nov 15 nicklas 443         {
7014 12 Nov 15 nicklas 444           for (ExtendedProperty ep : reporterProperties)
7014 12 Nov 15 nicklas 445           {
7014 12 Nov 15 nicklas 446             String name = ep.getName();
7014 12 Nov 15 nicklas 447             %>
7014 12 Nov 15 nicklas 448             <tbl:columndef
7014 12 Nov 15 nicklas 449               id="<%="reporter."+name%>"
7014 12 Nov 15 nicklas 450               property="<%="$rpt."+name%>"
7014 12 Nov 15 nicklas 451               exportproperty="<%="reporter."+name%>"
7014 12 Nov 15 nicklas 452               datatype="<%=ep.getType().getStringValue()%>"
7014 12 Nov 15 nicklas 453               title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
7014 12 Nov 15 nicklas 454               sortable="true"
7014 12 Nov 15 nicklas 455               filterable="true"
7014 12 Nov 15 nicklas 456               exportable="true"
7014 12 Nov 15 nicklas 457               formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
7014 12 Nov 15 nicklas 458             />
7014 12 Nov 15 nicklas 459             <%
7014 12 Nov 15 nicklas 460           }
7014 12 Nov 15 nicklas 461         }
7014 12 Nov 15 nicklas 462       }  
1941 08 Feb 06 nicklas 463       %>
1941 08 Feb 06 nicklas 464       <tbl:columndef 
1941 08 Feb 06 nicklas 465         id="well.row"
1941 08 Feb 06 nicklas 466         property="well.row"
1941 08 Feb 06 nicklas 467         datatype="int"
1941 08 Feb 06 nicklas 468         title="[Well] Row" 
1941 08 Feb 06 nicklas 469         sortable="true" 
1941 08 Feb 06 nicklas 470         filterable="true" 
4866 31 Mar 09 martin 471         enumeration="<%=plateRows%>"
1941 08 Feb 06 nicklas 472         exportable="true"
4866 31 Mar 09 martin 473         formatter="<%=rowFormatter%>"
1941 08 Feb 06 nicklas 474       />
1941 08 Feb 06 nicklas 475       <tbl:columndef 
1941 08 Feb 06 nicklas 476         id="well.column"
1941 08 Feb 06 nicklas 477         property="well.column"
1941 08 Feb 06 nicklas 478         datatype="int"
1941 08 Feb 06 nicklas 479         title="[Well] Column" 
1941 08 Feb 06 nicklas 480         sortable="true" 
1941 08 Feb 06 nicklas 481         filterable="true" 
6497 26 Jun 14 nicklas 482         enumeration="<%=plateColumns%>"
1941 08 Feb 06 nicklas 483         exportable="true"
4866 31 Mar 09 martin 484         formatter="<%=columnFormatter%>"
1941 08 Feb 06 nicklas 485       />
1941 08 Feb 06 nicklas 486       <tbl:columndef 
1941 08 Feb 06 nicklas 487         id="well.plate"
1941 08 Feb 06 nicklas 488         property="well.plate.name"
1941 08 Feb 06 nicklas 489         datatype="string"
1941 08 Feb 06 nicklas 490         title="[Well] Plate" 
1941 08 Feb 06 nicklas 491         sortable="true" 
1941 08 Feb 06 nicklas 492         filterable="true" 
1941 08 Feb 06 nicklas 493         exportable="true"
1941 08 Feb 06 nicklas 494       />
6039 29 Mar 12 nicklas 495       <tbl:columndef 
6039 29 Mar 12 nicklas 496         id="xt-columns" 
6039 29 Mar 12 nicklas 497         extensions="<%=columnsInvoker%>" 
6039 29 Mar 12 nicklas 498         jspcontext="<%=jspContext%>" 
6039 29 Mar 12 nicklas 499       />
6604 18 Nov 14 nicklas 500       <div class="panelgroup bg-filled-50 bottomborder">
5954 13 Feb 12 nicklas 501         <tbl:toolbar
5954 13 Feb 12 nicklas 502           subclass="bottomborder"
5954 13 Feb 12 nicklas 503           visible="<%=mode.hasToolbar()%>"
5954 13 Feb 12 nicklas 504           >
5954 13 Feb 12 nicklas 505           <tbl:button 
6307 15 Aug 13 nicklas 506             id="btnColumns"
5954 13 Feb 12 nicklas 507             image="columns.png" 
5954 13 Feb 12 nicklas 508             title="Columns&hellip;" 
5954 13 Feb 12 nicklas 509             tooltip="Show, hide and re-order columns" 
5954 13 Feb 12 nicklas 510           />
5954 13 Feb 12 nicklas 511           <tbl:button
6307 15 Aug 13 nicklas 512             id="btnNewReporterList"
5954 13 Feb 12 nicklas 513             image="add.png"
5954 13 Feb 12 nicklas 514             title="New reporter list&hellip;"
5954 13 Feb 12 nicklas 515             tooltip="Create a new reporter list from matching features"
5954 13 Feb 12 nicklas 516             visible="<%=sc.hasPermission(Permission.CREATE, Item.REPORTERLIST)%>"
5954 13 Feb 12 nicklas 517           />
5954 13 Feb 12 nicklas 518           <tbl:button 
6307 15 Aug 13 nicklas 519             id="btnImport"
6307 15 Aug 13 nicklas 520             data-plugin-type="IMPORT"
5954 13 Feb 12 nicklas 521             image="import.png" 
5954 13 Feb 12 nicklas 522             title="Import&hellip;" 
5954 13 Feb 12 nicklas 523             tooltip="Import data" 
5954 13 Feb 12 nicklas 524             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5954 13 Feb 12 nicklas 525           />
5954 13 Feb 12 nicklas 526           <tbl:button 
6307 15 Aug 13 nicklas 527             id="btnExport"
6307 15 Aug 13 nicklas 528             data-plugin-type="EXPORT"
5954 13 Feb 12 nicklas 529             image="export.png" 
5954 13 Feb 12 nicklas 530             title="Export&hellip;" 
5954 13 Feb 12 nicklas 531             tooltip="Export data" 
5954 13 Feb 12 nicklas 532             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5954 13 Feb 12 nicklas 533           />
5954 13 Feb 12 nicklas 534           <tbl:button 
6307 15 Aug 13 nicklas 535             id="btnRunPlugin"
6307 15 Aug 13 nicklas 536             data-plugin-type="OTHER"
5954 13 Feb 12 nicklas 537             image="runplugin.png" 
5954 13 Feb 12 nicklas 538             title="Run plugin&hellip;" 
5954 13 Feb 12 nicklas 539             tooltip="Run a plugin" 
5954 13 Feb 12 nicklas 540             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5954 13 Feb 12 nicklas 541           />
5954 13 Feb 12 nicklas 542           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 543             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5954 13 Feb 12 nicklas 544         </tbl:toolbar>
5954 13 Feb 12 nicklas 545         <tbl:panel>
6182 23 Oct 12 nicklas 546           <tbl:presetselector />
5954 13 Feb 12 nicklas 547           <tbl:navigator
5954 13 Feb 12 nicklas 548             page="<%=cc.getPage()%>" 
5954 13 Feb 12 nicklas 549             rowsperpage="<%=cc.getRowsPerPage()%>" 
5954 13 Feb 12 nicklas 550             totalrows="<%=features == null ? 0 : features.getTotalCount()%>" 
5954 13 Feb 12 nicklas 551             visible="<%=mode.hasNavigator()%>"
5954 13 Feb 12 nicklas 552           />
5954 13 Feb 12 nicklas 553         </tbl:panel>
5954 13 Feb 12 nicklas 554       </div>
1820 24 Jan 06 nicklas 555       <tbl:data>
5948 08 Feb 12 nicklas 556         <tbl:headers>
5948 08 Feb 12 nicklas 557           <tbl:headerrow>
7943 04 May 21 nicklas 558             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 559             <tbl:columnheaders />
5948 08 Feb 12 nicklas 560           </tbl:headerrow>
6702 02 Feb 15 nicklas 561           <%
6702 02 Feb 15 nicklas 562           int numFilters = cc.getNumPropertyFilters();
6702 02 Feb 15 nicklas 563           int numRows = cc.getFilterRows();
6702 02 Feb 15 nicklas 564           for (int filterNo = 0; filterNo < numRows; filterNo++)
6702 02 Feb 15 nicklas 565           {
6702 02 Feb 15 nicklas 566             boolean lastRow = filterNo == numRows-1;
6702 02 Feb 15 nicklas 567             %>
6702 02 Feb 15 nicklas 568             <tbl:headerrow>
7943 04 May 21 nicklas 569               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 570                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 571                   <div class="index"></div>
7943 04 May 21 nicklas 572                   <div class="check">
7943 04 May 21 nicklas 573                     <base:icon 
7943 04 May 21 nicklas 574                       subclass="link table-check"
7943 04 May 21 nicklas 575                       image="check_uncheck.png" 
7943 04 May 21 nicklas 576                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 577                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 578                     />
7943 04 May 21 nicklas 579                   </div>
7943 04 May 21 nicklas 580                   <div class="icons">
7943 04 May 21 nicklas 581                     <base:icon
7943 04 May 21 nicklas 582                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 583                       image="add.png"
7943 04 May 21 nicklas 584                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 585                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 586                     /><base:icon
7943 04 May 21 nicklas 587                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 588                       image="remove.png"
7943 04 May 21 nicklas 589                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 590                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 591                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 592                     />
7943 04 May 21 nicklas 593                   </div>
7943 04 May 21 nicklas 594                 </div>
6702 02 Feb 15 nicklas 595               </tbl:header>
6702 02 Feb 15 nicklas 596               <tbl:propertyfilter row="<%=filterNo%>" />
6702 02 Feb 15 nicklas 597             </tbl:headerrow>
6702 02 Feb 15 nicklas 598             <%
6702 02 Feb 15 nicklas 599           }
6702 02 Feb 15 nicklas 600           %>
7913 22 Feb 21 nicklas 601           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 602         </tbl:headers>
5948 08 Feb 12 nicklas 603         <tbl:rows>
1820 24 Jan 06 nicklas 604           <%
5954 13 Feb 12 nicklas 605           if (cc.getMessage() != null)
5954 13 Feb 12 nicklas 606           {
5954 13 Feb 12 nicklas 607             %>
6604 18 Nov 14 nicklas 608             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 609               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5954 13 Feb 12 nicklas 610             </tbl:panel>
5954 13 Feb 12 nicklas 611             <%
5954 13 Feb 12 nicklas 612             cc.setMessage(null);
5954 13 Feb 12 nicklas 613           }
1820 24 Jan 06 nicklas 614           int index = cc.getPage()*cc.getRowsPerPage();
1820 24 Jan 06 nicklas 615           int selectedItemId = Values.getInt(request.getParameter("item_id"));
2029 20 Feb 06 nicklas 616           if (features != null)
1820 24 Jan 06 nicklas 617           {
2449 29 Jun 06 nicklas 618             String tooltip = mode.isSelectionMode() ? 
2449 29 Jun 06 nicklas 619               "Select this item" : "View this item";
2029 20 Feb 06 nicklas 620             while (features.hasNext())
2029 20 Feb 06 nicklas 621             {
2314 23 May 06 nicklas 622               FeatureData item = features.next();
2029 20 Feb 06 nicklas 623               ArrayDesignBlock block = Feature.getArrayDesignBlock(dc, item);
2029 20 Feb 06 nicklas 624               int itemId = item.getId();
2029 20 Feb 06 nicklas 625               index++;
2029 20 Feb 06 nicklas 626               numListed++;
2029 20 Feb 06 nicklas 627               %>
2029 20 Feb 06 nicklas 628               <tbl:row>
7943 04 May 21 nicklas 629                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 630                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 631                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 632                     <div class="check">                  
7943 04 May 21 nicklas 633                       <base:input
7943 04 May 21 nicklas 634                         type="checkbox" 
7943 04 May 21 nicklas 635                         name="<%=itemId%>" 
7943 04 May 21 nicklas 636                         value="<%=itemId%>" 
7943 04 May 21 nicklas 637                         checked="<%=request.getParameter(Integer.toString(itemId)) != null%>"
7943 04 May 21 nicklas 638                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 639                       />                    
7943 04 May 21 nicklas 640                       <base:input 
7943 04 May 21 nicklas 641                         type="radio" 
7943 04 May 21 nicklas 642                         name="item_id" 
7943 04 May 21 nicklas 643                         value="<%=itemId%>" 
7943 04 May 21 nicklas 644                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 645                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 646                       />
7943 04 May 21 nicklas 647                     </div>
7943 04 May 21 nicklas 648                     <div class="icons"></div>
7943 04 May 21 nicklas 649                   </div>
7943 04 May 21 nicklas 650                 </tbl:header>
6307 15 Aug 13 nicklas 651                 <tbl:cell column="position"><div
6307 15 Aug 13 nicklas 652                     class="link table-item"
6307 15 Aug 13 nicklas 653                     data-item-id="<%=itemId%>"
6307 15 Aug 13 nicklas 654                     data-no-edit="1" 
6307 15 Aug 13 nicklas 655                     data-extra-url="&arraydesign_id=<%=arrayDesignId%>"
6307 15 Aug 13 nicklas 656                     tabindex="0"
6307 15 Aug 13 nicklas 657                     title="<%=tooltip%>"><%=item.getPosition()%></div></tbl:cell>
4332 12 Jun 08 martin 658                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
6307 15 Aug 13 nicklas 659                 <tbl:cell column="externalId"><div
6307 15 Aug 13 nicklas 660                     class="link table-item"
6307 15 Aug 13 nicklas 661                     data-item-id="<%=itemId%>"
6307 15 Aug 13 nicklas 662                     data-no-edit="1" 
6307 15 Aug 13 nicklas 663                     data-extra-url="&arraydesign_id=<%=arrayDesignId%>"
6307 15 Aug 13 nicklas 664                     tabindex="0"
6307 15 Aug 13 nicklas 665                     title="<%=tooltip%>"><%=HTML.encodeTags(item.getExternalId())%></div></tbl:cell>
2029 20 Feb 06 nicklas 666                 <tbl:cell column="block"><%=block.getBlockNumber()%></tbl:cell>
4866 31 Mar 09 martin 667                 <tbl:cell column="row"><%=item.getRow()%></tbl:cell>
4866 31 Mar 09 martin 668                 <tbl:cell column="column"><%=item.getColumn()%></tbl:cell>
2029 20 Feb 06 nicklas 669                 <tbl:cell column="metaGridX"><%=block.getMetaGridX()%></tbl:cell>
2029 20 Feb 06 nicklas 670                 <tbl:cell column="metaGridY"><%=block.getMetaGridY()%></tbl:cell>
2029 20 Feb 06 nicklas 671                 <tbl:cell column="blockSizeX"><%=block.getBlockSizeX()%></tbl:cell>
2029 20 Feb 06 nicklas 672                 <tbl:cell column="blockSizeY"><%=block.getBlockSizeY()%></tbl:cell>
2029 20 Feb 06 nicklas 673                 <tbl:cell column="originX"><%=block.getOriginX()%></tbl:cell>
2029 20 Feb 06 nicklas 674                 <tbl:cell column="originY"><%=block.getOriginY()%></tbl:cell>
2029 20 Feb 06 nicklas 675                 <tbl:cell column="spacingX"><%=block.getSpacingX()%></tbl:cell>
2029 20 Feb 06 nicklas 676                 <tbl:cell column="spacingY"><%=block.getSpacingY()%></tbl:cell>
4240 22 Apr 08 nicklas 677                 <tbl:cell column="diameter"><%=block.getFeatureDiameter()%></tbl:cell>
1820 24 Jan 06 nicklas 678                 <%
7014 12 Nov 15 nicklas 679                 if (!readReporter)
1941 08 Feb 06 nicklas 680                 {
1941 08 Feb 06 nicklas 681                   %>
7014 12 Nov 15 nicklas 682                   <tbl:cell column="reporter.name"><i>- denied -</i></tbl:cell>
1941 08 Feb 06 nicklas 683                   <%
7014 12 Nov 15 nicklas 684                 }
7014 12 Nov 15 nicklas 685                 else
7014 12 Nov 15 nicklas 686                 {
7014 12 Nov 15 nicklas 687                   ReporterData reporter = item.getReporter();
7014 12 Nov 15 nicklas 688                   if (reporter == null)
2029 20 Feb 06 nicklas 689                   {
7014 12 Nov 15 nicklas 690                     %>
7014 12 Nov 15 nicklas 691                     <tbl:cell column="reporter.name"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 692                     <tbl:cell column="reporter.externalId"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 693                     <tbl:cell column="reporter.symbol"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 694                     <tbl:cell column="reporter.description"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 695                     <tbl:cell column="entryDate"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 696                     <tbl:cell column="reporter.lastUpdate"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 697                     <tbl:cell column="reporter.reporterType"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 698                     <%
7014 12 Nov 15 nicklas 699                     if (reporterProperties != null)
2747 19 Oct 06 enell 700                     {
7014 12 Nov 15 nicklas 701                       for (ExtendedProperty ep : reporterProperties)
7014 12 Nov 15 nicklas 702                       {
7014 12 Nov 15 nicklas 703                         String name = ep.getName();
7014 12 Nov 15 nicklas 704                         %>
7014 12 Nov 15 nicklas 705                         <tbl:cell column="<%="reporter."+name%>"><i>- none -</i></tbl:cell>
7014 12 Nov 15 nicklas 706                         <%
7014 12 Nov 15 nicklas 707                       }
2747 19 Oct 06 enell 708                     }
2029 20 Feb 06 nicklas 709                   }
7014 12 Nov 15 nicklas 710                   else
2029 20 Feb 06 nicklas 711                   {
7014 12 Nov 15 nicklas 712                     %>
7014 12 Nov 15 nicklas 713                     <tbl:cell column="reporter.name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), true)%></tbl:cell>
7014 12 Nov 15 nicklas 714                     <tbl:cell column="reporter.externalId"><%=HTML.encodeTags(reporter.getExternalId())%></tbl:cell>
7014 12 Nov 15 nicklas 715                     <tbl:cell column="reporter.symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell>
7014 12 Nov 15 nicklas 716                     <tbl:cell column="reporter.description"><%=HTML.encodeTags(reporter.getDescription())%></tbl:cell>
7014 12 Nov 15 nicklas 717                     <tbl:cell column="reporter.entryDate" value="<%=reporter.getEntryDate()%>" />
7014 12 Nov 15 nicklas 718                     <tbl:cell column="reporter.lastUpdate" value="<%=reporter.getLastUpdate()%>" />
7014 12 Nov 15 nicklas 719                     <tbl:cell column="reporter.reporterType"
7014 12 Nov 15 nicklas 720                       ><base:propertyvalue 
7014 12 Nov 15 nicklas 721                         dbcontrol="<%=dc%>" 
7014 12 Nov 15 nicklas 722                         item="<%=reporter%>" 
7014 12 Nov 15 nicklas 723                         property="reporterType"
7014 12 Nov 15 nicklas 724                         enableEditLink="<%=mode.hasEditLink()%>" 
7014 12 Nov 15 nicklas 725                         enablePropertyLink="<%=mode.hasPropertyLink()%>"
7014 12 Nov 15 nicklas 726                       /></tbl:cell>
7014 12 Nov 15 nicklas 727                     <%
7014 12 Nov 15 nicklas 728                     if (reporterProperties != null)
2313 23 May 06 nicklas 729                     {
7014 12 Nov 15 nicklas 730                       for (ExtendedProperty ep : reporterProperties)
7014 12 Nov 15 nicklas 731                       {
7014 12 Nov 15 nicklas 732                         String name = ep.getName();
7014 12 Nov 15 nicklas 733                         %>
7014 12 Nov 15 nicklas 734                         <tbl:cell column="<%="reporter."+name%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell>
7014 12 Nov 15 nicklas 735                         <%
7014 12 Nov 15 nicklas 736                       }
2313 23 May 06 nicklas 737                     }
2029 20 Feb 06 nicklas 738                   }
2029 20 Feb 06 nicklas 739                 }
1941 08 Feb 06 nicklas 740                 %>
1941 08 Feb 06 nicklas 741                 <%
2029 20 Feb 06 nicklas 742                 Well well = null;
2029 20 Feb 06 nicklas 743                 boolean readWell = true;
2029 20 Feb 06 nicklas 744                 try
1941 08 Feb 06 nicklas 745                 {
2029 20 Feb 06 nicklas 746                   well = Feature.getWell(dc, item);
2029 20 Feb 06 nicklas 747                 }
2029 20 Feb 06 nicklas 748                 catch (PermissionDeniedException ex)
2029 20 Feb 06 nicklas 749                 {
2029 20 Feb 06 nicklas 750                   readWell = false;
2029 20 Feb 06 nicklas 751                 }
2029 20 Feb 06 nicklas 752                 if (!readWell)
2029 20 Feb 06 nicklas 753                 {
1941 08 Feb 06 nicklas 754                   %>
2029 20 Feb 06 nicklas 755                   <tbl:cell column="well.row"><i>- denied -</i></tbl:cell>
2029 20 Feb 06 nicklas 756                   <tbl:cell column="well.column"><i>- denied -</i></tbl:cell>
2029 20 Feb 06 nicklas 757                   <tbl:cell column="well.plate"><i>- denied -</i></tbl:cell>
1941 08 Feb 06 nicklas 758                   <%
1941 08 Feb 06 nicklas 759                 }
2029 20 Feb 06 nicklas 760                 else if (well == null)
2029 20 Feb 06 nicklas 761                 {
2029 20 Feb 06 nicklas 762                   %>
2029 20 Feb 06 nicklas 763                   <tbl:cell column="well.row"><i>- none -</i></tbl:cell>
2029 20 Feb 06 nicklas 764                   <tbl:cell column="well.column"><i>- none -</i></tbl:cell>
2029 20 Feb 06 nicklas 765                   <tbl:cell column="well.plate"><i>- none -</i></tbl:cell>
2029 20 Feb 06 nicklas 766                   <%
2029 20 Feb 06 nicklas 767                 }
2029 20 Feb 06 nicklas 768                 else
2029 20 Feb 06 nicklas 769                 {
2029 20 Feb 06 nicklas 770                   %>
4866 31 Mar 09 martin 771                   <tbl:cell column="well.row"><tbl:cellvalue value="<%=well.getRow()%>"/></tbl:cell>
4866 31 Mar 09 martin 772                   <tbl:cell column="well.column"><tbl:cellvalue value="<%=well.getColumn()%>"/></tbl:cell>
2537 17 Aug 06 nicklas 773                   <tbl:cell column="well.plate"><%=Base.getLinkedName(ID, well.getPlate(), false, true)%></tbl:cell>
2029 20 Feb 06 nicklas 774                   <%
2029 20 Feb 06 nicklas 775                 }
2029 20 Feb 06 nicklas 776                 %>
6039 29 Mar 12 nicklas 777                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6039 29 Mar 12 nicklas 778                   <tbl:cell column="xt-columns" />
6039 29 Mar 12 nicklas 779                 </tbl:xt-cells>
2029 20 Feb 06 nicklas 780               </tbl:row>
1941 08 Feb 06 nicklas 781               <%
2029 20 Feb 06 nicklas 782             }
1820 24 Jan 06 nicklas 783           }
5954 13 Feb 12 nicklas 784           if (numListed == 0)
5954 13 Feb 12 nicklas 785           {
5954 13 Feb 12 nicklas 786             %>
6604 18 Nov 14 nicklas 787             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 788               <div class="messagecontainer note">
5954 13 Feb 12 nicklas 789               <%=features == null || features.getTotalCount() == 0 ? "No features were found" : "No features on this page. Please select another page!" %>
5954 13 Feb 12 nicklas 790               </div>
5954 13 Feb 12 nicklas 791             </tbl:panel>
5954 13 Feb 12 nicklas 792             <%
5954 13 Feb 12 nicklas 793           }
1820 24 Jan 06 nicklas 794           %>
1820 24 Jan 06 nicklas 795           </tbl:rows>
1820 24 Jan 06 nicklas 796         </tbl:data>
1820 24 Jan 06 nicklas 797     </tbl:table>
1861 30 Jan 06 nicklas 798     </t:tab>
4746 10 Feb 09 nicklas 799     <t:tab id="overview" title="Overview" 
4746 10 Feb 09 nicklas 800       tooltip="Display a tree overview of related items" />
7166 07 Jun 16 nicklas 801     <t:tab id="history" title="History"
7166 07 Jun 16 nicklas 802       tooltip="Displays a log with the history of this item"
7166 07 Jun 16 nicklas 803       visible="<%=ChangeHistoryUtil.showChangeHistoryTab(sc)%>" />
1861 30 Jan 06 nicklas 804     </t:tabcontrol>
5954 13 Feb 12 nicklas 805
5954 13 Feb 12 nicklas 806     <base:buttongroup>
6311 23 Aug 13 nicklas 807       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6311 23 Aug 13 nicklas 808       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6311 23 Aug 13 nicklas 809       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
5954 13 Feb 12 nicklas 810     </base:buttongroup>
1861 30 Jan 06 nicklas 811   
1820 24 Jan 06 nicklas 812   </base:body>
1820 24 Jan 06 nicklas 813   </base:page>
1820 24 Jan 06 nicklas 814   <%
1820 24 Jan 06 nicklas 815 }
1820 24 Jan 06 nicklas 816 finally
1820 24 Jan 06 nicklas 817 {
1820 24 Jan 06 nicklas 818   if (features != null) features.close();
1820 24 Jan 06 nicklas 819   if (dc != null) dc.close();
1820 24 Jan 06 nicklas 820 }
3675 16 Aug 07 jari 821 %>