Changeset 2471


Ignore:
Timestamp:
01/15/13 13:54:37 (11 years ago)
Author:
teckart
Message:

Added all CMDI values to result page (generated by cmdi2xhtml XSLT)

Location:
vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.html

    r2465 r2471  
    11<!doctype html public "-//W3C//DTD HTML 3.2 Final//EN">
    22<html>
    3     <head></head>
     3        <wicket:head>
     4                <script language="JavaScript">
     5                        function toogleDiv(strID, linkElement){
     6                                document.getElementById(linkElement).innerHTML = (document.getElementById(strID).style.display == 'none' ) ? '<b>Remove complete CMDI metadata</b>' : '<b>Show complete CMDI metadata</b>';
     7                                document.getElementById(strID).style.display = (document.getElementById(strID).style.display == 'none' ) ? 'block' : 'none';
     8                                document.getElementById(strID + "_shown").style.display = (document.getElementById(strID + "_shown").style.display == 'none' ) ? 'block' : 'none';
     9                                document.getElementById(strID + "_hidden").style.display = (document.getElementById(strID + "_hidden").style.display == 'none' ) ? 'block' : 'none';
     10                        }
     11                </script>
     12                <script src="javascript/searchhi.js" type="text/javascript" language="JavaScript"></script>
     13        </wicket:head>
     14       
    415    <body>
    516    <wicket:extend>
     
    2940            </div>
    3041           
     42            <div id="completeCmdiView">
     43                <span>
     44                        <a href="javascript:/" id="toogleLink" onClick="toogleDiv('completeCmdi', 'toogleLink');"></a>
     45                </span>
     46                <span id="completeCmdi" wicket:id="completeCmdi"></span>
     47            </div>                     
     48            <br>
     49            <br>           
    3150        </div>
    3251    </wicket:extend>
  • vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.java

    r2465 r2471  
    11package eu.clarin.cmdi.vlo.pages;
    22
     3import java.io.InputStreamReader;
     4import java.io.StringWriter;
    35import java.io.UnsupportedEncodingException;
    46import java.net.MalformedURLException;
     
    810import java.util.regex.Pattern;
    911
     12import javax.xml.transform.stream.StreamSource;
     13
    1014import net.sf.json.JSONObject;
     15import net.sf.saxon.s9api.Processor;
     16import net.sf.saxon.s9api.Serializer;
     17import net.sf.saxon.s9api.XdmNode;
     18import net.sf.saxon.s9api.XsltCompiler;
     19import net.sf.saxon.s9api.XsltExecutable;
     20import net.sf.saxon.s9api.XsltTransformer;
    1121
    1222import org.apache.solr.common.SolrDocument;
     
    1424import org.apache.wicket.PageParameters;
    1525import org.apache.wicket.RequestCycle;
     26import org.apache.wicket.behavior.AbstractBehavior;
    1627import org.apache.wicket.behavior.SimpleAttributeModifier;
    1728import org.apache.wicket.extensions.ajax.markup.html.AjaxLazyLoadPanel;
     
    2536import org.apache.wicket.markup.ComponentTag;
    2637import org.apache.wicket.markup.MarkupStream;
     38import org.apache.wicket.markup.html.IHeaderResponse;
    2739import org.apache.wicket.markup.html.WebMarkupContainer;
    2840import org.apache.wicket.markup.html.basic.Label;
     
    5466   
    5567    private final static ImageResource FEEDBACK_IMAGE = new ImageResource(new ContextRelativeResource("Images/feedback.png"), "Report an Error");
     68    private final URL xslFile = getClass().getResource("/cmdi2xhtml.xsl");
    5669
    5770    @SuppressWarnings("serial")
     
    7386            addResourceLinks(solrDocument);
    7487            addSearchServiceForm(solrDocument);
     88            addCompleteCmdiView(solrDocument);
    7589           
    7690            add(new AjaxLazyLoadPanel("prevNextHeader") {
     
    267281                }
    268282        }
     283       
     284        /**
     285         * Add complete CMDI view
     286         * @param solrDocument
     287         */
     288        private void addCompleteCmdiView(final SolrDocument solrDocument) {
     289                StringWriter strWriter = new StringWriter();
     290
     291        final Processor proc = new Processor(false);
     292        final XsltCompiler comp = proc.newXsltCompiler();
     293
     294        try {
     295                final XsltExecutable exp = comp.compile(new StreamSource(xslFile.getFile()));
     296                final XdmNode source = proc.newDocumentBuilder().build(
     297                                new StreamSource(new InputStreamReader(new URL(solrDocument.getFirstValue(FacetConstants.FIELD_COMPLETE_METADATA).toString()).openStream())));
     298                final Serializer out = new Serializer();
     299                out.setOutputProperty(Serializer.Property.METHOD, "html");
     300                out.setOutputProperty(Serializer.Property.INDENT, "yes");
     301                out.setOutputWriter(strWriter);
     302                final XsltTransformer trans = exp.load();
     303
     304                trans.setInitialContextNode(source);
     305                trans.setDestination(out);
     306                trans.transform();
     307        } catch (Exception e) {
     308                LOG.error(e.getMessage()+" "+e.getCause());
     309                strWriter = new StringWriter().append("<b>Could not load complete CMDI metadata</b>");
     310        }               
     311               
     312        Label completeCmdiLabel = new Label("completeCmdi", strWriter.toString());
     313                completeCmdiLabel.setEscapeModelStrings(false);
     314                add(completeCmdiLabel);
     315               
     316                // remove complete CMDI view on page load
     317                add(new AbstractBehavior() {
     318                        private static final long serialVersionUID = 1865219352602175954L;
     319
     320                        @Override
     321                        public void renderHead(IHeaderResponse response) {
     322                                super.renderHead(response);
     323                                response.renderOnLoadJavascript("toogleDiv('completeCmdi', 'toogleLink')");
     324                        }
     325                });
     326        }
    269327}
Note: See TracChangeset for help on using the changeset viewer.