www/lims/arraydesigns/list_designs.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 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
3675 16 Aug 07 jari 4   Copyright (C) 2007 Johan Enell, Nicklas Nordborg, Martin Svensson
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.ArrayDesign"
2449 29 Jun 06 nicklas 31   import="net.sf.basedb.core.ArrayBatch"
3820 12 Oct 07 nicklas 32   import="net.sf.basedb.core.Platform"
3820 12 Oct 07 nicklas 33   import="net.sf.basedb.core.PlatformVariant"
2384 15 Jun 06 nicklas 34   import="net.sf.basedb.core.File"
8026 15 Dec 21 nicklas 35   import="net.sf.basedb.core.Project"
1820 24 Jan 06 nicklas 36   import="net.sf.basedb.core.AnnotationType"
1820 24 Jan 06 nicklas 37   import="net.sf.basedb.core.AnnotationSet"
4544 25 Sep 08 nicklas 38   import="net.sf.basedb.core.Annotation"
6843 09 Apr 15 nicklas 39   import="net.sf.basedb.core.FileSet"
6843 09 Apr 15 nicklas 40   import="net.sf.basedb.core.DataFileType"
4261 29 Apr 08 nicklas 41   import="net.sf.basedb.core.Job"
1820 24 Jan 06 nicklas 42   import="net.sf.basedb.core.ItemQuery"
1820 24 Jan 06 nicklas 43   import="net.sf.basedb.core.Include"
2449 29 Jun 06 nicklas 44   import="net.sf.basedb.core.Type"
1820 24 Jan 06 nicklas 45   import="net.sf.basedb.core.ItemResultIterator"
1820 24 Jan 06 nicklas 46   import="net.sf.basedb.core.ItemResultList"
1820 24 Jan 06 nicklas 47   import="net.sf.basedb.core.ItemContext"
3552 06 Jul 07 martin 48   import="net.sf.basedb.core.Nameable"
1820 24 Jan 06 nicklas 49   import="net.sf.basedb.core.Permission"
2384 15 Jun 06 nicklas 50   import="net.sf.basedb.core.PermissionDeniedException"
1820 24 Jan 06 nicklas 51   import="net.sf.basedb.core.PluginDefinition"
4093 18 Jan 08 enell 52   import="net.sf.basedb.core.FeatureIdentificationMethod"
1820 24 Jan 06 nicklas 53   import="net.sf.basedb.core.query.Hql"
1820 24 Jan 06 nicklas 54   import="net.sf.basedb.core.query.Restrictions"
1820 24 Jan 06 nicklas 55   import="net.sf.basedb.core.query.Expressions"
2449 29 Jun 06 nicklas 56   import="net.sf.basedb.core.query.Orders"
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"
6541 29 Sep 14 nicklas 59   import="net.sf.basedb.core.snapshot.AnnotationLoaderUtil"
6541 29 Sep 14 nicklas 60   import="net.sf.basedb.core.snapshot.AnnotationTypeFilter"
6541 29 Sep 14 nicklas 61   import="net.sf.basedb.core.snapshot.AnnotationSnapshot"
6541 29 Sep 14 nicklas 62   import="net.sf.basedb.core.snapshot.AnnotationSetSnapshot"
6541 29 Sep 14 nicklas 63   import="net.sf.basedb.core.snapshot.SnapshotManager"
1820 24 Jan 06 nicklas 64   import="net.sf.basedb.util.Enumeration"
3552 06 Jul 07 martin 65   import="net.sf.basedb.util.ShareableUtil"
1820 24 Jan 06 nicklas 66   import="net.sf.basedb.clients.web.Base"
1820 24 Jan 06 nicklas 67   import="net.sf.basedb.clients.web.ModeInfo"
2401 21 Jun 06 martin 68   import="net.sf.basedb.clients.web.PermissionUtil"
1820 24 Jan 06 nicklas 69   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 70   import="net.sf.basedb.util.Values"
2942 22 Nov 06 nicklas 71   import="net.sf.basedb.util.formatter.Formatter"
6843 09 Apr 15 nicklas 72   import="net.sf.basedb.clients.web.formatter.DataFileFormatter"
2942 22 Nov 06 nicklas 73   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4884 03 Apr 09 nicklas 74   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4884 03 Apr 09 nicklas 75   import="net.sf.basedb.clients.web.extensions.JspContext"
4884 03 Apr 09 nicklas 76   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 77   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4884 03 Apr 09 nicklas 78   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
7604 25 Feb 19 nicklas 79   import="net.sf.basedb.clients.web.extensions.list.ListColumnAction"
6039 29 Mar 12 nicklas 80   import="net.sf.basedb.clients.web.extensions.list.ListColumnUtil"
7855 19 Oct 20 nicklas 81   import="net.sf.basedb.clients.web.extensions.fileviewer.FileViewerContext"
7855 19 Oct 20 nicklas 82   import="net.sf.basedb.clients.web.extensions.fileviewer.FileViewerUtil"
7337 12 Apr 17 nicklas 83   import="net.sf.basedb.clients.web.util.ProjectSpecificInfoFilter"
4884 03 Apr 09 nicklas 84   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
3552 06 Jul 07 martin 85   import="java.util.Iterator"
1820 24 Jan 06 nicklas 86   import="java.util.List"
1820 24 Jan 06 nicklas 87   import="java.util.Map"
4261 29 Apr 08 nicklas 88   import="java.util.Date"
6541 29 Sep 14 nicklas 89   import="java.util.ArrayList"
1820 24 Jan 06 nicklas 90 %>
1820 24 Jan 06 nicklas 91 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1820 24 Jan 06 nicklas 92 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4884 03 Apr 09 nicklas 93 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1820 24 Jan 06 nicklas 94 <%!
1820 24 Jan 06 nicklas 95   private static final Item itemType = Item.ARRAYDESIGN;
1820 24 Jan 06 nicklas 96   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.LIST);
4093 18 Jan 08 enell 97   private static final Enumeration<String, String> fiMethods = new Enumeration<String, String>();
4093 18 Jan 08 enell 98   static
4093 18 Jan 08 enell 99   {
4093 18 Jan 08 enell 100     for (FeatureIdentificationMethod fim : FeatureIdentificationMethod.values())
4093 18 Jan 08 enell 101     {
4093 18 Jan 08 enell 102       fiMethods.add(Integer.toString(fim.getValue()), fim.toString());
4093 18 Jan 08 enell 103     }
4093 18 Jan 08 enell 104     fiMethods.lock();
4093 18 Jan 08 enell 105   }
1820 24 Jan 06 nicklas 106 %>
1820 24 Jan 06 nicklas 107 <%
1820 24 Jan 06 nicklas 108 final SessionControl sc = Base.getExistingSessionControl(pageContext, Permission.DENIED, itemType);
1820 24 Jan 06 nicklas 109 final String ID = sc.getId();
2384 15 Jun 06 nicklas 110 final String root = request.getContextPath()+"/";
1820 24 Jan 06 nicklas 111 final boolean createPermission = sc.hasPermission(Permission.CREATE, itemType);
1820 24 Jan 06 nicklas 112 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1820 24 Jan 06 nicklas 113
1820 24 Jan 06 nicklas 114 final ModeInfo mode = ModeInfo.get(request.getParameter("mode"));
1820 24 Jan 06 nicklas 115 final String callback = request.getParameter("callback");
1820 24 Jan 06 nicklas 116 final String title = mode.generateTitle("array design", "array designs");
7954 12 May 21 nicklas 117 final DbControl dc = sc.newDbControl(":List "+itemType);
1820 24 Jan 06 nicklas 118 ItemResultIterator<ArrayDesign> designs = null;
6541 29 Sep 14 nicklas 119 List<AnnotationLoaderUtil> annotationLoaders = new ArrayList<AnnotationLoaderUtil>();
1820 24 Jan 06 nicklas 120 try
1820 24 Jan 06 nicklas 121 {
6690 21 Jan 15 nicklas 122   ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
6541 29 Sep 14 nicklas 123   SnapshotManager manager = new SnapshotManager();
7337 12 Apr 17 nicklas 124   ProjectSpecificInfoFilter psInfo = new ProjectSpecificInfoFilter();
6541 29 Sep 14 nicklas 125   for (AnnotationType at : annotationTypeQuery.list(dc))
6541 29 Sep 14 nicklas 126   {
6541 29 Sep 14 nicklas 127     annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at));
6541 29 Sep 14 nicklas 128   }
6690 21 Jan 15 nicklas 129   annotationTypeQuery = Base.getInheritedAnnotationColumns(cc.getSetting("columns"));
6690 21 Jan 15 nicklas 130   for (AnnotationType at : annotationTypeQuery.list(dc))
6690 21 Jan 15 nicklas 131   {
6690 21 Jan 15 nicklas 132     annotationLoaders.add(new AnnotationLoaderUtil(dc, manager, at, false, true));
6690 21 Jan 15 nicklas 133   }
6843 09 Apr 15 nicklas 134   List<DataFileType> fileTypeColumns = new ArrayList<DataFileType>(Base.getDataFileColumns(itemType, null).list(dc));
1820 24 Jan 06 nicklas 135
2449 29 Jun 06 nicklas 136   // Query for batches relatated to the current design
2449 29 Jun 06 nicklas 137   final ItemQuery<ArrayBatch> batchQuery = ArrayBatch.getQuery();
2449 29 Jun 06 nicklas 138   batchQuery.include(cc.getInclude());
2449 29 Jun 06 nicklas 139   batchQuery.restrict(Restrictions.eq(Hql.property("arrayDesign"), Expressions.parameter("arrayDesign")));
2449 29 Jun 06 nicklas 140   batchQuery.order(Orders.asc(Hql.property("name"))); 
2449 29 Jun 06 nicklas 141   final boolean createBatchPermission = sc.hasPermission(Permission.CREATE, Item.ARRAYBATCH);   
2449 29 Jun 06 nicklas 142
3820 12 Oct 07 nicklas 143   // Get all platforms
3820 12 Oct 07 nicklas 144   final ItemQuery<Platform> platformQuery = Platform.getQuery();
3848 17 Oct 07 nicklas 145   platformQuery.include(cc.getInclude());
3820 12 Oct 07 nicklas 146   platformQuery.order(Orders.asc(Hql.property("name")));
3820 12 Oct 07 nicklas 147   platformQuery.setCacheResult(true);
3820 12 Oct 07 nicklas 148   Enumeration<String, String> platforms = new Enumeration<String, String>();
3820 12 Oct 07 nicklas 149   for (Platform p : platformQuery.list(dc))
3820 12 Oct 07 nicklas 150   {
3820 12 Oct 07 nicklas 151     platforms.add(Integer.toString(p.getId()), p.getName());
3820 12 Oct 07 nicklas 152   }
3820 12 Oct 07 nicklas 153   
1820 24 Jan 06 nicklas 154   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
7914 23 Feb 21 nicklas 155   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, null);
2029 20 Feb 06 nicklas 156   try
2029 20 Feb 06 nicklas 157   {
7914 23 Feb 21 nicklas 158     final ItemQuery<ArrayDesign> query = Base.getConfiguredQuery(dc, cc, jspContext, true, ArrayDesign.getQuery(), mode);
2029 20 Feb 06 nicklas 159     designs = query.iterate(dc);
2029 20 Feb 06 nicklas 160   }
2029 20 Feb 06 nicklas 161   catch (Throwable t)
2029 20 Feb 06 nicklas 162   {
2029 20 Feb 06 nicklas 163     cc.setMessage(t.getMessage());
4560 06 Oct 08 nicklas 164     t.printStackTrace();
2029 20 Feb 06 nicklas 165   }
8026 15 Dec 21 nicklas 166   Project activeProject = Project.getActive(dc);
1820 24 Jan 06 nicklas 167   int numListed = 0;
4261 29 Apr 08 nicklas 168   Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
4698 10 Dec 08 nicklas 169   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
7604 25 Feb 19 nicklas 170   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
7604 25 Feb 19 nicklas 171   ExtensionsInvoker<ListColumnAction<ArrayDesign,?>> columnsInvoker = ListColumnUtil.useExtensions(jspContext);
7855 19 Oct 20 nicklas 172   FileViewerUtil fileViewer = FileViewerUtil.getOrCreate(jspContext, FileViewerContext.file());
1820 24 Jan 06 nicklas 173   %>
6307 15 Aug 13 nicklas 174   <base:page title="<%=title==null ? "Array designs" : title%>" type="<%=mode.getPageType()%>" id="list-page">
6307 15 Aug 13 nicklas 175   <base:head scripts="table.js,~designs.js" styles="table.css,toolbar.css">
4884 03 Apr 09 nicklas 176     <ext:scripts context="<%=jspContext%>" />
4884 03 Apr 09 nicklas 177     <ext:stylesheets context="<%=jspContext%>" />
1820 24 Jan 06 nicklas 178   </base:head>
1820 24 Jan 06 nicklas 179   
1820 24 Jan 06 nicklas 180   <base:body>
5954 13 Feb 12 nicklas 181     <h1><%=title==null ? "Array designs" : title%></h1>
5954 13 Feb 12 nicklas 182     <div class="content">
1820 24 Jan 06 nicklas 183     <tbl:table 
1820 24 Jan 06 nicklas 184       id="designs" 
1820 24 Jan 06 nicklas 185       columns="<%=cc.getSetting("columns")%>"
1820 24 Jan 06 nicklas 186       sortby="<%=cc.getSortProperty()%>" 
1820 24 Jan 06 nicklas 187       direction="<%=cc.getSortDirection()%>"
1820 24 Jan 06 nicklas 188       action="index.jsp"
1820 24 Jan 06 nicklas 189       sc="<%=sc%>"
1820 24 Jan 06 nicklas 190       item="<%=itemType%>"
6702 02 Feb 15 nicklas 191       filterrows="<%=cc.getFilterRows()%>"
5954 13 Feb 12 nicklas 192       subclass="fulltable"
6690 21 Jan 15 nicklas 193       data-inherited-annotations="true"
7982 14 Jun 21 nicklas 194       stickyheaders="<%=cc.getSetting("columns.sticky", "name")%>"
1820 24 Jan 06 nicklas 195       >
1820 24 Jan 06 nicklas 196       <tbl:hidden 
1820 24 Jan 06 nicklas 197         name="mode" 
1820 24 Jan 06 nicklas 198         value="<%=mode.getName()%>" 
1820 24 Jan 06 nicklas 199       />
1820 24 Jan 06 nicklas 200       <tbl:hidden 
1820 24 Jan 06 nicklas 201         name="callback" 
1820 24 Jan 06 nicklas 202         value="<%=callback%>" 
1820 24 Jan 06 nicklas 203         skip="<%=callback == null%>" 
1820 24 Jan 06 nicklas 204       />
1820 24 Jan 06 nicklas 205       <tbl:columndef 
1820 24 Jan 06 nicklas 206         id="name"
1820 24 Jan 06 nicklas 207         property="name"
1820 24 Jan 06 nicklas 208         datatype="string"
1820 24 Jan 06 nicklas 209         title="Name"
1820 24 Jan 06 nicklas 210         sortable="true" 
1820 24 Jan 06 nicklas 211         filterable="true"
1820 24 Jan 06 nicklas 212         exportable="true"
1820 24 Jan 06 nicklas 213         show="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 
4698 10 Dec 08 nicklas 226         id="entryDate"
4698 10 Dec 08 nicklas 227         property="entryDate"
4698 10 Dec 08 nicklas 228         datatype="date"
4698 10 Dec 08 nicklas 229         title="Registered"
4698 10 Dec 08 nicklas 230         sortable="true" 
4698 10 Dec 08 nicklas 231         filterable="true"
4698 10 Dec 08 nicklas 232         exportable="true"
4698 10 Dec 08 nicklas 233         formatter="<%=dateFormatter%>"
4698 10 Dec 08 nicklas 234       />
4698 10 Dec 08 nicklas 235       <tbl:columndef 
3820 12 Oct 07 nicklas 236         id="hasFeatures"
3820 12 Oct 07 nicklas 237         property="hasFeatures"
1820 24 Jan 06 nicklas 238         datatype="boolean"
3820 12 Oct 07 nicklas 239         title="Has features"
1820 24 Jan 06 nicklas 240         sortable="true" 
1820 24 Jan 06 nicklas 241         filterable="true"
1820 24 Jan 06 nicklas 242         exportable="true"
1820 24 Jan 06 nicklas 243       />
1820 24 Jan 06 nicklas 244       <tbl:columndef 
3820 12 Oct 07 nicklas 245         id="numDbFeatures"
3820 12 Oct 07 nicklas 246         property="numDbFeatures"
3820 12 Oct 07 nicklas 247         datatype="int"
3820 12 Oct 07 nicklas 248         title="Db features"
3820 12 Oct 07 nicklas 249         sortable="true" 
3820 12 Oct 07 nicklas 250         filterable="true"
3820 12 Oct 07 nicklas 251         exportable="true"
2384 15 Jun 06 nicklas 252       />
2384 15 Jun 06 nicklas 253       <tbl:columndef 
3820 12 Oct 07 nicklas 254         id="numFileFeatures"
3820 12 Oct 07 nicklas 255         property="numFileFeatures"
3820 12 Oct 07 nicklas 256         datatype="int"
3820 12 Oct 07 nicklas 257         title="File features"
1820 24 Jan 06 nicklas 258         sortable="true" 
1820 24 Jan 06 nicklas 259         filterable="true"
1820 24 Jan 06 nicklas 260         exportable="true"
1820 24 Jan 06 nicklas 261       />
3741 17 Sep 07 nicklas 262       <tbl:columndef 
3820 12 Oct 07 nicklas 263         id="platform"
3820 12 Oct 07 nicklas 264         property="platform"
3820 12 Oct 07 nicklas 265         sortproperty="platform.name"
6037 29 Mar 12 nicklas 266         exportproperty="platform.name:string"
3741 17 Sep 07 nicklas 267         datatype="int"
3820 12 Oct 07 nicklas 268         enumeration="<%=platforms%>"
3820 12 Oct 07 nicklas 269         title="Platform"
3741 17 Sep 07 nicklas 270         sortable="true" 
3741 17 Sep 07 nicklas 271         filterable="true"
3741 17 Sep 07 nicklas 272         exportable="true"
3820 12 Oct 07 nicklas 273       />  
3820 12 Oct 07 nicklas 274       <tbl:columndef 
3820 12 Oct 07 nicklas 275         id="variant"
3820 12 Oct 07 nicklas 276         property="variant.name"
3820 12 Oct 07 nicklas 277         datatype="string"
3820 12 Oct 07 nicklas 278         title="Variant"
3820 12 Oct 07 nicklas 279         sortable="true" 
3820 12 Oct 07 nicklas 280         filterable="true"
3820 12 Oct 07 nicklas 281         exportable="true"
3820 12 Oct 07 nicklas 282       />  
4093 18 Jan 08 enell 283       <tbl:columndef 
4093 18 Jan 08 enell 284         id="featureIdentificationMethod"
4093 18 Jan 08 enell 285         property="featureIdentificationMethod"
4093 18 Jan 08 enell 286         datatype="int"
4093 18 Jan 08 enell 287         title="Feature ID meth."
4093 18 Jan 08 enell 288         tooltip="Feature identification method"
4093 18 Jan 08 enell 289         sortable="true" 
4093 18 Jan 08 enell 290         filterable="true"
4093 18 Jan 08 enell 291         exportable="true"
4093 18 Jan 08 enell 292         enumeration="<%=fiMethods%>"
4093 18 Jan 08 enell 293       />  
4131 08 Feb 08 nicklas 294       <tbl:columndef 
4131 08 Feb 08 nicklas 295         id="numArrays"
4131 08 Feb 08 nicklas 296         property="numArrays"
4131 08 Feb 08 nicklas 297         datatype="int"
4131 08 Feb 08 nicklas 298         title="Arrays/slide"
4131 08 Feb 08 nicklas 299         sortable="true" 
4131 08 Feb 08 nicklas 300         filterable="true"
4131 08 Feb 08 nicklas 301         exportable="true"
4131 08 Feb 08 nicklas 302       />
4261 29 Apr 08 nicklas 303       <tbl:columndef 
4261 29 Apr 08 nicklas 304         id="plugin"
4261 29 Apr 08 nicklas 305         property="job.pluginDefinition.name"
4261 29 Apr 08 nicklas 306         datatype="string"
4261 29 Apr 08 nicklas 307         title="Plugin"
4261 29 Apr 08 nicklas 308         sortable="true"
4261 29 Apr 08 nicklas 309         filterable="true"
4261 29 Apr 08 nicklas 310         exportable="true"
4261 29 Apr 08 nicklas 311         tooltip="The plug-in that was used to import features"
4261 29 Apr 08 nicklas 312       />
4261 29 Apr 08 nicklas 313       <tbl:columndef 
4261 29 Apr 08 nicklas 314         id="configuration"
4261 29 Apr 08 nicklas 315         property="job.pluginConfiguration.name"
4261 29 Apr 08 nicklas 316         datatype="string"
4261 29 Apr 08 nicklas 317         title="Configuration"
4261 29 Apr 08 nicklas 318         sortable="true"
4261 29 Apr 08 nicklas 319         filterable="true"
4261 29 Apr 08 nicklas 320         exportable="true" 
4261 29 Apr 08 nicklas 321         tooltip="The configuration/file format that was used to import features"
4261 29 Apr 08 nicklas 322       />
4261 29 Apr 08 nicklas 323       <tbl:columndef 
4261 29 Apr 08 nicklas 324         id="importdate"
4261 29 Apr 08 nicklas 325         property="job.ended"
4261 29 Apr 08 nicklas 326         datatype="date"
4261 29 Apr 08 nicklas 327         title="Import date"
4261 29 Apr 08 nicklas 328         sortable="true"
4261 29 Apr 08 nicklas 329         filterable="true"
4261 29 Apr 08 nicklas 330         exportable="true" 
4261 29 Apr 08 nicklas 331         tooltip="The date and time of the feature import"
4261 29 Apr 08 nicklas 332         formatter="<%=dateTimeFormatter%>"
4261 29 Apr 08 nicklas 333       />
2449 29 Jun 06 nicklas 334       <tbl:columndef
2449 29 Jun 06 nicklas 335         id="batches"
2449 29 Jun 06 nicklas 336         title="Batches"
4610 28 Oct 08 nicklas 337         property="&arrayBatches(name)"
4610 28 Oct 08 nicklas 338         datatype="string"
4610 28 Oct 08 nicklas 339         filterable="true"
4901 23 Apr 09 martin 340         exportable="true"
2449 29 Jun 06 nicklas 341       />
1820 24 Jan 06 nicklas 342       <tbl:columndef 
1820 24 Jan 06 nicklas 343         id="owner"
1820 24 Jan 06 nicklas 344         property="owner.name"
1820 24 Jan 06 nicklas 345         datatype="string"
1820 24 Jan 06 nicklas 346         title="Owner"
1820 24 Jan 06 nicklas 347         sortable="true" 
1820 24 Jan 06 nicklas 348         filterable="true"
1820 24 Jan 06 nicklas 349         exportable="true"
1820 24 Jan 06 nicklas 350       />
1820 24 Jan 06 nicklas 351       <tbl:columndef 
1820 24 Jan 06 nicklas 352         id="description"
1820 24 Jan 06 nicklas 353         property="description"
1820 24 Jan 06 nicklas 354         datatype="string"
1820 24 Jan 06 nicklas 355         title="Description" 
1820 24 Jan 06 nicklas 356         sortable="true" 
1820 24 Jan 06 nicklas 357         filterable="true" 
1820 24 Jan 06 nicklas 358         exportable="true"
2401 21 Jun 06 martin 359       />      
1820 24 Jan 06 nicklas 360       <%
6541 29 Sep 14 nicklas 361       for (AnnotationLoaderUtil loader : annotationLoaders)
1820 24 Jan 06 nicklas 362       {
6541 29 Sep 14 nicklas 363         AnnotationType at = loader.getAnnotationType();
7605 26 Feb 19 nicklas 364         Formatter<Object> formatter = FormatterFactory.getTypeFormatter(sc, at.getValueType());
1820 24 Jan 06 nicklas 365         Enumeration<String, String> annotationEnum = null;
1820 24 Jan 06 nicklas 366         if (at.isEnumeration())
1820 24 Jan 06 nicklas 367         {
1820 24 Jan 06 nicklas 368           annotationEnum = new Enumeration<String, String>();
6784 18 Mar 15 nicklas 369           if (!at.getDisplayAsList()) annotationEnum.add("", "-none-");
1820 24 Jan 06 nicklas 370           List<?> values = at.getValues();
1820 24 Jan 06 nicklas 371           for (Object value : values)
1820 24 Jan 06 nicklas 372           {
2942 22 Nov 06 nicklas 373             String encoded = formatter.format(value);
1820 24 Jan 06 nicklas 374             annotationEnum.add(encoded, encoded);
1820 24 Jan 06 nicklas 375           }
1820 24 Jan 06 nicklas 376         }
1820 24 Jan 06 nicklas 377         %>
1820 24 Jan 06 nicklas 378         <tbl:columndef 
6690 21 Jan 15 nicklas 379           id="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+at.getId()%>"
6690 21 Jan 15 nicklas 380           title="<%=HTML.encodeTags(at.getName())+(loader.isSearchingInheritedAnnotations() ? " [I]" : " [A]")%>" 
6690 21 Jan 15 nicklas 381           property="<%=(loader.isSearchingInheritedAnnotations() ? "##" : "#")+at.getId()%>"
1820 24 Jan 06 nicklas 382           annotation="true"
1820 24 Jan 06 nicklas 383           datatype="<%=at.getValueType().getStringValue()%>"
1820 24 Jan 06 nicklas 384           enumeration="<%=annotationEnum%>"
5674 27 Jun 11 nicklas 385           smartenum="<%=at.getDisplayAsList() %>"
6690 21 Jan 15 nicklas 386           sortable="<%=at.getMultiplicity() == 1 && !loader.isSearchingInheritedAnnotations()%>" 
1820 24 Jan 06 nicklas 387           filterable="true" 
1820 24 Jan 06 nicklas 388           exportable="true"
2942 22 Nov 06 nicklas 389           formatter="<%=formatter%>"
4560 06 Oct 08 nicklas 390           unit="<%=at.getDefaultUnit()%>"
1820 24 Jan 06 nicklas 391         />
1820 24 Jan 06 nicklas 392         <%
1820 24 Jan 06 nicklas 393       }
6843 09 Apr 15 nicklas 394       for (DataFileType ft : fileTypeColumns)
6843 09 Apr 15 nicklas 395       {
6843 09 Apr 15 nicklas 396         %>
6843 09 Apr 15 nicklas 397         <tbl:columndef
6843 09 Apr 15 nicklas 398           subclass="controlled-width"
6843 09 Apr 15 nicklas 399           id="<%="ft"+ft.getId()%>"
6843 09 Apr 15 nicklas 400           title="<%=HTML.encodeTags(ft.getName())+" [F]"%>"
6843 09 Apr 15 nicklas 401           property="<%="¤" + ft.getId()+"(file.name)"%>"
6843 09 Apr 15 nicklas 402           exportproperty="<%="¤" + ft.getId()+"(file.path)"%>"
6843 09 Apr 15 nicklas 403           datatype="string"
6843 09 Apr 15 nicklas 404           filterable="true"
6843 09 Apr 15 nicklas 405           sortable="false"
6843 09 Apr 15 nicklas 406           exportable="true"
7855 19 Oct 20 nicklas 407           formatter="<%=new DataFileFormatter(dc, ft, mode, fileViewer) %>"
6843 09 Apr 15 nicklas 408         />
6843 09 Apr 15 nicklas 409         <%
6843 09 Apr 15 nicklas 410       }
1820 24 Jan 06 nicklas 411       %>
2401 21 Jun 06 martin 412       <tbl:columndef
2401 21 Jun 06 martin 413         id="permission"
2401 21 Jun 06 martin 414         title="Permission"
2401 21 Jun 06 martin 415       />
5165 28 Oct 09 nicklas 416       <tbl:columndef
5165 28 Oct 09 nicklas 417         id="sharedTo"
3552 06 Jul 07 martin 418         title="Shared to"
5165 28 Oct 09 nicklas 419         filterable="true"
5165 28 Oct 09 nicklas 420         filterproperty="!sharedTo.name"
5165 28 Oct 09 nicklas 421         datatype="string"
3552 06 Jul 07 martin 422       />
6039 29 Mar 12 nicklas 423       <tbl:columndef 
6039 29 Mar 12 nicklas 424         id="xt-columns" 
6039 29 Mar 12 nicklas 425         extensions="<%=columnsInvoker%>" 
6039 29 Mar 12 nicklas 426         jspcontext="<%=jspContext%>" 
6039 29 Mar 12 nicklas 427       />
6604 18 Nov 14 nicklas 428       <div class="panelgroup bg-filled-50 bottomborder">
5954 13 Feb 12 nicklas 429         <tbl:toolbar
5954 13 Feb 12 nicklas 430           subclass="bottomborder"
5954 13 Feb 12 nicklas 431           visible="<%=mode.hasToolbar()%>"
5954 13 Feb 12 nicklas 432           >
5954 13 Feb 12 nicklas 433           <tbl:button 
6307 15 Aug 13 nicklas 434             id="btnNewItem"
5954 13 Feb 12 nicklas 435             disabled="<%=!createPermission%>" 
5954 13 Feb 12 nicklas 436             image="new.png" 
5954 13 Feb 12 nicklas 437             title="New&hellip;" 
5954 13 Feb 12 nicklas 438             tooltip="<%=createPermission ? "Create new array design" : "You do not have permission to create array designs"%>" 
5954 13 Feb 12 nicklas 439           />
5954 13 Feb 12 nicklas 440           <tbl:button 
6307 15 Aug 13 nicklas 441             id="btnDeleteItems"
5954 13 Feb 12 nicklas 442             image="delete.png"
5954 13 Feb 12 nicklas 443             title="Delete" 
5954 13 Feb 12 nicklas 444             tooltip="Delete the selected items" 
5954 13 Feb 12 nicklas 445           />
5954 13 Feb 12 nicklas 446           <tbl:button 
6307 15 Aug 13 nicklas 447             id="btnRestoreItems"
5954 13 Feb 12 nicklas 448             image="restore.png"
5954 13 Feb 12 nicklas 449             title="Restore" 
5954 13 Feb 12 nicklas 450             tooltip="Restore the selected (deleted) items"
5954 13 Feb 12 nicklas 451           />
5954 13 Feb 12 nicklas 452           <tbl:button 
6307 15 Aug 13 nicklas 453             id="btnShareItems"
5954 13 Feb 12 nicklas 454             image="share.png"
5954 13 Feb 12 nicklas 455             title="Share&hellip;" 
5954 13 Feb 12 nicklas 456             tooltip="Share the selected items"
5954 13 Feb 12 nicklas 457           />
5954 13 Feb 12 nicklas 458           <tbl:button 
6307 15 Aug 13 nicklas 459             id="btnSetOwner"
5954 13 Feb 12 nicklas 460             image="take_ownership.png"
5954 13 Feb 12 nicklas 461             title="Set owner&hellip;"
5954 13 Feb 12 nicklas 462             tooltip="Change owner of the selected items"
5954 13 Feb 12 nicklas 463           />
5954 13 Feb 12 nicklas 464           <tbl:button 
6307 15 Aug 13 nicklas 465             id="btnColumns"
5954 13 Feb 12 nicklas 466             image="columns.png" 
5954 13 Feb 12 nicklas 467             title="Columns&hellip;" 
5954 13 Feb 12 nicklas 468             tooltip="Show, hide and re-order columns" 
5954 13 Feb 12 nicklas 469           />
6695 28 Jan 15 nicklas 470           <tbl:button
6695 28 Jan 15 nicklas 471             id="btnInheritAnnotations"
6695 28 Jan 15 nicklas 472             image="inherit.png"
6695 28 Jan 15 nicklas 473             title="Inherit annotations&hellip;"
6695 28 Jan 15 nicklas 474             tooltip="Batch inherit annotations from parent items"
6695 28 Jan 15 nicklas 475           />
5954 13 Feb 12 nicklas 476           <tbl:button 
6307 15 Aug 13 nicklas 477             id="btnImport"
6307 15 Aug 13 nicklas 478             data-plugin-type="IMPORT"
5954 13 Feb 12 nicklas 479             image="import.png" 
5954 13 Feb 12 nicklas 480             title="Import&hellip;" 
5954 13 Feb 12 nicklas 481             tooltip="Import data" 
5954 13 Feb 12 nicklas 482             visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5954 13 Feb 12 nicklas 483           />
5954 13 Feb 12 nicklas 484           <tbl:button 
6307 15 Aug 13 nicklas 485             id="btnExport"
6307 15 Aug 13 nicklas 486             data-plugin-type="EXPORT"
5954 13 Feb 12 nicklas 487             image="export.png" 
5954 13 Feb 12 nicklas 488             title="Export&hellip;" 
5954 13 Feb 12 nicklas 489             tooltip="Export data" 
5954 13 Feb 12 nicklas 490             visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5954 13 Feb 12 nicklas 491           />
5954 13 Feb 12 nicklas 492           <tbl:button 
6307 15 Aug 13 nicklas 493             id="btnRunPlugin"
6307 15 Aug 13 nicklas 494             data-plugin-type="OTHER"
5954 13 Feb 12 nicklas 495             image="runplugin.png" 
5954 13 Feb 12 nicklas 496             title="Run plugin&hellip;" 
5954 13 Feb 12 nicklas 497             tooltip="Run a plugin" 
5954 13 Feb 12 nicklas 498             visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5954 13 Feb 12 nicklas 499           />
5954 13 Feb 12 nicklas 500           <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 501             wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5954 13 Feb 12 nicklas 502         </tbl:toolbar>
5954 13 Feb 12 nicklas 503         <tbl:panel>
6182 23 Oct 12 nicklas 504           <tbl:presetselector />
5954 13 Feb 12 nicklas 505           <tbl:navigator
5954 13 Feb 12 nicklas 506             page="<%=cc.getPage()%>" 
5954 13 Feb 12 nicklas 507             rowsperpage="<%=cc.getRowsPerPage()%>" 
5954 13 Feb 12 nicklas 508             totalrows="<%=designs == null ? 0 : designs.getTotalCount()%>" 
5954 13 Feb 12 nicklas 509             visible="<%=mode.hasNavigator()%>"
5954 13 Feb 12 nicklas 510           />
5954 13 Feb 12 nicklas 511         </tbl:panel>
5954 13 Feb 12 nicklas 512       </div>
1820 24 Jan 06 nicklas 513       <tbl:data>
5948 08 Feb 12 nicklas 514         <tbl:headers>
5948 08 Feb 12 nicklas 515           <tbl:headerrow>
7943 04 May 21 nicklas 516             <tbl:header clazz="row-index bg-filled-100" />
5948 08 Feb 12 nicklas 517             <tbl:columnheaders />
5948 08 Feb 12 nicklas 518           </tbl:headerrow>
6702 02 Feb 15 nicklas 519           <%
6702 02 Feb 15 nicklas 520           int numFilters = cc.getNumPropertyFilters();
6702 02 Feb 15 nicklas 521           int numRows = cc.getFilterRows();
6702 02 Feb 15 nicklas 522           for (int filterNo = 0; filterNo < numRows; filterNo++)
6702 02 Feb 15 nicklas 523           {
6702 02 Feb 15 nicklas 524             boolean lastRow = filterNo == numRows-1;
6702 02 Feb 15 nicklas 525             %>
6702 02 Feb 15 nicklas 526             <tbl:headerrow>
7943 04 May 21 nicklas 527               <tbl:header subclass="row-index bg-filled-100">
7943 04 May 21 nicklas 528                 <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 529                   <div class="index"></div>
7943 04 May 21 nicklas 530                   <div class="check">
7943 04 May 21 nicklas 531                     <base:icon 
7943 04 May 21 nicklas 532                       subclass="link table-check"
7943 04 May 21 nicklas 533                       image="check_uncheck.png" 
7943 04 May 21 nicklas 534                       tooltip="Toggle all (use CTRL, ALT or SHIFT to check/uncheck)" 
7943 04 May 21 nicklas 535                       visible="<%=lastRow && mode.hasCheck()%>"
7943 04 May 21 nicklas 536                     />
7943 04 May 21 nicklas 537                   </div>
7943 04 May 21 nicklas 538                   <div class="icons">
7943 04 May 21 nicklas 539                     <base:icon
7943 04 May 21 nicklas 540                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 541                       image="add.png"
7943 04 May 21 nicklas 542                       tooltip="Add extra filter row"
7943 04 May 21 nicklas 543                       visible="<%=lastRow%>"
7943 04 May 21 nicklas 544                     /><base:icon
7943 04 May 21 nicklas 545                       subclass="link table-filter-row-action"
7943 04 May 21 nicklas 546                       image="remove.png"
7943 04 May 21 nicklas 547                       tooltip="Remove this filter row"
7943 04 May 21 nicklas 548                       visible="<%=numRows > 1 || numFilters > 0 %>"
7943 04 May 21 nicklas 549                       data-remove-row="<%=filterNo%>"
7943 04 May 21 nicklas 550                     />
7943 04 May 21 nicklas 551                   </div>
7943 04 May 21 nicklas 552                 </div>
6702 02 Feb 15 nicklas 553               </tbl:header>
6702 02 Feb 15 nicklas 554               <tbl:propertyfilter row="<%=filterNo%>" />
6702 02 Feb 15 nicklas 555             </tbl:headerrow>
6702 02 Feb 15 nicklas 556             <%
6702 02 Feb 15 nicklas 557           }
6702 02 Feb 15 nicklas 558           %>
7913 22 Feb 21 nicklas 559           <tbl:columnsubtitles />
5948 08 Feb 12 nicklas 560         </tbl:headers>
5948 08 Feb 12 nicklas 561         <tbl:rows>
1820 24 Jan 06 nicklas 562           <%
5954 13 Feb 12 nicklas 563           if (cc.getMessage() != null)
5954 13 Feb 12 nicklas 564           {
5954 13 Feb 12 nicklas 565             %>
6604 18 Nov 14 nicklas 566             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 567               <div class="messagecontainer error"><%=cc.getMessage()%></div>
5954 13 Feb 12 nicklas 568             </tbl:panel>
5954 13 Feb 12 nicklas 569             <%
5954 13 Feb 12 nicklas 570             cc.setMessage(null);
5954 13 Feb 12 nicklas 571           }
1820 24 Jan 06 nicklas 572           int index = cc.getPage()*cc.getRowsPerPage();
1820 24 Jan 06 nicklas 573           int selectedItemId = cc.getId();
2029 20 Feb 06 nicklas 574           if (designs != null)
2503 09 Aug 06 martin 575           {            
2029 20 Feb 06 nicklas 576             while (designs.hasNext())
2029 20 Feb 06 nicklas 577             {
2029 20 Feb 06 nicklas 578               ArrayDesign item = designs.next();
4261 29 Apr 08 nicklas 579               Job job = null;
4261 29 Apr 08 nicklas 580               try
4261 29 Apr 08 nicklas 581               {
4261 29 Apr 08 nicklas 582                 job = item.getJob();
4261 29 Apr 08 nicklas 583               }
4261 29 Apr 08 nicklas 584               catch (Throwable t)
4261 29 Apr 08 nicklas 585               {}
2029 20 Feb 06 nicklas 586               int itemId = item.getId();
6221 10 Jan 13 nicklas 587               
6221 10 Jan 13 nicklas 588               
4003 26 Nov 07 nicklas 589               boolean deletePermission = item.hasPermission(Permission.DELETE);
2437 28 Jun 06 nicklas 590               boolean sharePermission = item.hasPermission(Permission.SET_PERMISSION);
2449 29 Jun 06 nicklas 591               boolean usePermission = item.hasPermission(Permission.USE);
2503 09 Aug 06 martin 592               boolean writePermission = item.hasPermission(Permission.WRITE);
2503 09 Aug 06 martin 593               String tooltip = mode.isSelectionMode() ? 
2503 09 Aug 06 martin 594                   "Select this item" : "View this item" + (writePermission ? " (use CTRL, ALT or SHIFT to edit)" : "");
2029 20 Feb 06 nicklas 595               String name = HTML.encodeTags(item.getName());
2029 20 Feb 06 nicklas 596               index++;
2029 20 Feb 06 nicklas 597               numListed++;
2029 20 Feb 06 nicklas 598               %>
2029 20 Feb 06 nicklas 599               <tbl:row>
7943 04 May 21 nicklas 600                 <tbl:header clazz="row-index bg-filled-100">
7943 04 May 21 nicklas 601                   <div class="index-<%=mode.getName()%>">
7943 04 May 21 nicklas 602                     <div class="index <%=index>999?"index-smaller":""%>"><%=index%></div>
7943 04 May 21 nicklas 603                     <div class="check">
7943 04 May 21 nicklas 604                       <base:input
7943 04 May 21 nicklas 605                         type="checkbox" 
7943 04 May 21 nicklas 606                         name="<%=itemId%>" 
7943 04 May 21 nicklas 607                         value="<%=itemId%>" 
7943 04 May 21 nicklas 608                         title="<%=name%>" 
7943 04 May 21 nicklas 609                         checked="<%=cc.getSelected().contains(itemId)%>"
7943 04 May 21 nicklas 610                         visible="<%=mode.hasCheck()%>"
7943 04 May 21 nicklas 611                       />
7943 04 May 21 nicklas 612                       <base:input 
7943 04 May 21 nicklas 613                         type="radio" 
7943 04 May 21 nicklas 614                         name="item_id" 
7943 04 May 21 nicklas 615                         value="<%=itemId%>" 
7943 04 May 21 nicklas 616                         title="<%=name%>" 
7943 04 May 21 nicklas 617                         checked="<%=selectedItemId == itemId%>"
7943 04 May 21 nicklas 618                         visible="<%=mode.hasRadio()%>"
7943 04 May 21 nicklas 619                       />
7943 04 May 21 nicklas 620                     </div>
7943 04 May 21 nicklas 621                     <div class="icons">
8026 15 Dec 21 nicklas 622                       <base:icon
8026 15 Dec 21 nicklas 623                         image="star.png"
8026 15 Dec 21 nicklas 624                         tooltip="This is a default item for the current project"
8026 15 Dec 21 nicklas 625                         visible="<%=activeProject != null && activeProject.isDefaultItem(item)%>" 
8026 15 Dec 21 nicklas 626                       />
7943 04 May 21 nicklas 627                       <base:icon 
7943 04 May 21 nicklas 628                         image="deleted.png"
7943 04 May 21 nicklas 629                         id="<%="delete."+itemId %>"
7943 04 May 21 nicklas 630                         subclass="<%=deletePermission ? "table-delete-item" : "disabled" %>"
7943 04 May 21 nicklas 631                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 632                         tooltip="This item has been scheduled for deletion" 
7943 04 May 21 nicklas 633                         visible="<%=item.isRemoved()%>"
7943 04 May 21 nicklas 634                       /><base:icon 
7943 04 May 21 nicklas 635                         image="shared.png" 
7943 04 May 21 nicklas 636                         id="<%="share."+itemId %>"
7943 04 May 21 nicklas 637                         subclass="<%=sharePermission ? "table-share-item" : "disabled" %>"
7943 04 May 21 nicklas 638                         data-item-id="<%=itemId%>"
7943 04 May 21 nicklas 639                         tooltip="This item is shared to other users, groups and/or projects" 
7943 04 May 21 nicklas 640                         visible="<%=item.isShared()%>"
7943 04 May 21 nicklas 641                       />
7943 04 May 21 nicklas 642                     </div>
7943 04 May 21 nicklas 643                   </div>
7943 04 May 21 nicklas 644                 </tbl:header>
6307 15 Aug 13 nicklas 645                 <tbl:cell column="name"><div
6307 15 Aug 13 nicklas 646                   class="link table-item"
6307 15 Aug 13 nicklas 647                   data-item-id="<%=itemId%>"
6307 15 Aug 13 nicklas 648                   data-no-edit="<%=writePermission ? 0 : 1 %>" 
6307 15 Aug 13 nicklas 649                   tabindex="0"
2449 29 Jun 06 nicklas 650                   title="<%=tooltip%>"><%=name%></div></tbl:cell>
4332 12 Jun 08 martin 651                 <tbl:cell column="id"><%=item.getId()%></tbl:cell>
4698 10 Dec 08 nicklas 652                 <tbl:cell column="entryDate" value="<%=item.getEntryDate()%>" />
3820 12 Oct 07 nicklas 653                 <tbl:cell column="platform"
3820 12 Oct 07 nicklas 654                   ><base:propertyvalue 
3820 12 Oct 07 nicklas 655                     item="<%=item%>" 
3820 12 Oct 07 nicklas 656                     property="platform"
3820 12 Oct 07 nicklas 657                     enableEditLink="<%=mode.hasEditLink()%>" 
3820 12 Oct 07 nicklas 658                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
3820 12 Oct 07 nicklas 659                   /></tbl:cell>
3820 12 Oct 07 nicklas 660                 <tbl:cell column="variant"
3820 12 Oct 07 nicklas 661                   ><base:propertyvalue 
3820 12 Oct 07 nicklas 662                     item="<%=item%>" 
3820 12 Oct 07 nicklas 663                     property="variant"
3820 12 Oct 07 nicklas 664                     enableEditLink="<%=mode.hasEditLink()%>" 
3820 12 Oct 07 nicklas 665                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
3820 12 Oct 07 nicklas 666                   /></tbl:cell>
3741 17 Sep 07 nicklas 667                 <tbl:cell column="hasFeatures"><%=item.hasFeatures() ? "yes" : "no"%></tbl:cell>
3820 12 Oct 07 nicklas 668                 <tbl:cell column="numDbFeatures"><%=item.getNumDbFeatures()%></tbl:cell>
3820 12 Oct 07 nicklas 669                 <tbl:cell column="numFileFeatures"><%=item.getNumFileFeatures()%></tbl:cell>
4093 18 Jan 08 enell 670                 <tbl:cell column="featureIdentificationMethod"><%=item.getFeatureIdentificationMethod()%></tbl:cell>
4131 08 Feb 08 nicklas 671                 <tbl:cell column="numArrays"><%=item.getNumArrays()%></tbl:cell>
4261 29 Apr 08 nicklas 672                 <tbl:cell column="plugin">
4261 29 Apr 08 nicklas 673                   <base:propertyvalue 
4261 29 Apr 08 nicklas 674                     item="<%=item%>"
4261 29 Apr 08 nicklas 675                     property="job.pluginDefinition" 
4261 29 Apr 08 nicklas 676                     enableEditLink="<%=mode.hasEditLink()%>" 
4261 29 Apr 08 nicklas 677                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
4261 29 Apr 08 nicklas 678                     />
4261 29 Apr 08 nicklas 679                 </tbl:cell>
4261 29 Apr 08 nicklas 680                 <tbl:cell column="configuration">
4261 29 Apr 08 nicklas 681                   <base:propertyvalue 
4261 29 Apr 08 nicklas 682                     item="<%=item%>"
4261 29 Apr 08 nicklas 683                     property="job.pluginConfiguration" 
4261 29 Apr 08 nicklas 684                     enableEditLink="<%=mode.hasEditLink()%>" 
4261 29 Apr 08 nicklas 685                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
4261 29 Apr 08 nicklas 686                   />
4261 29 Apr 08 nicklas 687                 </tbl:cell>
4261 29 Apr 08 nicklas 688                 <tbl:cell 
4261 29 Apr 08 nicklas 689                   column="importdate" 
4261 29 Apr 08 nicklas 690                   value="<%=job == null ? null : job.getEnded() %>" 
4261 29 Apr 08 nicklas 691                 />
2449 29 Jun 06 nicklas 692                 <tbl:cell column="batches">
2449 29 Jun 06 nicklas 693                   <%
2449 29 Jun 06 nicklas 694                   batchQuery.setParameter("arrayDesign", itemId, Type.INT);
2449 29 Jun 06 nicklas 695                   try
2449 29 Jun 06 nicklas 696                   {
2449 29 Jun 06 nicklas 697                     String separator = "";
2449 29 Jun 06 nicklas 698                     for (ArrayBatch ab : batchQuery.list(dc))
2449 29 Jun 06 nicklas 699                     {
2449 29 Jun 06 nicklas 700                       out.write(separator);
2449 29 Jun 06 nicklas 701                       if (mode.hasPropertyLink())
2449 29 Jun 06 nicklas 702                       {
2449 29 Jun 06 nicklas 703                         out.write(Base.getLinkedName(ID, ab, false, mode.hasEditLink()));
2449 29 Jun 06 nicklas 704                       }
2449 29 Jun 06 nicklas 705                       else
2449 29 Jun 06 nicklas 706                       {
2449 29 Jun 06 nicklas 707                         out.write(HTML.encodeTags(ab.getName()));
2449 29 Jun 06 nicklas 708                       }
2449 29 Jun 06 nicklas 709                       separator = ", ";
2449 29 Jun 06 nicklas 710                     }
2449 29 Jun 06 nicklas 711                   }
2449 29 Jun 06 nicklas 712                   catch (Throwable t)
2449 29 Jun 06 nicklas 713                   {
2449 29 Jun 06 nicklas 714                     %>
2449 29 Jun 06 nicklas 715                     <div class="error"><%=t.getMessage()%></div>
2449 29 Jun 06 nicklas 716                     <%
2449 29 Jun 06 nicklas 717                   }
2449 29 Jun 06 nicklas 718                   %>
2449 29 Jun 06 nicklas 719                   <base:icon
6307 15 Aug 13 nicklas 720                     subclass="link auto-init"
6307 15 Aug 13 nicklas 721                     data-auto-init="new-batch"
6307 15 Aug 13 nicklas 722                     data-item-id="<%=itemId %>"
2449 29 Jun 06 nicklas 723                     image="add.png" 
2449 29 Jun 06 nicklas 724                     tooltip="Create new batch" 
2449 29 Jun 06 nicklas 725                     visible="<%=mode.hasEditLink() && createBatchPermission && usePermission %>"
2449 29 Jun 06 nicklas 726                   />
2449 29 Jun 06 nicklas 727                 </tbl:cell>
2354 07 Jun 06 martin 728                 <tbl:cell column="owner"
2354 07 Jun 06 martin 729                   ><base:propertyvalue 
2354 07 Jun 06 martin 730                     item="<%=item%>" 
2354 07 Jun 06 martin 731                     property="owner"
2354 07 Jun 06 martin 732                     enableEditLink="<%=mode.hasEditLink()%>" 
2354 07 Jun 06 martin 733                     enablePropertyLink="<%=mode.hasPropertyLink()%>"
2354 07 Jun 06 martin 734                   /></tbl:cell>
2401 21 Jun 06 martin 735                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>                
2029 20 Feb 06 nicklas 736                 <%
6843 09 Apr 15 nicklas 737                 if (item.hasFileSet())
6843 09 Apr 15 nicklas 738                 {
6843 09 Apr 15 nicklas 739                   FileSet fileSet = item.getFileSet();
6843 09 Apr 15 nicklas 740                   for (DataFileType ft : fileTypeColumns)
6843 09 Apr 15 nicklas 741                   {
6843 09 Apr 15 nicklas 742                     %>
6843 09 Apr 15 nicklas 743                     <tbl:cell column="<%="ft"+ft.getId()%>" value="<%=fileSet%>" />
6843 09 Apr 15 nicklas 744                     <%
6843 09 Apr 15 nicklas 745                   }
6843 09 Apr 15 nicklas 746                 }
6541 29 Sep 14 nicklas 747                 if (item.isAnnotated())
2029 20 Feb 06 nicklas 748                 {
6541 29 Sep 14 nicklas 749                   AnnotationSetSnapshot snapshot = manager.getSnapshot(dc, item.getAnnotationSet().getId());
6541 29 Sep 14 nicklas 750                   for (AnnotationLoaderUtil loader : annotationLoaders)
2942 22 Nov 06 nicklas 751                   {
6721 10 Feb 15 nicklas 752                     %>
6721 10 Feb 15 nicklas 753                     <tbl:cell 
6721 10 Feb 15 nicklas 754                       column="<%=(loader.isSearchingInheritedAnnotations() ? "ia" : "at")+loader.getId()%>"
6721 10 Feb 15 nicklas 755                       ><%
7337 12 Apr 17 nicklas 756                       if (loader.find(snapshot, psInfo.reset())) 
6721 10 Feb 15 nicklas 757                       {
6721 10 Feb 15 nicklas 758                         %><tbl:cellvalue 
6541 29 Sep 14 nicklas 759                           list="<%=loader.getValues()%>"
8160 07 Jun 23 nicklas 760                           bulletlist="<%=loader.useBulletList() %>"
6541 29 Sep 14 nicklas 761                           suffix="<%=loader.getUnitSymbol()%>"
8083 20 Oct 22 nicklas 762                           clazz="<%=psInfo.hasProjectSpecificAnnotation() ? "ps-annotation" : null%>"
6721 10 Feb 15 nicklas 763                         /><%
6721 10 Feb 15 nicklas 764                       }
6721 10 Feb 15 nicklas 765                       %></tbl:cell>
6721 10 Feb 15 nicklas 766                     <%
2942 22 Nov 06 nicklas 767                   }
2029 20 Feb 06 nicklas 768                 }
2029 20 Feb 06 nicklas 769                 %>
2401 21 Jun 06 martin 770                 <tbl:cell column="permission"><%=PermissionUtil.getShortPermissions(item)%></tbl:cell>
3552 06 Jul 07 martin 771                 <tbl:cell column="sharedTo">
3552 06 Jul 07 martin 772                   <%
3552 06 Jul 07 martin 773                   Iterator<Nameable> sharees = ShareableUtil.getSharedTo(dc, item).iterator();
3552 06 Jul 07 martin 774                   while(sharees.hasNext())
3552 06 Jul 07 martin 775                   {
3552 06 Jul 07 martin 776                     Nameable n = sharees.next();
3552 06 Jul 07 martin 777                     if (mode.hasPropertyLink())
3552 06 Jul 07 martin 778                     {
3552 06 Jul 07 martin 779                       out.write(Base.getLinkedName(ID, n, false, mode.hasEditLink()));
3552 06 Jul 07 martin 780                     }
3552 06 Jul 07 martin 781                     else
3552 06 Jul 07 martin 782                     {
3552 06 Jul 07 martin 783                       out.write(HTML.encodeTags(n.getName()));
3552 06 Jul 07 martin 784                     }
3552 06 Jul 07 martin 785                     out.write(sharees.hasNext() ? ", " : "");
3552 06 Jul 07 martin 786                   }
3552 06 Jul 07 martin 787                   %>
3552 06 Jul 07 martin 788                 </tbl:cell>
6039 29 Mar 12 nicklas 789                 <tbl:xt-cells dc="<%=dc%>" item="<%=item%>">
6039 29 Mar 12 nicklas 790                   <tbl:cell column="xt-columns" />
6039 29 Mar 12 nicklas 791                 </tbl:xt-cells>
2029 20 Feb 06 nicklas 792               </tbl:row>
1820 24 Jan 06 nicklas 793               <%
1820 24 Jan 06 nicklas 794               }
1820 24 Jan 06 nicklas 795             }
5954 13 Feb 12 nicklas 796           if (numListed == 0)
5954 13 Feb 12 nicklas 797           {
5954 13 Feb 12 nicklas 798             %>
6604 18 Nov 14 nicklas 799             <tbl:panel subclass="bg-filled-50">
5954 13 Feb 12 nicklas 800               <div class="messagecontainer note">
5954 13 Feb 12 nicklas 801               <%=designs == null || designs.getTotalCount() == 0 ? "No array designs were found" : "No array designs on this page. Please select another page!" %>
5954 13 Feb 12 nicklas 802               </div>
5954 13 Feb 12 nicklas 803             </tbl:panel>
5954 13 Feb 12 nicklas 804             <%
5954 13 Feb 12 nicklas 805           }
1820 24 Jan 06 nicklas 806           %>
5954 13 Feb 12 nicklas 807         </tbl:rows>
1820 24 Jan 06 nicklas 808       </tbl:data>
1820 24 Jan 06 nicklas 809     </tbl:table>
5954 13 Feb 12 nicklas 810     </div>
5954 13 Feb 12 nicklas 811     
5951 09 Feb 12 nicklas 812     <base:buttongroup subclass="dialogbuttons">
6307 15 Aug 13 nicklas 813       <base:button id="btnOk" title="Ok" visible="<%=mode.hasOkButton()%>" />
6307 15 Aug 13 nicklas 814       <base:button id="close" title="Cancel" visible="<%=mode.hasCancelButton()%>" />
6307 15 Aug 13 nicklas 815       <base:button id="close" title="Close" visible="<%=mode.hasCloseButton()%>" />
1820 24 Jan 06 nicklas 816     </base:buttongroup>
5951 09 Feb 12 nicklas 817     
1820 24 Jan 06 nicklas 818   </base:body>
1820 24 Jan 06 nicklas 819   </base:page>
1820 24 Jan 06 nicklas 820   <%
1820 24 Jan 06 nicklas 821 }
1820 24 Jan 06 nicklas 822 finally
1820 24 Jan 06 nicklas 823 {
1820 24 Jan 06 nicklas 824   if (designs != null) designs.close();
1820 24 Jan 06 nicklas 825   if (dc != null) dc.close();
1820 24 Jan 06 nicklas 826 }
3675 16 Aug 07 jari 827 %>