Changeset 30056


Ignore:
Timestamp:
2015-07-25T07:25:11+12:00 (9 years ago)
Author:
Georgiy Litvinov
Message:

Fixes for highlighting bug.

Location:
main/trunk/greenstone3/src/java/org/greenstone/gsdl3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/action/DocumentAction.java

    r30049 r30056  
    881881        if (highlighted_Node != null)
    882882        {
    883             return highlighted_Node;
     883            // Build a request to process highlighted text
     884           
     885            Element hl_message = doc.createElement(GSXML.MESSAGE_ELEM);
     886            to = GSPath.appendLink(collection, "DocumentContentRetrieve");
     887            Element dc_request = GSXML.createBasicRequest(doc, GSXML.REQUEST_TYPE_PROCESS, to, userContext);
     888            hl_message.appendChild(dc_request);
     889
     890            // Create a parameter list to specify the request parameters - empty for now
     891            Element dc_param_list = doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER);
     892            dc_request.appendChild(dc_param_list);
     893
     894            // get the content
     895            Element doc_list = doc.createElement(GSXML.DOC_NODE_ELEM + GSXML.LIST_MODIFIER);
     896            dc_request.appendChild(doc_list);
     897            Element current_doc = doc.createElement(GSXML.DOC_NODE_ELEM);
     898            doc_list.appendChild(current_doc);
     899            current_doc.setAttribute(GSXML.NODE_ID_ATT, (String) params.get(GSParams.DOCUMENT));
     900            //Append highlighted content to request for processing
     901            dc_request.appendChild(doc.importNode(highlighted_Node, true));
     902                           
     903            Element hl_response_message = (Element) this.mr.process(hl_message);
     904            //Get results
     905            NodeList contentList = hl_response_message.getElementsByTagName(GSXML.NODE_CONTENT_ELEM);
     906            Element content = (Element) contentList.item(0);   
     907            return content;
    884908        }
    885909
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractDocumentRetrieve.java

    r28966 r30056  
    3636import org.w3c.dom.Document;
    3737import org.w3c.dom.Element;
     38import org.w3c.dom.Node;
    3839import org.w3c.dom.NodeList;
     40
    3941
    4042// General Java classes
     
    8688    protected boolean does_structure = true;
    8789
     90    protected Element highlightedNode = null;
    8891    /** constructor */
    8992    public AbstractDocumentRetrieve()
     
    550553        result.setAttribute(GSXML.FROM_ATT, DOCUMENT_CONTENT_RETRIEVE_SERVICE);
    551554        result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS);
    552 
     555        //import highlighted node to result
     556        highlightedNode = (Element) GSXML.getChildByTagName(request, GSXML.NODE_CONTENT_ELEM);
     557       
    553558        if (!does_content)
    554559        {
Note: See TracChangeset for help on using the changeset viewer.