📄 itemtag.java
字号:
{ out .print("<tr><td headers=\"s1\"class=\"metadataFieldLabel\">"); out.print(values[i].schema); out.print("." + values[i].element); if (values[i].qualifier != null) { out.print("." + values[i].qualifier); } out .print("</td><td headers=\"s2\" class=\"metadataFieldValue\">"); out.print(Utils.addEntities(values[i].value)); out .print("</td><td headers=\"s3\" class=\"metadataFieldValue\">"); if (values[i].language == null) { out.print("-"); } else { out.print(values[i].language); } out.println("</td></tr>"); } } listCollections(); out.println("</table></center><br/>"); listBitstreams(); if (ConfigurationManager .getBooleanProperty("webui.licence_bundle.show")) { out.println("<br/><br/>"); showLicence(); } } /** * List links to collections if information is available */ private void listCollections() throws IOException { JspWriter out = pageContext.getOut(); HttpServletRequest request = (HttpServletRequest) pageContext .getRequest(); if (collections != null) { out.print("<tr><td class=\"metadataFieldLabel\">" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.appears") + "</td><td class=\"metadataFieldValue\">"); for (int i = 0; i < collections.length; i++) { out.print("<a href=\""); out.print(request.getContextPath()); out.print("/handle/"); out.print(collections[i].getHandle()); out.print("\">"); out.print(collections[i].getMetadata("name")); out.print("</a><br/>"); } out.println("</td></tr>"); } } /** * List bitstreams in the item */ private void listBitstreams() throws IOException { JspWriter out = pageContext.getOut(); HttpServletRequest request = (HttpServletRequest) pageContext .getRequest(); out.print("<table align=\"center\" class=\"miscTable\"><tr>"); out.println("<td class=\"evenRowEvenCol\"><p><strong>" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.files") + "</strong></p>"); try { Bundle[] bundles = item.getBundles("ORIGINAL"); if (bundles.length == 0) { out.println("<p>" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.files.no") + "</p>"); } else { boolean html = false; String handle = item.getHandle(); Bitstream primaryBitstream = null; Bundle[] bunds = item.getBundles("ORIGINAL"); Bundle[] thumbs = item.getBundles("THUMBNAIL"); // if item contains multiple bitstreams, display bitstream // description boolean multiFile = false; Bundle[] allBundles = item.getBundles(); for (int i = 0, filecount = 0; (i < allBundles.length) && !multiFile; i++) { filecount += allBundles[i].getBitstreams().length; multiFile = (filecount > 1); } // check if primary bitstream is html if (bunds[0] != null) { Bitstream[] bits = bunds[0].getBitstreams(); for (int i = 0; (i < bits.length) && !html; i++) { if (bits[i].getID() == bunds[0].getPrimaryBitstreamID()) { html = bits[i].getFormat().getMIMEType().equals( "text/html"); primaryBitstream = bits[i]; } } } out .println("<table cellpadding=\"6\"><tr><th id=\"t1\" class=\"standard\">" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.file") + "</th>"); if (multiFile) { out .println("<th id=\"t2\" class=\"standard\">" + LocaleSupport .getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.description") + "</th>"); } out.println("<th id=\"t3\" class=\"standard\">" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.filesize") + "</th><th id=\"t4\" class=\"standard\">" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.fileformat") + "</th></tr>"); // if primary bitstream is html, display a link for only that one to // HTMLServlet if (html) { // If no real Handle yet (e.g. because Item is in workflow) // we use the 'fake' Handle db-id/1234 where 1234 is the // database ID of the item. if (handle == null) { handle = "db-id/" + item.getID(); } out.print("<tr><td headers=\"t1\" class=\"standard\">"); out.print(primaryBitstream.getName()); if (multiFile) { out.print("</td><td headers=\"t2\" class=\"standard\">"); String desc = primaryBitstream.getDescription(); out.print((desc != null) ? desc : ""); } out.print("</td><td headers=\"t3\" class=\"standard\">"); out.print(primaryBitstream.getSize() / 1024); out.print("Kb</td><td headers=\"t4\" class=\"standard\">"); out.print(primaryBitstream.getFormatDescription()); out .print("</td><td class=\"standard\"><a target=\"_blank\" href=\""); out.print(request.getContextPath()); out.print("/html/"); out.print(handle + "/"); out .print(UIUtil.encodeBitstreamName(primaryBitstream .getName(), Constants.DEFAULT_ENCODING)); out.print("\">" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.view") + "</a></td></tr>"); } else { for (int i = 0; i < bundles.length; i++) { Bitstream[] bitstreams = bundles[i].getBitstreams(); for (int k = 0; k < bitstreams.length; k++) { // Skip internal types if (!bitstreams[k].getFormat().isInternal()) { out .print("<tr><td headers=\"t1\" class=\"standard\">"); out.print(bitstreams[k].getName()); if (multiFile) { out .print("</td><td headers=\"t2\" class=\"standard\">"); String desc = bitstreams[k].getDescription(); out.print((desc != null) ? desc : ""); } out .print("</td><td headers=\"t3\" class=\"standard\">"); out.print(bitstreams[k].getSize() / 1024); out .print("Kb</td><td headers=\"t4\" class=\"standard\">"); out.print(bitstreams[k].getFormatDescription()); out .print("</td><td class=\"standard\" align=\"center\">"); // Work out what the bitstream link should be // (persistent // ID if item has Handle) String bsLink = "<a target=\"_blank\" href=\"" + request.getContextPath(); if ((handle != null) && (bitstreams[k].getSequenceID() > 0)) { bsLink = bsLink + "/bitstream/" + item.getHandle() + "/" + bitstreams[k].getSequenceID() + "/"; } else { bsLink = bsLink + "/retrieve/" + bitstreams[k].getID() + "/"; } bsLink = bsLink + UIUtil.encodeBitstreamName(bitstreams[k] .getName(), Constants.DEFAULT_ENCODING) + "\">"; // is there a thumbnail bundle? if ((thumbs.length > 0) && showThumbs) { String tName = bitstreams[k].getName() + ".jpg"; Bitstream tb = thumbs[0] . getBitstreamByName(tName); if (tb != null) { String myPath = request.getContextPath() + "/retrieve/" + tb.getID() + "/" + UIUtil.encodeBitstreamName(tb .getName(), Constants.DEFAULT_ENCODING); out.print(bsLink); out.print("<img src=\"" + myPath + "\" "); out.print("alt=\"" + tName + "\" /></a><br />"); } } out .print(bsLink + LocaleSupport .getLocalizedMessage( pageContext, "org.dspace.app.webui.jsptag.ItemTag.view") + "</a></td></tr>"); } } } } out.println("</table>"); } } catch(SQLException sqle) { throw new IOException(sqle.getMessage()); } out.println("</td></tr></table>"); } private void getThumbSettings() { showThumbs = ConfigurationManager .getBooleanProperty("webui.item.thumbnail.show"); } /** * Link to the item licence */ private void showLicence() throws IOException { JspWriter out = pageContext.getOut(); HttpServletRequest request = (HttpServletRequest) pageContext .getRequest(); Bundle[] bundles = null; try { bundles = item.getBundles("LICENSE"); } catch(SQLException sqle) { throw new IOException(sqle.getMessage()); } out.println("<table align=\"center\" class=\"attentionTable\"><tr>"); out.println("<td class=\"attentionCell\"><p><strong>" + LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.itemprotected") + "</strong></p>"); for (int i = 0; i < bundles.length; i++) { Bitstream[] bitstreams = bundles[i].getBitstreams(); for (int k = 0; k < bitstreams.length; k++) { out.print("<div align=\"center\" class=\"standard\">"); out.print("<strong><a target=\"_blank\" href=\""); out.print(request.getContextPath()); out.print("/retrieve/"); out.print(bitstreams[k].getID() + "/"); out.print(UIUtil.encodeBitstreamName(bitstreams[k].getName(), Constants.DEFAULT_ENCODING)); out .print("\">" + LocaleSupport .getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.ItemTag.viewlicence") + "</a></strong></div>"); } } out.println("</td></tr></table>"); } /** * Find the style to use for a particular collection from dspace.cfg */ private void getStyleFor(Collection c) { if (collectionStyles == null) { readCollectionStyleConfig(); } String collStyle = (String) collectionStyles.get(c.getHandle()); if (collStyle == null) { // No specific style specified for this collection style = "default"; return; } // Specific style specified. Check style exists if (ConfigurationManager.getProperty("webui.itemdisplay." + collStyle) == null) { log .warn("dspace.cfg specifies undefined item metadata display style '" + collStyle + "' for collection " + c.getHandle() + ". Using default"); style = "default"; return; } // Style specified & exists style = collStyle; } private static void readCollectionStyleConfig() { collectionStyles = new HashMap(); Enumeration e = ConfigurationManager.propertyNames(); while (e.hasMoreElements()) { String key = (String) e.nextElement(); if (key.startsWith("webui.itemdisplay.") && key.endsWith(".collections")) { String styleName = key.substring("webui.itemdisplay.".length(), key.length() - ".collections".length()); String[] collections = ConfigurationManager.getProperty(key) .split(","); for (int i = 0; i < collections.length; i++) { collectionStyles.put(collections[i].trim(), styleName .toLowerCase()); } } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -