- Timestamp:
- 2003-04-02T15:59:59+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/action/BrowseAction.java
r3998 r4080 10 10 11 11 import java.util.HashMap; 12 import java.util.Vector; 12 13 import java.io.File; 13 14 … … 115 116 } 116 117 117 118 118 // create a classifier elem to return in the page 119 119 Element page_classifier = doc_.createElement(GSXML.CLASSIFIER_ELEM); … … 123 123 String top_id = OID.getTop(classifier_node); 124 124 page_classifier.setAttribute(GSXML.NAME_ATT, top_id); 125 125 126 // add in the format info into the stylesheet 127 System.out.println("transforming format:"+converter_.getString(format_response)); 128 Element format_elem = getAndTransformFormat(format_response); 129 System.out.println("transformed format:"+converter_.getString(format_elem)); 130 if (format_elem != null) { 131 Element this_format = GSXML.getNamedElement(format_elem, GSXML.CLASSIFIER_ELEM, GSXML.NAME_ATT, top_id); 132 if (this_format != null) { 133 GSXSLT.mergeStylesheets(style_doc, this_format); 134 } 135 } 136 126 137 // get the browse structure for the selected node 127 138 Element classify_message = doc_.createElement(GSXML.MESSAGE_ELEM); … … 183 194 } 184 195 196 185 197 // get the metadata for each classifier node, 186 198 // then for each document node 199 187 200 Element metadata_message = doc_.createElement(GSXML.MESSAGE_ELEM); 188 201 … … 190 203 boolean did_documents = false; 191 204 192 // Create a parameter list to specify the required metadata information 193 // for now get Title 194 Element meta_param_list = doc_.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER); 195 Element meta_param = doc_.createElement(GSXML.PARAM_ELEM); 196 meta_param_list.appendChild(meta_param); 197 meta_param.setAttribute(GSXML.NAME_ATT, "metadata"); 198 meta_param.setAttribute(GSXML.VALUE_ATT, "Source"); 199 meta_param = doc_.createElement(GSXML.PARAM_ELEM); 200 meta_param_list.appendChild(meta_param); 201 meta_param.setAttribute(GSXML.NAME_ATT, "metadata"); 202 meta_param.setAttribute(GSXML.VALUE_ATT, "Keyword"); 203 meta_param = doc_.createElement(GSXML.PARAM_ELEM); 204 meta_param_list.appendChild(meta_param); 205 meta_param.setAttribute(GSXML.NAME_ATT, "metadata"); 206 meta_param.setAttribute(GSXML.VALUE_ATT, "Title"); 207 208 // if there are classifier nodes (I think there always will be) 205 206 // if there are classifier nodes 209 207 // create a metadata request for the classifier, and add it to 210 208 // the the message 211 209 cl_nodes = page_classifier.getElementsByTagName(GSXML.CLASS_NODE_ELEM); 212 210 213 211 if (cl_nodes.getLength() > 0) { 214 212 did_classifier = true; … … 219 217 cl_meta_request.setAttribute(GSXML.LANG_ATT, lang); 220 218 221 cl_meta_request.appendChild(meta_param_list);222 223 219 Element new_cl_nodes_list = doc_.createElement(GSXML.CLASS_NODE_ELEM+GSXML.LIST_MODIFIER); 224 220 cl_meta_request.appendChild(new_cl_nodes_list); … … 230 226 new_cl_nodes_list.appendChild(cl); 231 227 } 232 } 233 228 229 // create and add in the param list 230 Vector classifier_metadata = GSXSLT.extractWantedMetadata(style_doc, GSXML.CLASS_NODE_ELEM); 231 if (classifier_metadata.isEmpty()) { 232 System.err.println("BrowseAction: no classifier metadata specified!!"); 233 did_classifier = false; 234 metadata_message.removeChild(cl_meta_request); 235 } else { 236 Element meta_param_list = GSXML.createMetadataParamList(doc_, classifier_metadata); 237 cl_meta_request.appendChild(meta_param_list); 238 } 239 240 } 241 234 242 // if there are document nodes in the classification (happens 235 243 // sometimes), create a second request for document metadata and … … 244 252 doc_meta_request.setAttribute(GSXML.LANG_ATT, lang); 245 253 246 // for now, use the same metadata list - this will probably change once we look at format statements247 doc_meta_request.appendChild(meta_param_list.cloneNode(true));248 249 254 Element doc_list = doc_.createElement(GSXML.DOC_NODE_ELEM+GSXML.LIST_MODIFIER); 250 255 doc_meta_request.appendChild(doc_list); … … 257 262 } 258 263 259 } 260 264 // create and add in the param list 265 Vector doc_metadata = GSXSLT.extractWantedMetadata(style_doc, GSXML.DOC_NODE_ELEM); 266 if (doc_metadata.isEmpty()) { 267 System.err.println("BrowseAction: no document metadata specified!!"); 268 did_documents = false; 269 metadata_message.removeChild(doc_meta_request); 270 } else { 271 Element meta_param_list = GSXML.createMetadataParamList(doc_, doc_metadata); 272 doc_meta_request.appendChild(meta_param_list); 273 } 274 275 276 } 277 261 278 // process the metadata requests 262 279 Element metadata_response = (Element)mr_.process(metadata_message); … … 288 305 } 289 306 290 // add in the format info 291 Element format_elem = getAndTransformFormat(format_response); 292 if (format_elem != null) { 293 Element this_format = GSXML.getNamedElement(format_elem, GSXML.CLASSIFIER_ELEM, GSXML.NAME_ATT, top_id); 294 if (this_format != null) { 295 GSXSLT.mergeStylesheets(style_doc, this_format); 296 } 297 } 298 299 System.out.println("(BrowseAction) Page:\n" + converter_.getPrettyString(page)); 307 308 //System.out.println("(BrowseAction) Page:\n" + converter_.getPrettyString(page)); 300 309 301 310 // transform the page
Note:
See TracChangeset
for help on using the changeset viewer.