- Timestamp:
- 2003-07-11T16:29:16+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2Search.java
r4862 r4903 99 99 } 100 100 101 // these entries should reflect the build config file - some services may not be available depending on how the collec iton was built.102 // set up short_service_info_ - for now just has name and type101 // these entries should reflect the build config file - some services may not be available depending on how the collection was built. 102 // set up short_service_info_ - for now just has id and type. the name (lang dependent) will be added in if the list is requested. 103 103 Element tq_service = doc_.createElement(GSXML.SERVICE_ELEM); 104 104 tq_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_QUERY); … … 106 106 short_service_info_.appendChild(tq_service); 107 107 108 // set up service_info_map_ - for now, just has the same elements as above109 // should have full details about each service incl params lists etc.110 Element tq_service_full = (Element) tq_service.cloneNode(true);111 Element param_list = doc_.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);112 createTextQueryParamList(param_list, false, null);113 tq_service_full.appendChild(param_list);114 service_info_map_.put(TEXT_QUERY_SERVICE, tq_service_full);115 108 116 109 // Open GDBM database for querying … … 130 123 } 131 124 132 125 protected Element getServiceDescription(String service, String lang) { 126 127 if (!service.equals(TEXT_QUERY_SERVICE)) { 128 return null; 129 } 130 Element tq_service = doc_.createElement(GSXML.SERVICE_ELEM); 131 tq_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_QUERY); 132 tq_service.setAttribute(GSXML.NAME_ATT, TEXT_QUERY_SERVICE); 133 tq_service.appendChild(GSXML.createDisplayTextElement(doc_, GSXML.DISPLAY_TEXT_NAME, getTextString(TEXT_QUERY_SERVICE+".name", lang))); 134 tq_service.appendChild(GSXML.createDisplayTextElement(doc_, GSXML.DISPLAY_TEXT_SUBMIT, getTextString(TEXT_QUERY_SERVICE+".submit", lang))); 135 Element param_list = doc_.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER); 136 createTextQueryParamList(param_list, lang); 137 tq_service.appendChild(param_list); 138 return tq_service; 139 140 } 141 133 142 protected boolean addExtraQueryInfo(Element info, Element extra_info){ 134 143 … … 155 164 156 165 // get the display elements if any - displayName 157 NodeList display_names = node_extra.getElementsByTagName(GSXML.DISPLAY NAME_ELEM);166 NodeList display_names = node_extra.getElementsByTagName(GSXML.DISPLAY_TEXT_ELEM); 158 167 if (display_names !=null) { 159 Element display = owner.createElement(GSXML.DISPLAY_ELEM);160 168 for (int j=0; j<display_names.getLength(); j++) { 161 169 Element e = (Element)display_names.item(j); 162 163 Element display_name = GSXML.createTextElement(owner, GSXML.DISPLAY_NAME_ELEM, GSXML.getNodeText(e)); 164 display_name.setAttribute(GSXML.LANG_ATT, e.getAttribute(GSXML.LANG_ATT)); 165 display.appendChild(display_name); 170 ind.appendChild(owner.importNode(e, true)); 166 171 } 167 ind.appendChild(display);168 172 } 169 173 } // for each index … … 181 185 /** creates a new param element and adds it to the param list */ 182 186 protected void createParameter(String name, Element param_list, 183 boolean display,String lang)187 /*boolean display,*/ String lang) 184 188 { 185 189 Element param=null; 186 190 187 191 if (name.equals(INDEX_PARAM)) { 188 192 // the index info - read from config file … … 194 198 String [] ind_names = new String[len]; 195 199 for (int i=0; i<len; i++) { 196 inds[i] = ((Element)indexes.item(i)).getAttribute(GSXML.NAME_ATT); 197 if (display) { 198 Element disp = (Element)GSXML.getChildByTagName(indexes.item(i), GSXML.DISPLAY_ELEM); 199 ind_names[i] = GSXML.getDisplayText(disp, GSXML.DISPLAY_NAME_ELEM, lang, "en"); 200 } 200 Element index = (Element)indexes.item(i); 201 inds[i] = index.getAttribute(GSXML.NAME_ATT); 202 ind_names[i] = GSXML.getDisplayText(index, GSXML.DISPLAY_TEXT_NAME, lang, "en"); 203 201 204 } 202 if (display) { 203 param = GSXML.createParameterDisplay(doc_, INDEX_PARAM, getTextString("param."+INDEX_PARAM, lang), inds, ind_names); 204 } else { 205 param = GSXML.createParameterDescription(doc_, INDEX_PARAM, GSXML.PARAM_TYPE_ENUM_SINGLE, default_index_, inds); 206 } 207 } else if (name.equals(CASE_PARAM)) { 208 if (display) { 209 String[] bool_ops = {"0", "1"}; 210 String[] bool_texts = {getTextString("param.boolean.off", lang),getTextString("param.boolean.on", lang)}; 211 param = GSXML.createParameterDisplay(doc_, CASE_PARAM, getTextString("param."+CASE_PARAM, lang), bool_ops, bool_texts); 212 } else { 213 param = GSXML.createParameterDescription(doc_, CASE_PARAM, GSXML.PARAM_TYPE_BOOLEAN, BOOLEAN_PARAM_ON, null); 214 } 215 } 216 else if (name.equals(STEM_PARAM)) { 217 if (display) { 218 String[] bool_ops = {"0", "1"}; 219 String[] bool_texts = {getTextString("param.boolean.off", lang),getTextString("param.boolean.on", lang)}; 220 param = GSXML.createParameterDisplay(doc_, STEM_PARAM, getTextString("param."+STEM_PARAM, lang), bool_ops, bool_texts); 221 } else { 222 param = GSXML.createParameterDescription(doc_, STEM_PARAM, GSXML.PARAM_TYPE_BOOLEAN, BOOLEAN_PARAM_ON, null); 223 } 224 } 205 param = GSXML.createParameterDescription(doc_, INDEX_PARAM, getTextString("param."+INDEX_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, default_index_, inds, ind_names); 206 207 } 208 else if (name.equals(CASE_PARAM) || name.equals(STEM_PARAM)) { 209 String[] bool_ops = {"0", "1"}; 210 String[] bool_texts = {getTextString("param.boolean.off", lang),getTextString("param.boolean.on", lang)}; 211 param = GSXML.createParameterDescription(doc_, name, getTextString("param."+name, lang), GSXML.PARAM_TYPE_BOOLEAN, BOOLEAN_PARAM_ON, bool_ops, bool_texts); 212 } 225 213 else if (name.equals(MATCH_PARAM)) { 226 214 String[] vals = {MATCH_PARAM_ALL, MATCH_PARAM_SOME}; 227 if (display) { 228 String[] val_texts = {getTextString("param."+MATCH_PARAM+"."+MATCH_PARAM_ALL, lang),getTextString("param."+MATCH_PARAM+"."+MATCH_PARAM_SOME, lang)}; 229 230 param = GSXML.createParameterDisplay(doc_, MATCH_PARAM, getTextString("param."+MATCH_PARAM, lang), vals, val_texts); 231 } else { 232 param = GSXML.createParameterDescription(doc_, MATCH_PARAM, GSXML.PARAM_TYPE_ENUM_SINGLE, MATCH_PARAM_ALL, vals); 233 } 215 String[] val_texts = {getTextString("param."+MATCH_PARAM+"."+MATCH_PARAM_ALL, lang),getTextString("param."+MATCH_PARAM+"."+MATCH_PARAM_SOME, lang)}; 216 param = GSXML.createParameterDescription(doc_, MATCH_PARAM, getTextString("param."+MATCH_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, MATCH_PARAM_ALL, vals, val_texts); 217 234 218 } 235 219 else if (name.equals(MAXDOCS_PARAM)) { 236 if (display) { 237 param = GSXML.createParameterDisplay(doc_, MAXDOCS_PARAM, getTextString("param."+MAXDOCS_PARAM, lang), null, null); 238 } else { 239 param = GSXML.createParameterDescription(doc_, MAXDOCS_PARAM, GSXML.PARAM_TYPE_INTEGER, "10", null); 240 } 220 param = GSXML.createParameterDescription(doc_, MAXDOCS_PARAM, getTextString("param."+MAXDOCS_PARAM, lang), GSXML.PARAM_TYPE_INTEGER, "10", null, null); 221 241 222 } 242 223 else if (name.equals(QUERY_PARAM)) { 243 if (display) { 244 param = GSXML.createParameterDisplay(doc_, QUERY_PARAM, getTextString("param."+QUERY_PARAM, lang), null, null); 245 } else { 246 param = GSXML.createParameterDescription(doc_, QUERY_PARAM, GSXML.PARAM_TYPE_STRING, null, null); 247 } 248 } 249 224 param = GSXML.createParameterDescription(doc_, QUERY_PARAM, getTextString("param."+QUERY_PARAM, lang), GSXML.PARAM_TYPE_STRING, null, null, null); 225 226 } 227 250 228 // add the param to the list 251 229 if (param != null) { … … 260 238 */ 261 239 protected abstract boolean createTextQueryParamList(Element param_list, 262 boolean display,263 240 String lang); 264 265 /** creates a display element containing all the text strings needed to display266 the service page, in the language specified */267 protected Element createServiceDisplay(String service, String lang)268 {269 // Create a service display for the basic text query service270 Element display = doc_.createElement(GSXML.DISPLAY_ELEM);271 display.appendChild(GSXML.createTextElement(doc_, GSXML.DISPLAY_NAME_ELEM, getTextString(service+".name", lang)));272 display.appendChild(GSXML.createTextElement(doc_, GSXML.DISPLAY_SUBMIT_ELEM, getTextString(service+".submit", lang)));273 274 // now need to add in the params275 if (service.equals(TEXT_QUERY_SERVICE)) {276 createTextQueryParamList(display, true, lang);277 }278 279 return display;280 }281 282 241 283 242 /** Creates a new documentNode element containing ID, node type … … 293 252 DBInfo info = gdbm_src_.getInfo(node_id); 294 253 if (info == null) { // make it up - cant query the gdbm db 295 if (is_top) {296 doc_node.setAttribute(GSXML.NODE_TYPE_ATT, GSXML.NODE_TYPE_ROOT);297 } else {298 doc_node.setAttribute(GSXML.NODE_TYPE_ATT, GSXML.NODE_TYPE_INTERIOR);299 }300 254 doc_node.setAttribute(GSXML.DOC_TYPE_ATT, "simple"); 301 255 return doc_node; … … 304 258 boolean is_leaf = (children.equals("") ? true : false); 305 259 260 // check for simple doc types 261 if (is_top && is_leaf) { // a single section document 262 doc_node.setAttribute(GSXML.DOC_TYPE_ATT, "simple"); 263 return doc_node; 264 } 306 265 // set teh node type att 307 266 if (is_top) { … … 312 271 doc_node.setAttribute(GSXML.NODE_TYPE_ATT, GSXML.NODE_TYPE_INTERIOR); 313 272 } 314 315 // set teh doc type att 316 if (is_top && is_leaf) { // a single section document 317 doc_node.setAttribute(GSXML.DOC_TYPE_ATT, "simple"); 318 return doc_node; 319 } 320 273 321 274 if (!is_top) { // we need to look at the top info 322 275 info = gdbm_src_.getInfo(top_id);
Note:
See TracChangeset
for help on using the changeset viewer.