Changeset 30056

Show
Ignore:
Timestamp:
25.07.2015 07:25:11 (4 years ago)
Author:
litvinovg
Message:

Fixes for highlighting bug.

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

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        {