⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itemtag.java

📁 dspace 用j2ee架构的一个数字图书馆.开源程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            {                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 + -