www/lims/platemappings/view_mapping.jsp

Code
Comments
Other
Rev Date Author Line
1850 26 Jan 06 nicklas 1 <%-- $Id$
1850 26 Jan 06 nicklas 2   ------------------------------------------------------------------
5425 23 Sep 10 nicklas 3   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
3675 16 Aug 07 jari 4   Copyright (C) 2007 Martin Svensson
1850 26 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/
1850 26 Jan 06 nicklas 8
1850 26 Jan 06 nicklas 9   BASE is free software; you can redistribute it and/or
1850 26 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
1850 26 Jan 06 nicklas 12   of the License, or (at your option) any later version.
1850 26 Jan 06 nicklas 13
1850 26 Jan 06 nicklas 14   BASE is distributed in the hope that it will be useful,
1850 26 Jan 06 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
1850 26 Jan 06 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1850 26 Jan 06 nicklas 17   GNU General Public License for more details.
1850 26 Jan 06 nicklas 18
1850 26 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/>.
1850 26 Jan 06 nicklas 21   ------------------------------------------------------------------
1850 26 Jan 06 nicklas 22
1850 26 Jan 06 nicklas 23   @author Nicklas
1850 26 Jan 06 nicklas 24   @version 2.0
1850 26 Jan 06 nicklas 25 --%>
5426 24 Sep 10 nicklas 26 <%@ page pageEncoding="UTF-8" session="false"
1850 26 Jan 06 nicklas 27   import="net.sf.basedb.core.SessionControl"
1850 26 Jan 06 nicklas 28   import="net.sf.basedb.core.DbControl"
1850 26 Jan 06 nicklas 29   import="net.sf.basedb.core.SystemItems"
3547 03 Jul 07 martin 30   import="net.sf.basedb.core.Group"
1850 26 Jan 06 nicklas 31   import="net.sf.basedb.core.Item"
1850 26 Jan 06 nicklas 32   import="net.sf.basedb.core.ItemContext"
1850 26 Jan 06 nicklas 33   import="net.sf.basedb.core.Permission"
1850 26 Jan 06 nicklas 34   import="net.sf.basedb.core.PlateMapping"
1850 26 Jan 06 nicklas 35   import="net.sf.basedb.core.PlateGeometry"
1850 26 Jan 06 nicklas 36   import="net.sf.basedb.core.User"
1850 26 Jan 06 nicklas 37   import="net.sf.basedb.core.ItemQuery"
5044 11 Aug 09 martin 38   import="net.sf.basedb.core.Include"  
1850 26 Jan 06 nicklas 39   import="net.sf.basedb.core.ItemResultList"
3547 03 Jul 07 martin 40   import="net.sf.basedb.core.MultiPermissions"
1850 26 Jan 06 nicklas 41   import="net.sf.basedb.core.PermissionDeniedException"
1850 26 Jan 06 nicklas 42   import="net.sf.basedb.core.PluginDefinition"
1987 14 Feb 06 nicklas 43   import="net.sf.basedb.core.data.MappingCoordinate"
1850 26 Jan 06 nicklas 44   import="net.sf.basedb.core.plugin.GuiContext"
1850 26 Jan 06 nicklas 45   import="net.sf.basedb.core.plugin.Plugin"
3547 03 Jul 07 martin 46   import="net.sf.basedb.core.Project"
1850 26 Jan 06 nicklas 47   import="net.sf.basedb.core.query.Orders"
1850 26 Jan 06 nicklas 48   import="net.sf.basedb.core.query.Hql"
1850 26 Jan 06 nicklas 49   import="net.sf.basedb.clients.web.Base"
2386 15 Jun 06 martin 50   import="net.sf.basedb.clients.web.PermissionUtil"
1850 26 Jan 06 nicklas 51   import="net.sf.basedb.clients.web.util.HTML"
2753 20 Oct 06 nicklas 52   import="net.sf.basedb.util.Values"
4698 10 Dec 08 nicklas 53   import="net.sf.basedb.util.formatter.Formatter"
4698 10 Dec 08 nicklas 54   import="net.sf.basedb.clients.web.formatter.FormatterFactory"
4884 03 Apr 09 nicklas 55   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4884 03 Apr 09 nicklas 56   import="net.sf.basedb.clients.web.extensions.JspContext"
4884 03 Apr 09 nicklas 57   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 58   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4884 03 Apr 09 nicklas 59   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4884 03 Apr 09 nicklas 60   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
3547 03 Jul 07 martin 61   import="java.util.Collections"
1850 26 Jan 06 nicklas 62   import="java.util.Date"
1850 26 Jan 06 nicklas 63   import="java.util.Map"
1850 26 Jan 06 nicklas 64   import="java.util.Set"
1850 26 Jan 06 nicklas 65   import="java.util.List"
1850 26 Jan 06 nicklas 66 %>
1850 26 Jan 06 nicklas 67 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
1850 26 Jan 06 nicklas 68 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
1850 26 Jan 06 nicklas 69 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
1863 30 Jan 06 nicklas 70 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4884 03 Apr 09 nicklas 71 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
1850 26 Jan 06 nicklas 72 <%!
1850 26 Jan 06 nicklas 73   private static final Item itemType = Item.PLATEMAPPING;
1850 26 Jan 06 nicklas 74   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
1850 26 Jan 06 nicklas 75 %>
1850 26 Jan 06 nicklas 76 <%
1850 26 Jan 06 nicklas 77 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
1850 26 Jan 06 nicklas 78 final String ID = sc.getId();
1850 26 Jan 06 nicklas 79 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
1850 26 Jan 06 nicklas 80 final int itemId = cc.getId();
1850 26 Jan 06 nicklas 81 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 82 final DbControl dc = sc.newDbControl(":View "+itemType);
1850 26 Jan 06 nicklas 83 try
1850 26 Jan 06 nicklas 84 {
4698 10 Dec 08 nicklas 85   Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
1850 26 Jan 06 nicklas 86   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
1850 26 Jan 06 nicklas 87
1850 26 Jan 06 nicklas 88   String title = null;
1850 26 Jan 06 nicklas 89   PlateMapping mapping = PlateMapping.getById(dc, itemId);
1850 26 Jan 06 nicklas 90   PlateGeometry currentDestinationGeometry = null;
1850 26 Jan 06 nicklas 91   try
1850 26 Jan 06 nicklas 92   {
1850 26 Jan 06 nicklas 93     currentDestinationGeometry = mapping.getDestinationGeometry();
1850 26 Jan 06 nicklas 94   }
2449 29 Jun 06 nicklas 95   catch (Throwable t)
2449 29 Jun 06 nicklas 96   {}
1850 26 Jan 06 nicklas 97   
2449 29 Jun 06 nicklas 98   final boolean writePermission = mapping.hasPermission(Permission.WRITE);
2449 29 Jun 06 nicklas 99   final boolean deletePermission = mapping.hasPermission(Permission.DELETE);
2449 29 Jun 06 nicklas 100   final boolean sharePermission = mapping.hasPermission(Permission.SET_PERMISSION);
2919 15 Nov 06 nicklas 101   final boolean setOwnerPermission = mapping.hasPermission(Permission.SET_OWNER);
4003 26 Nov 07 nicklas 102   final boolean isRemoved = mapping.isRemoved();
4003 26 Nov 07 nicklas 103   final boolean isUsed = isRemoved && mapping.isUsed();
4003 26 Nov 07 nicklas 104   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
2919 15 Nov 06 nicklas 105   final boolean isOwner = mapping.isOwner();
4884 03 Apr 09 nicklas 106   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, mapping);
7604 25 Feb 19 nicklas 107   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
1850 26 Jan 06 nicklas 108   %>
6307 15 Aug 13 nicklas 109   <base:page title="<%=title%>" id="view-page">
6307 15 Aug 13 nicklas 110   <base:head scripts="table.js,tabcontrol-2.js,~mappings.js" styles="toolbar.css,table.css,headertabcontrol.css,path.css">
4884 03 Apr 09 nicklas 111     <ext:scripts context="<%=jspContext%>" />
4884 03 Apr 09 nicklas 112     <ext:stylesheets context="<%=jspContext%>" />
1850 26 Jan 06 nicklas 113   </base:head>
1850 26 Jan 06 nicklas 114   <base:body>
5945 02 Feb 12 nicklas 115     <p:path><p:pathelement
5945 02 Feb 12 nicklas 116       title="Plate mappings" href="<%="index.jsp?ID="+ID%>" 
5945 02 Feb 12 nicklas 117       /><p:pathelement title="<%=HTML.encodeTags(mapping.getName())%>"
5945 02 Feb 12 nicklas 118       /></p:path>
6307 15 Aug 13 nicklas 119     <div id="page-data" data-item-id="<%=itemId%>"></div>
1863 30 Jan 06 nicklas 120     
5945 02 Feb 12 nicklas 121     <t:tabcontrol 
5945 02 Feb 12 nicklas 122       id="main" 
5945 02 Feb 12 nicklas 123       subclass="content mastertabcontrol" 
5945 02 Feb 12 nicklas 124       active="properties">
1863 30 Jan 06 nicklas 125     <t:tab id="properties" title="Properties">
5945 02 Feb 12 nicklas 126       <div>
5945 02 Feb 12 nicklas 127       <table class="fullform bottomborder">
5945 02 Feb 12 nicklas 128       <tr>
5945 02 Feb 12 nicklas 129         <th class="itemstatus">
4003 26 Nov 07 nicklas 130           <base:icon 
5946 03 Feb 12 nicklas 131             image="shared.png" 
5945 02 Feb 12 nicklas 132             visible="<%=mapping.isShared()%>"
5945 02 Feb 12 nicklas 133             tooltip="This item is shared to other users, groups and/or projects"
5945 02 Feb 12 nicklas 134           />
5945 02 Feb 12 nicklas 135           <base:icon 
6307 15 Aug 13 nicklas 136             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 137             image="deleted.png"
5945 02 Feb 12 nicklas 138             tooltip="This item has been flagged for deletion. Click to delete it now."
5945 02 Feb 12 nicklas 139             enabled="<%=deletePermanentlyPermission %>"
5945 02 Feb 12 nicklas 140             visible="<%=isRemoved%>" 
5945 02 Feb 12 nicklas 141           />
6307 15 Aug 13 nicklas 142           <base:icon 
6307 15 Aug 13 nicklas 143             id="btnUsingItems"
6307 15 Aug 13 nicklas 144             image="used.png" 
5945 02 Feb 12 nicklas 145             tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
5945 02 Feb 12 nicklas 146             visible="<%=isRemoved && isUsed%>" />
5945 02 Feb 12 nicklas 147         </th>
5945 02 Feb 12 nicklas 148         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 149           <tbl:toolbar subclass="bottomborder bg-filled-50">
5945 02 Feb 12 nicklas 150             <tbl:button 
6307 15 Aug 13 nicklas 151               id="btnEdit"
5945 02 Feb 12 nicklas 152               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 153               image="edit.png" 
5945 02 Feb 12 nicklas 154               title="Edit&hellip;" 
5945 02 Feb 12 nicklas 155               tooltip="<%=writePermission ? "Edit this plate mapping" : "You do not have permission to edit this plate mapping"%>" 
5945 02 Feb 12 nicklas 156             />
5945 02 Feb 12 nicklas 157             <tbl:button 
6307 15 Aug 13 nicklas 158               id="btnDelete"
5945 02 Feb 12 nicklas 159               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 160               image="delete.png" 
5945 02 Feb 12 nicklas 161               title="Delete"
5945 02 Feb 12 nicklas 162               visible="<%=!mapping.isRemoved()%>"
5945 02 Feb 12 nicklas 163               tooltip="<%=deletePermission ? "Delete this plate mapping" : "You do not have permission to delete this plate mapping"%>" 
5945 02 Feb 12 nicklas 164             />
5945 02 Feb 12 nicklas 165             <tbl:button 
6307 15 Aug 13 nicklas 166               id="btnRestore"
5945 02 Feb 12 nicklas 167               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 168               image="restore.png" 
5945 02 Feb 12 nicklas 169               title="Restore"
5945 02 Feb 12 nicklas 170               visible="<%=mapping.isRemoved()%>"
5945 02 Feb 12 nicklas 171               tooltip="<%=writePermission ? "Restore this plate mapping" : "You do not have permission to restore this plate mapping"%>" 
5945 02 Feb 12 nicklas 172             />
5945 02 Feb 12 nicklas 173             <tbl:button 
6307 15 Aug 13 nicklas 174               id="btnShare"
5945 02 Feb 12 nicklas 175               disabled="<%=!sharePermission%>"
5945 02 Feb 12 nicklas 176               image="share.png"
5945 02 Feb 12 nicklas 177               title="Share&hellip;" 
5945 02 Feb 12 nicklas 178               tooltip="<%=sharePermission ? "Share this plate mapping to other user, groups and projects" : "You do not have permission to share this plate mapping"%>"
5945 02 Feb 12 nicklas 179             />
5945 02 Feb 12 nicklas 180             <tbl:button 
6307 15 Aug 13 nicklas 181               id="btnSetOwner"
5945 02 Feb 12 nicklas 182               disabled="<%=!setOwnerPermission%>"
5945 02 Feb 12 nicklas 183               image="take_ownership.png"
5945 02 Feb 12 nicklas 184               title="Set owner&hellip;"
5945 02 Feb 12 nicklas 185               tooltip="<%=setOwnerPermission ? "Change owner of this item" : "You do not have permission to change ownership of this item"%>"
5945 02 Feb 12 nicklas 186             />
5945 02 Feb 12 nicklas 187             <tbl:button 
6307 15 Aug 13 nicklas 188               id="btnImport"
5946 03 Feb 12 nicklas 189               image="import.png" 
6307 15 Aug 13 nicklas 190               data-plugin-type="IMPORT"  
5945 02 Feb 12 nicklas 191               title="Import&hellip;" 
5945 02 Feb 12 nicklas 192               tooltip="Import data" 
5945 02 Feb 12 nicklas 193               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5945 02 Feb 12 nicklas 194             />
5945 02 Feb 12 nicklas 195             <tbl:button 
6307 15 Aug 13 nicklas 196               id="btnExport"
6307 15 Aug 13 nicklas 197               image="export.png"
6307 15 Aug 13 nicklas 198               data-plugin-type="EXPORT" 
5945 02 Feb 12 nicklas 199               title="Export&hellip;" 
5945 02 Feb 12 nicklas 200               tooltip="Export data" 
5945 02 Feb 12 nicklas 201               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5945 02 Feb 12 nicklas 202             />
5945 02 Feb 12 nicklas 203             <tbl:button 
6307 15 Aug 13 nicklas 204               id="btnRunPlugin"
6307 15 Aug 13 nicklas 205               image="runplugin.png"  
6307 15 Aug 13 nicklas 206               data-plugin-type="OTHER" 
5945 02 Feb 12 nicklas 207               title="Run plugin&hellip;" 
5945 02 Feb 12 nicklas 208               tooltip="Run a plugin" 
5945 02 Feb 12 nicklas 209               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5945 02 Feb 12 nicklas 210             />
5945 02 Feb 12 nicklas 211             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 212               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5945 02 Feb 12 nicklas 213             <tbl:button
5945 02 Feb 12 nicklas 214               image="help.png"
6307 15 Aug 13 nicklas 215               subclass="auto-init"
6307 15 Aug 13 nicklas 216               data-auto-init="help"
6307 15 Aug 13 nicklas 217               data-help-id="platemapping.view.properties"
5945 02 Feb 12 nicklas 218               title="Help&hellip;"
5945 02 Feb 12 nicklas 219               tooltip="Get help about this page"
5945 02 Feb 12 nicklas 220             />
5945 02 Feb 12 nicklas 221           </tbl:toolbar>
5945 02 Feb 12 nicklas 222         </td>
5945 02 Feb 12 nicklas 223       </tr>
1850 26 Jan 06 nicklas 224       <tr>
5945 02 Feb 12 nicklas 225         <th>Name</th>
1850 26 Jan 06 nicklas 226         <td><%=HTML.encodeTags(mapping.getName())%></td>
1850 26 Jan 06 nicklas 227       </tr>
1850 26 Jan 06 nicklas 228       <tr>
5945 02 Feb 12 nicklas 229         <th>Registered</th>
4698 10 Dec 08 nicklas 230         <td><%=dateFormatter.format(mapping.getEntryDate())%></td>
4698 10 Dec 08 nicklas 231       </tr>
4698 10 Dec 08 nicklas 232       <tr>
5945 02 Feb 12 nicklas 233         <th>Source plates</th>
1850 26 Jan 06 nicklas 234         <td>
1850 26 Jan 06 nicklas 235           <%=mapping.getSourceCount()%> plate(s) of
2449 29 Jun 06 nicklas 236           <base:propertyvalue item="<%=mapping%>" property="sourceGeometry" />
1850 26 Jan 06 nicklas 237           <%
1850 26 Jan 06 nicklas 238           if (mapping.getImage() != null)
1850 26 Jan 06 nicklas 239           {
1850 26 Jan 06 nicklas 240             %>
6146 21 Sep 12 nicklas 241             <img id="mappingImage" src="../../images/platemappings/<%=mapping.getImage()%>" alt="">
1850 26 Jan 06 nicklas 242             <%
1850 26 Jan 06 nicklas 243           }
1850 26 Jan 06 nicklas 244           %>
1850 26 Jan 06 nicklas 245         </td>
1850 26 Jan 06 nicklas 246       </tr>
1850 26 Jan 06 nicklas 247       <tr>
5945 02 Feb 12 nicklas 248         <th>Destination plates</th>
2449 29 Jun 06 nicklas 249         <td>
2449 29 Jun 06 nicklas 250           <%=mapping.getDestinationCount()%> plate(s) of
2449 29 Jun 06 nicklas 251           <base:propertyvalue item="<%=mapping%>" property="destinationGeometry" />
2449 29 Jun 06 nicklas 252         </td>
2449 29 Jun 06 nicklas 253       </tr>
2449 29 Jun 06 nicklas 254       <tr>
5945 02 Feb 12 nicklas 255         <th>Owner</th>
2449 29 Jun 06 nicklas 256         <td><base:propertyvalue item="<%=mapping%>" property="owner" /></td>
1850 26 Jan 06 nicklas 257       </tr>
1850 26 Jan 06 nicklas 258       <tr>
5945 02 Feb 12 nicklas 259         <th>Permissions</th>
5945 02 Feb 12 nicklas 260         <td><%=PermissionUtil.getFullPermissionNames(mapping)%></td>
5945 02 Feb 12 nicklas 261       </tr>
5945 02 Feb 12 nicklas 262       <tr>
5945 02 Feb 12 nicklas 263         <th>Description</th>
1850 26 Jan 06 nicklas 264         <td><%=HTML.niceFormat(mapping.getDescription())%></td>
1850 26 Jan 06 nicklas 265       </tr>
1850 26 Jan 06 nicklas 266       </table>
5945 02 Feb 12 nicklas 267       </div>
5499 17 Nov 10 nicklas 268       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5499 17 Nov 10 nicklas 269         <jsp:param name="ID" value="<%=ID%>" />
5499 17 Nov 10 nicklas 270         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5499 17 Nov 10 nicklas 271         <jsp:param name="item_id" value="<%=itemId%>" />
5499 17 Nov 10 nicklas 272         <jsp:param name="title" value="Other items related to this mapping" />
5499 17 Nov 10 nicklas 273       </jsp:include>
5945 02 Feb 12 nicklas 274       <jsp:include page="../../common/share/list_share.jsp">
5945 02 Feb 12 nicklas 275         <jsp:param name="ID" value="<%=ID%>" />
5945 02 Feb 12 nicklas 276         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5945 02 Feb 12 nicklas 277         <jsp:param name="item_id" value="<%=itemId%>" />
5945 02 Feb 12 nicklas 278         <jsp:param name="title" value="Shared to" />
5945 02 Feb 12 nicklas 279       </jsp:include>
1863 30 Jan 06 nicklas 280       </t:tab>
1987 14 Feb 06 nicklas 281       
5945 02 Feb 12 nicklas 282       <t:tab id="details" title="Mapping details" 
5945 02 Feb 12 nicklas 283         clazz="white"
5945 02 Feb 12 nicklas 284         tooltip="How the coordinates in the destination plates are mapped to the source plates" >
1987 14 Feb 06 nicklas 285
1987 14 Feb 06 nicklas 286       <%
1987 14 Feb 06 nicklas 287       if (currentDestinationGeometry == null)
1987 14 Feb 06 nicklas 288       {
1987 14 Feb 06 nicklas 289         %>
5945 02 Feb 12 nicklas 290         <div class="messagecontainer note">
1987 14 Feb 06 nicklas 291         Details are not available
5945 02 Feb 12 nicklas 292         </div>
1987 14 Feb 06 nicklas 293         <%
1987 14 Feb 06 nicklas 294       }
1987 14 Feb 06 nicklas 295       else
1987 14 Feb 06 nicklas 296       {
1987 14 Feb 06 nicklas 297         %>
1987 14 Feb 06 nicklas 298         Coordinate = [ plate, row, column ]
1987 14 Feb 06 nicklas 299         <tbl:table
1987 14 Feb 06 nicklas 300           id="mapping"
1987 14 Feb 06 nicklas 301           columns="all"
1987 14 Feb 06 nicklas 302           style="width: 50%;"
1987 14 Feb 06 nicklas 303           >
1987 14 Feb 06 nicklas 304         <tbl:columndef 
1987 14 Feb 06 nicklas 305           id="destination"
1987 14 Feb 06 nicklas 306           title="Destination"
1987 14 Feb 06 nicklas 307         />
1987 14 Feb 06 nicklas 308         <tbl:columndef 
1987 14 Feb 06 nicklas 309           id="source"
1987 14 Feb 06 nicklas 310           title="Source"
1987 14 Feb 06 nicklas 311         />
1987 14 Feb 06 nicklas 312         <tbl:data>
5945 02 Feb 12 nicklas 313           <tbl:headers>
5945 02 Feb 12 nicklas 314             <tbl:headerrow>
5945 02 Feb 12 nicklas 315               <tbl:columnheaders />
5945 02 Feb 12 nicklas 316             </tbl:headerrow>
5945 02 Feb 12 nicklas 317           </tbl:headers>
1987 14 Feb 06 nicklas 318           <tbl:rows>
1987 14 Feb 06 nicklas 319           <%
1987 14 Feb 06 nicklas 320           for (int plate = 0; plate < mapping.getDestinationCount(); ++plate)
1987 14 Feb 06 nicklas 321           {
1987 14 Feb 06 nicklas 322             for (int row = 0; row < currentDestinationGeometry.getRows(); ++row)
1987 14 Feb 06 nicklas 323             {
1987 14 Feb 06 nicklas 324               for (int column = 0; column < currentDestinationGeometry.getColumns(); ++column)
1987 14 Feb 06 nicklas 325               {
1987 14 Feb 06 nicklas 326                 MappingCoordinate destination = new MappingCoordinate(plate, row, column);
1987 14 Feb 06 nicklas 327                 MappingCoordinate source = mapping.getSourceCoordinate(destination);
1987 14 Feb 06 nicklas 328                 %>
1987 14 Feb 06 nicklas 329                 <tbl:row>
1987 14 Feb 06 nicklas 330                   <tbl:cell column="destination">[ <%=plate%>, <%=row%>, <%=column%> ]</tbl:cell>
1987 14 Feb 06 nicklas 331                   <tbl:cell column="source"><%=source == null ? "<i>- not mapped -</i>" : 
1987 14 Feb 06 nicklas 332                     "[ "+source.getPlate()+", "+source.getRow()+", "+source.getColumn()+" ]"%></tbl:cell>
1987 14 Feb 06 nicklas 333                 </tbl:row>
1987 14 Feb 06 nicklas 334                 <%
1987 14 Feb 06 nicklas 335               }
1987 14 Feb 06 nicklas 336             }
1987 14 Feb 06 nicklas 337           }
1987 14 Feb 06 nicklas 338           %>
1987 14 Feb 06 nicklas 339           </tbl:rows>
1987 14 Feb 06 nicklas 340         </tbl:data>
1987 14 Feb 06 nicklas 341         </tbl:table>
1987 14 Feb 06 nicklas 342         <%
1987 14 Feb 06 nicklas 343       }
1987 14 Feb 06 nicklas 344       %>
1987 14 Feb 06 nicklas 345       </t:tab>
1863 30 Jan 06 nicklas 346       </t:tabcontrol>
1850 26 Jan 06 nicklas 347
1850 26 Jan 06 nicklas 348   </base:body>
1850 26 Jan 06 nicklas 349   </base:page>
1850 26 Jan 06 nicklas 350   <%
1850 26 Jan 06 nicklas 351 }
1850 26 Jan 06 nicklas 352 finally
1850 26 Jan 06 nicklas 353 {
1850 26 Jan 06 nicklas 354   if (dc != null) dc.close();
1850 26 Jan 06 nicklas 355 }
1850 26 Jan 06 nicklas 356
1850 26 Jan 06 nicklas 357 %>