Changeset 4030


Ignore:
Timestamp:
2003-03-28T13:28:11+12:00 (21 years ago)
Author:
kjdon
Message:

now gets assocfilepath from top level document for cover image

File:
1 edited

Legend:

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

    r4023 r4030  
    184184    }
    185185
     186    // we also want a metadata request to the top level document to get
     187    // assocfilepath - this could be cached too
     188    Element doc_meta_request = GSXML.createBasicRequest(doc_, GSXML.REQUEST_TYPE_PROCESS, to, lang);
     189    dm_message.appendChild(doc_meta_request);
     190    Element doc_meta_param_list = doc_.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);
     191    doc_meta_request.appendChild(doc_meta_param_list);
     192    Element doc_param = doc_.createElement(GSXML.PARAM_ELEM);
     193    doc_meta_param_list.appendChild(doc_param);
     194    doc_param.setAttribute(GSXML.NAME_ATT, "metadata");
     195    doc_param.setAttribute(GSXML.VALUE_ATT, "assocfilepath");
     196
     197    // create the doc node list for the metadata request
     198    Element doc_list = doc_.createElement(GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
     199    doc_meta_request.appendChild(doc_list);
     200
     201    Element doc_node = doc_.createElement(GSXML.DOC_NODE_ELEM);
     202    // teh node we want is the root document node
     203    doc_node.setAttribute(GSXML.NODE_ID_ATT, document_name+".rt");
     204    doc_list.appendChild(doc_node);
    186205    // System.out.println("(DocumentAction) Metadata request:\n" + converter_.getString(dm_request));
    187206    Element dm_response_message = (Element) mr_.process(dm_message);
     
    196215        GSXML.mergeMetadataLists(doc_nodes.item(i), dm_response_docs.item(i));
    197216    }
    198 
     217    // get teh top level do metadata out
     218    Element doc_meta_response = (Element)dm_response_message.getElementsByTagName(GSXML.RESPONSE_ELEM).item(1);
     219    Element doc_meta_list = (Element)GSXML.getNodeByPath(doc_meta_response, "documentNodeList/documentNode/metadataList");
     220    the_document.appendChild(doc_.importNode(doc_meta_list, true));
    199221
    200222    // Build a request to obtain some document content
     
    227249        Element enrich_pl = getServiceParamList(cgi_paramList);
    228250        enrich_request.appendChild(enrich_pl);
    229         Element doc_list = doc_.createElement(GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
    230         enrich_request.appendChild(doc_list);
    231         doc_list.appendChild(doc_.importNode(dc_response_doc, true));
     251        Element e_doc_list = doc_.createElement(GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
     252        enrich_request.appendChild(e_doc_list);
     253        e_doc_list.appendChild(doc_.importNode(dc_response_doc, true));
    232254       
    233255        Element enrich_response = mr_.process(enrich_message);
     
    235257        String [] links = {GSXML.RESPONSE_ELEM, GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER, GSXML.DOC_NODE_ELEM, GSXML.NODE_CONTENT_ELEM};
    236258        path = GSPath.createPath(links);
    237         System.out.println("enrich path = "+path);
    238 
    239         //appendLink(GSXML.RESPONSE_ELEM, GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER);
    240         //path = GSPath.appendLink(GSXML.DOC_NODE_ELEM
    241259        dc_response_doc_content = (Element)GSXML.getNodeByPath(enrich_response, path);
    242260        }
     
    248266    // Merge the document content with the metadata and structure information
    249267    for (int i = 0; i < doc_nodes.getLength(); i++) {
    250         Node doc_node = doc_nodes.item(i);
    251         Node doc_node_id = doc_node.getAttributes().getNamedItem(GSXML.NODE_ID_ATT);
    252         String dc_doc_id = doc_node_id.getNodeValue();
    253         if (dc_doc_id.equals(modified_doc_id)) {
    254         doc_node.appendChild(doc_.importNode(dc_response_doc_content, true));
     268        Node dn = doc_nodes.item(i);
     269        String dn_id = ((Element)dn).getAttribute(GSXML.NODE_ID_ATT);
     270        if (dn_id.equals(modified_doc_id)) {
     271        dn.appendChild(doc_.importNode(dc_response_doc_content, true));
    255272        break;
    256273        }
Note: See TracChangeset for help on using the changeset viewer.