www/admin/quantities/view_quantity.jsp

Code
Comments
Other
Rev Date Author Line
4543 22 Sep 08 nicklas 1 <%-- $Id$
4543 22 Sep 08 nicklas 2   ------------------------------------------------------------------
4889 06 Apr 09 nicklas 3   Copyright (C) 2006 Jari Häkkinen, Nicklas Nordborg, Martin Svensson
4543 22 Sep 08 nicklas 4
4543 22 Sep 08 nicklas 5   This file is part of BASE - BioArray Software Environment.
4543 22 Sep 08 nicklas 6   Available at http://base.thep.lu.se/
4543 22 Sep 08 nicklas 7
4543 22 Sep 08 nicklas 8   BASE is free software; you can redistribute it and/or
4543 22 Sep 08 nicklas 9   modify it under the terms of the GNU General Public License
4543 22 Sep 08 nicklas 10   as published by the Free Software Foundation; either version 3
4543 22 Sep 08 nicklas 11   of the License, or (at your option) any later version.
4543 22 Sep 08 nicklas 12
4543 22 Sep 08 nicklas 13   BASE is distributed in the hope that it will be useful,
4543 22 Sep 08 nicklas 14   but WITHOUT ANY WARRANTY; without even the implied warranty of
4543 22 Sep 08 nicklas 15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4543 22 Sep 08 nicklas 16   GNU General Public License for more details.
4543 22 Sep 08 nicklas 17
4543 22 Sep 08 nicklas 18   You should have received a copy of the GNU General Public License
4543 22 Sep 08 nicklas 19   along with BASE. If not, see <http://www.gnu.org/licenses/>.
4543 22 Sep 08 nicklas 20   ------------------------------------------------------------------
4543 22 Sep 08 nicklas 21
4543 22 Sep 08 nicklas 22   @author Nicklas
4543 22 Sep 08 nicklas 23   @version 2.0
4543 22 Sep 08 nicklas 24 --%>
5426 24 Sep 10 nicklas 25 <%@ page pageEncoding="UTF-8" session="false"
4543 22 Sep 08 nicklas 26   import="net.sf.basedb.core.SessionControl"
4543 22 Sep 08 nicklas 27   import="net.sf.basedb.core.DbControl"
4543 22 Sep 08 nicklas 28   import="net.sf.basedb.core.SystemItems"
4543 22 Sep 08 nicklas 29   import="net.sf.basedb.core.Item"
4543 22 Sep 08 nicklas 30   import="net.sf.basedb.core.Include"
4543 22 Sep 08 nicklas 31   import="net.sf.basedb.core.ItemContext"
4543 22 Sep 08 nicklas 32   import="net.sf.basedb.core.Permission"
4543 22 Sep 08 nicklas 33   import="net.sf.basedb.core.Quantity"
4543 22 Sep 08 nicklas 34   import="net.sf.basedb.core.Unit"
4543 22 Sep 08 nicklas 35   import="net.sf.basedb.core.ItemQuery"
4543 22 Sep 08 nicklas 36   import="net.sf.basedb.core.ItemResultList"
4543 22 Sep 08 nicklas 37   import="net.sf.basedb.core.PermissionDeniedException"
4543 22 Sep 08 nicklas 38   import="net.sf.basedb.core.PluginDefinition"
4543 22 Sep 08 nicklas 39   import="net.sf.basedb.core.plugin.GuiContext"
4543 22 Sep 08 nicklas 40   import="net.sf.basedb.core.plugin.Plugin"
4543 22 Sep 08 nicklas 41   import="net.sf.basedb.core.query.Orders"
4543 22 Sep 08 nicklas 42   import="net.sf.basedb.core.query.Hql"
4543 22 Sep 08 nicklas 43   import="net.sf.basedb.clients.web.Base"
4543 22 Sep 08 nicklas 44   import="net.sf.basedb.clients.web.PermissionUtil"
4543 22 Sep 08 nicklas 45   import="net.sf.basedb.clients.web.util.HTML"
4543 22 Sep 08 nicklas 46   import="net.sf.basedb.util.Values"
4886 03 Apr 09 nicklas 47   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4886 03 Apr 09 nicklas 48   import="net.sf.basedb.clients.web.extensions.JspContext"
4886 03 Apr 09 nicklas 49   import="net.sf.basedb.clients.web.extensions.renderer.PrefixSuffixRenderer"
7604 25 Feb 19 nicklas 50   import="net.sf.basedb.clients.web.extensions.toolbar.ButtonAction" 
4886 03 Apr 09 nicklas 51   import="net.sf.basedb.clients.web.extensions.toolbar.ToolbarUtil"
4886 03 Apr 09 nicklas 52   import="net.sf.basedb.util.extensions.ExtensionsInvoker"
4543 22 Sep 08 nicklas 53   import="java.util.Map"
4543 22 Sep 08 nicklas 54   import="java.util.Set"
4543 22 Sep 08 nicklas 55 %>
4543 22 Sep 08 nicklas 56 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
4543 22 Sep 08 nicklas 57 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
4543 22 Sep 08 nicklas 58 <%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
4543 22 Sep 08 nicklas 59 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
4886 03 Apr 09 nicklas 60 <%@ taglib prefix="ext" uri="/WEB-INF/extensions.tld" %>
4543 22 Sep 08 nicklas 61 <%!
4543 22 Sep 08 nicklas 62   private static final Item itemType = Item.QUANTITY;
4543 22 Sep 08 nicklas 63   private static final GuiContext guiContext = new GuiContext(itemType, GuiContext.Type.ITEM);
4543 22 Sep 08 nicklas 64 %>
4543 22 Sep 08 nicklas 65 <%
4543 22 Sep 08 nicklas 66 final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
4543 22 Sep 08 nicklas 67 final String ID = sc.getId();
4543 22 Sep 08 nicklas 68 final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
4543 22 Sep 08 nicklas 69 final int itemId = cc.getId();
6289 05 Jun 13 nicklas 70 final String tab = Values.getStringOrNull(request.getParameter("tab"));
4543 22 Sep 08 nicklas 71 final float scale = Base.getScale(sc);
7954 12 May 21 nicklas 72 final DbControl dc = sc.newDbControl(":View "+itemType);
4543 22 Sep 08 nicklas 73 try
4543 22 Sep 08 nicklas 74 {
4543 22 Sep 08 nicklas 75   Map<Plugin.MainType, Integer> pluginCount = PluginDefinition.countPlugins(dc, guiContext);
4543 22 Sep 08 nicklas 76
4543 22 Sep 08 nicklas 77   String title = null;
4543 22 Sep 08 nicklas 78   Quantity quantity = Quantity.getById(dc, itemId);
4543 22 Sep 08 nicklas 79   
4543 22 Sep 08 nicklas 80   final boolean usePermission = quantity.hasPermission(Permission.USE);
4543 22 Sep 08 nicklas 81   final boolean writePermission = quantity.hasPermission(Permission.WRITE);
4543 22 Sep 08 nicklas 82   final boolean deletePermission = quantity.hasPermission(Permission.DELETE);
4543 22 Sep 08 nicklas 83   final boolean isRemoved = quantity.isRemoved();
4543 22 Sep 08 nicklas 84   final boolean isUsed = isRemoved && quantity.isUsed();
4543 22 Sep 08 nicklas 85   final boolean deletePermanentlyPermission = deletePermission && !isUsed;
4886 03 Apr 09 nicklas 86   JspContext jspContext = ExtensionsControl.createContext(dc, pageContext, guiContext, quantity);
7604 25 Feb 19 nicklas 87   ExtensionsInvoker<ButtonAction> invoker = ToolbarUtil.useExtensions(jspContext);
4543 22 Sep 08 nicklas 88   %>
6289 05 Jun 13 nicklas 89   <base:page title="<%=title%>" id="view-page">
6289 05 Jun 13 nicklas 90   <base:head scripts="tabcontrol-2.js,~quantities.js" styles="toolbar.css,headertabcontrol.css,path.css,table.css">
4886 03 Apr 09 nicklas 91     <ext:scripts context="<%=jspContext%>" />
4886 03 Apr 09 nicklas 92     <ext:stylesheets context="<%=jspContext%>" />
4543 22 Sep 08 nicklas 93   </base:head>
4543 22 Sep 08 nicklas 94   <base:body>
5941 01 Feb 12 nicklas 95     <p:path><p:pathelement 
5941 01 Feb 12 nicklas 96       title="Quantities" href="<%="index.jsp?ID="+ID%>" 
5941 01 Feb 12 nicklas 97       /><p:pathelement title="<%=HTML.encodeTags(quantity.getName())%>" 
5941 01 Feb 12 nicklas 98       /></p:path>
6289 05 Jun 13 nicklas 99     <div id="page-data" data-item-id="<%=itemId%>"></div>
4543 22 Sep 08 nicklas 100     
5941 01 Feb 12 nicklas 101     <t:tabcontrol 
5941 01 Feb 12 nicklas 102       id="main" 
5941 01 Feb 12 nicklas 103       subclass="content mastertabcontrol" 
6289 05 Jun 13 nicklas 104       active="<%=tab%>">
4543 22 Sep 08 nicklas 105     <t:tab id="properties" title="Properties">
5941 01 Feb 12 nicklas 106       <div>
5941 01 Feb 12 nicklas 107       <table class="fullform bottomborder">
5941 01 Feb 12 nicklas 108       <tr>
5941 01 Feb 12 nicklas 109         <th class="itemstatus">
4543 22 Sep 08 nicklas 110           <base:icon 
6289 05 Jun 13 nicklas 111             id="btnDeletePermanently"
5946 03 Feb 12 nicklas 112             image="deleted.png"
5941 01 Feb 12 nicklas 113             tooltip="This item has been flagged for deletion. Click to delete it now."
5941 01 Feb 12 nicklas 114             enabled="<%=deletePermanentlyPermission %>"
5941 01 Feb 12 nicklas 115             visible="<%=isRemoved%>" 
5941 01 Feb 12 nicklas 116           />
6289 05 Jun 13 nicklas 117           <base:icon
6289 05 Jun 13 nicklas 118             id="btnUsingItems"
6289 05 Jun 13 nicklas 119             image="used.png" 
5941 01 Feb 12 nicklas 120             tooltip="This item is used by other items and can't be permanently deleted. Show the items that are using this one"
5941 01 Feb 12 nicklas 121             visible="<%=isRemoved && isUsed%>" />
5941 01 Feb 12 nicklas 122         </th>
5941 01 Feb 12 nicklas 123         <td style="padding: 0px;">
6605 18 Nov 14 nicklas 124           <tbl:toolbar subclass="bottomborder bg-filled-50">
5941 01 Feb 12 nicklas 125             <tbl:button 
6289 05 Jun 13 nicklas 126               id="btnEdit"
5942 01 Feb 12 nicklas 127               disabled="<%=!writePermission%>" 
5945 02 Feb 12 nicklas 128               image="edit.png" 
5941 01 Feb 12 nicklas 129               title="Edit&hellip;" 
5941 01 Feb 12 nicklas 130               tooltip="<%=writePermission ? "Edit this quantity" : "You do not have permission to edit this quantity"%>" 
5941 01 Feb 12 nicklas 131             />
5941 01 Feb 12 nicklas 132             <tbl:button 
6289 05 Jun 13 nicklas 133               id="btnDelete"
5942 01 Feb 12 nicklas 134               disabled="<%=!deletePermission%>" 
5946 03 Feb 12 nicklas 135               image="delete.png" 
5941 01 Feb 12 nicklas 136               title="Delete"
5941 01 Feb 12 nicklas 137               visible="<%=!quantity.isRemoved()%>"
5941 01 Feb 12 nicklas 138               tooltip="<%=deletePermission ? "Delete this quantity" : "You do not have permission to delete this quantity"%>" 
5941 01 Feb 12 nicklas 139             />
5941 01 Feb 12 nicklas 140             <tbl:button 
6289 05 Jun 13 nicklas 141               id="btnRestore"
5942 01 Feb 12 nicklas 142               disabled="<%=!writePermission%>" 
5946 03 Feb 12 nicklas 143               image="restore.png" 
5941 01 Feb 12 nicklas 144               title="Restore"
5941 01 Feb 12 nicklas 145               visible="<%=quantity.isRemoved()%>"
5941 01 Feb 12 nicklas 146               tooltip="<%=writePermission ? "Restore this quantity" : "You do not have permission to restore this quantity"%>" 
5941 01 Feb 12 nicklas 147             />
5941 01 Feb 12 nicklas 148             <tbl:button
6289 05 Jun 13 nicklas 149               id="btnNewUnit"
5941 01 Feb 12 nicklas 150               image="add.png"
5941 01 Feb 12 nicklas 151               title="New unit&hellip;"
5941 01 Feb 12 nicklas 152               tooltip="Create a new unit for this quantity"
5941 01 Feb 12 nicklas 153               visible="<%=sc.hasPermission(Permission.CREATE, Item.UNIT) && usePermission%>"
5941 01 Feb 12 nicklas 154             />
5941 01 Feb 12 nicklas 155             <tbl:button 
6289 05 Jun 13 nicklas 156               id="btnImport"
5946 03 Feb 12 nicklas 157               image="import.png" 
6289 05 Jun 13 nicklas 158               data-plugin-type="IMPORT"  
5941 01 Feb 12 nicklas 159               title="Import&hellip;" 
5941 01 Feb 12 nicklas 160               tooltip="Import data" 
5941 01 Feb 12 nicklas 161               visible="<%=pluginCount.containsKey(Plugin.MainType.IMPORT)%>"
5941 01 Feb 12 nicklas 162             />
5941 01 Feb 12 nicklas 163             <tbl:button 
6289 05 Jun 13 nicklas 164               id="btnExport"
6289 05 Jun 13 nicklas 165               image="export.png"
6289 05 Jun 13 nicklas 166               data-plugin-type="EXPORT" 
5941 01 Feb 12 nicklas 167               title="Export&hellip;" 
5941 01 Feb 12 nicklas 168               tooltip="Export data" 
5941 01 Feb 12 nicklas 169               visible="<%=pluginCount.containsKey(Plugin.MainType.EXPORT)%>"
5941 01 Feb 12 nicklas 170             />
5941 01 Feb 12 nicklas 171             <tbl:button 
6289 05 Jun 13 nicklas 172               id="btnRunPlugin"
6289 05 Jun 13 nicklas 173               image="runplugin.png"  
6289 05 Jun 13 nicklas 174               data-plugin-type="OTHER" 
5941 01 Feb 12 nicklas 175               title="Run plugin&hellip;" 
5941 01 Feb 12 nicklas 176               tooltip="Run a plugin" 
5941 01 Feb 12 nicklas 177               visible="<%=pluginCount.containsKey(Plugin.MainType.OTHER)%>"
5941 01 Feb 12 nicklas 178             />
5941 01 Feb 12 nicklas 179             <ext:render extensions="<%=invoker%>" context="<%=jspContext%>" 
7604 25 Feb 19 nicklas 180               wrapper="<%=new PrefixSuffixRenderer<ButtonAction>(jspContext, "<td>", "</td>") %>"/>
5941 01 Feb 12 nicklas 181             <tbl:button
5941 01 Feb 12 nicklas 182               image="help.png"
6289 05 Jun 13 nicklas 183               subclass="auto-init"
6289 05 Jun 13 nicklas 184               data-auto-init="help"
6289 05 Jun 13 nicklas 185               data-help-id="quantity.view.properties"
5941 01 Feb 12 nicklas 186               title="Help&hellip;"
5941 01 Feb 12 nicklas 187               tooltip="Get help about this page"
5941 01 Feb 12 nicklas 188             />
5941 01 Feb 12 nicklas 189           </tbl:toolbar>
5941 01 Feb 12 nicklas 190         </td>
5941 01 Feb 12 nicklas 191       </tr>
4543 22 Sep 08 nicklas 192       <tr>
5941 01 Feb 12 nicklas 193         <th>Quantity</th>
4543 22 Sep 08 nicklas 194         <td><%=HTML.encodeTags(quantity.getName())%></td>
4543 22 Sep 08 nicklas 195       </tr>
4543 22 Sep 08 nicklas 196       <tr>
5941 01 Feb 12 nicklas 197         <th>System ID</th>
4543 22 Sep 08 nicklas 198         <td><%=HTML.encodeTags(quantity.getSystemId())%></td>
4543 22 Sep 08 nicklas 199       </tr>
4543 22 Sep 08 nicklas 200       <tr>
5941 01 Feb 12 nicklas 201         <th>Reference unit</th>
4543 22 Sep 08 nicklas 202         <td><%=HTML.encodeTags(quantity.getReferenceUnit())%></td>
4543 22 Sep 08 nicklas 203       </tr>
4543 22 Sep 08 nicklas 204       <tr>
5941 01 Feb 12 nicklas 205         <th>Permissions</th>
5941 01 Feb 12 nicklas 206         <td><%=PermissionUtil.getFullPermissionNames(quantity)%></td>
5941 01 Feb 12 nicklas 207       </tr>
5941 01 Feb 12 nicklas 208       <tr>
5941 01 Feb 12 nicklas 209         <th>Description</th>
4543 22 Sep 08 nicklas 210         <td><%=HTML.niceFormat(quantity.getDescription())%></td>
4543 22 Sep 08 nicklas 211       </tr>
4543 22 Sep 08 nicklas 212       </table>
5941 01 Feb 12 nicklas 213       </div>
4543 22 Sep 08 nicklas 214       <%
4543 22 Sep 08 nicklas 215       ItemQuery<Unit> unitQuery = quantity.getUnits();
4547 26 Sep 08 nicklas 216       unitQuery.join(Hql.leftJoin(null, "symbols", "sym", null, true));
4543 22 Sep 08 nicklas 217       unitQuery.include(Include.ALL);
4547 26 Sep 08 nicklas 218       unitQuery.order(Orders.desc(Hql.property("referenceFactor")));
4543 22 Sep 08 nicklas 219       unitQuery.order(Orders.asc(Hql.property("name")));
4543 22 Sep 08 nicklas 220       ItemResultList<Unit> units = unitQuery.list(dc);
5941 01 Feb 12 nicklas 221       %>
5941 01 Feb 12 nicklas 222       <base:section 
5941 01 Feb 12 nicklas 223         id="units" 
5941 01 Feb 12 nicklas 224         title="<%="Units (" + units.size() + ")"%>" 
5941 01 Feb 12 nicklas 225         context="<%=cc%>"
5042 11 Aug 09 martin 226         >
5941 01 Feb 12 nicklas 227         <%        
5941 01 Feb 12 nicklas 228         if (units.size() == 0)
5941 01 Feb 12 nicklas 229         {
5941 01 Feb 12 nicklas 230           %>
5941 01 Feb 12 nicklas 231           <div class="messagecontainer note">
5941 01 Feb 12 nicklas 232           No units for this quantity exists
5941 01 Feb 12 nicklas 233           (or, you don't have permission to view them).
5941 01 Feb 12 nicklas 234           </div>
5941 01 Feb 12 nicklas 235           <%
5941 01 Feb 12 nicklas 236         }
5941 01 Feb 12 nicklas 237         else
5941 01 Feb 12 nicklas 238         {
5941 01 Feb 12 nicklas 239           %>
5042 11 Aug 09 martin 240           <tbl:table
6149 25 Sep 12 nicklas 241             id="tbl.units"
5042 11 Aug 09 martin 242             columns="all"
5042 11 Aug 09 martin 243             >
5042 11 Aug 09 martin 244           <tbl:columndef 
5042 11 Aug 09 martin 245             id="name"
5042 11 Aug 09 martin 246             title="Name"
5042 11 Aug 09 martin 247           />
5042 11 Aug 09 martin 248           <tbl:columndef 
5042 11 Aug 09 martin 249             id="symbols"
5042 11 Aug 09 martin 250             title="Symbols"
5042 11 Aug 09 martin 251           />
5042 11 Aug 09 martin 252           <tbl:columndef 
5042 11 Aug 09 martin 253             id="formula"
5042 11 Aug 09 martin 254             title="Conversion formula"
5042 11 Aug 09 martin 255           />
5042 11 Aug 09 martin 256           <tbl:columndef 
5042 11 Aug 09 martin 257             id="description"
5042 11 Aug 09 martin 258             title="Description"
5042 11 Aug 09 martin 259           />
5042 11 Aug 09 martin 260           <tbl:data>
5941 01 Feb 12 nicklas 261             <tbl:headers>
5941 01 Feb 12 nicklas 262               <tbl:headerrow>
5941 01 Feb 12 nicklas 263                 <tbl:columnheaders />
5941 01 Feb 12 nicklas 264               </tbl:headerrow>
5941 01 Feb 12 nicklas 265             </tbl:headers>
5042 11 Aug 09 martin 266             <tbl:rows>
5042 11 Aug 09 martin 267             <%
5042 11 Aug 09 martin 268             for (Unit item : units)
4543 22 Sep 08 nicklas 269             {
5042 11 Aug 09 martin 270               StringBuilder formula = new StringBuilder();
5042 11 Aug 09 martin 271               formula.append("1&nbsp;").append(item.getDisplaySymbol()).append(" = ");
5042 11 Aug 09 martin 272               if (item.getReferenceFactor() != 1.0)
5042 11 Aug 09 martin 273               {
5042 11 Aug 09 martin 274                 formula.append(item.getReferenceFactor()).append(" × ");
5042 11 Aug 09 martin 275               }
5042 11 Aug 09 martin 276               formula.append(quantity.getReferenceUnit());
5042 11 Aug 09 martin 277               if (item.getReferenceOffset() != 0.0)
5042 11 Aug 09 martin 278               {
5042 11 Aug 09 martin 279                 formula.append(" + ").append(item.getReferenceOffset());
5042 11 Aug 09 martin 280               }
5042 11 Aug 09 martin 281               Set<String> symbols = item.getSymbols();
5042 11 Aug 09 martin 282               symbols.remove(item.getDisplaySymbol());
5042 11 Aug 09 martin 283               symbols.add("<b>" + item.getDisplaySymbol() + "</b>");
5042 11 Aug 09 martin 284               %>
5042 11 Aug 09 martin 285               <tbl:row>
5042 11 Aug 09 martin 286                 <tbl:cell column="name"><base:icon 
5946 03 Feb 12 nicklas 287                     image="deleted.png" 
5042 11 Aug 09 martin 288                     tooltip="This item has been scheduled for deletion" 
5042 11 Aug 09 martin 289                     visible="<%=item.isRemoved()%>"
5042 11 Aug 09 martin 290                   /><%=Base.getLinkedName(ID, item, false, true)%></tbl:cell>
5042 11 Aug 09 martin 291                 <tbl:cell column="symbols"><%=Values.getString(symbols, ", ", true) %></tbl:cell>
5042 11 Aug 09 martin 292                 <tbl:cell column="formula"><%=formula.toString()%></tbl:cell>
5042 11 Aug 09 martin 293                 <tbl:cell column="description"><%=HTML.encodeTags(item.getDescription())%></tbl:cell>
5042 11 Aug 09 martin 294               </tbl:row>
5042 11 Aug 09 martin 295               <%
4543 22 Sep 08 nicklas 296             }
4543 22 Sep 08 nicklas 297             %>
5042 11 Aug 09 martin 298             </tbl:rows>
5042 11 Aug 09 martin 299           </tbl:data>
5042 11 Aug 09 martin 300           </tbl:table>
4543 22 Sep 08 nicklas 301         <%
4543 22 Sep 08 nicklas 302       }
4543 22 Sep 08 nicklas 303       %>
5941 01 Feb 12 nicklas 304       </base:section>
5511 19 Nov 10 nicklas 305       <jsp:include page="../../common/anytoany/list_anytoany.jsp">
5511 19 Nov 10 nicklas 306         <jsp:param name="ID" value="<%=ID%>" />
5511 19 Nov 10 nicklas 307         <jsp:param name="item_type" value="<%=itemType.name()%>" />
5511 19 Nov 10 nicklas 308         <jsp:param name="item_id" value="<%=itemId%>" />
5511 19 Nov 10 nicklas 309         <jsp:param name="title" value="Other items related to this quantity" />
5511 19 Nov 10 nicklas 310       </jsp:include>
4543 22 Sep 08 nicklas 311
4543 22 Sep 08 nicklas 312     </t:tab>
4543 22 Sep 08 nicklas 313     </t:tabcontrol>
4543 22 Sep 08 nicklas 314
4543 22 Sep 08 nicklas 315   </base:body>
4543 22 Sep 08 nicklas 316   </base:page>
4543 22 Sep 08 nicklas 317   <%
4543 22 Sep 08 nicklas 318 }
4543 22 Sep 08 nicklas 319 finally
4543 22 Sep 08 nicklas 320 {
4543 22 Sep 08 nicklas 321   if (dc != null) dc.close();
4543 22 Sep 08 nicklas 322 }
4543 22 Sep 08 nicklas 323
4543 22 Sep 08 nicklas 324 %>