Ignore:
Timestamp:
2003-07-11T16:29:16+12:00 (21 years ago)
Author:
kjdon
Message:

tidied up a lot of stuff, particularly the display text stuff, including how its formatted, and some of the service rack methods

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2Search.java

    r4862 r4903  
    9999    }
    100100
    101     // these entries should reflect the build config file - some services may not be available depending on how the colleciton was built.
    102     // set up short_service_info_ - for now just has name and type
     101    // 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.
    103103    Element tq_service = doc_.createElement(GSXML.SERVICE_ELEM);
    104104    tq_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_QUERY);
     
    106106    short_service_info_.appendChild(tq_service);
    107107
    108     // set up service_info_map_ - for now, just has the same elements as above
    109     // 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);
    115108
    116109    // Open GDBM database for querying
     
    130123    }
    131124
    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   
    133142    protected boolean addExtraQueryInfo(Element info, Element extra_info){
    134143
     
    155164       
    156165        // get the display elements if any - displayName
    157         NodeList display_names = node_extra.getElementsByTagName(GSXML.DISPLAYNAME_ELEM);
     166        NodeList display_names = node_extra.getElementsByTagName(GSXML.DISPLAY_TEXT_ELEM);
    158167        if (display_names !=null) {
    159         Element display = owner.createElement(GSXML.DISPLAY_ELEM);
    160168        for (int j=0; j<display_names.getLength(); j++) {
    161169            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));
    166171        }
    167         ind.appendChild(display);
    168172        }
    169173    } // for each index
     
    181185/** creates a new param element and adds it to the param list */
    182186    protected void createParameter(String name, Element param_list,
    183                    boolean display, String lang)
     187                   /*boolean display,*/ String lang)
    184188    {
    185189    Element param=null;
    186 
     190   
    187191    if (name.equals(INDEX_PARAM)) {
    188192        // the index info - read from config file
     
    194198        String [] ind_names = new String[len];
    195199        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       
    201204        }
    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    }
    225213    else if (name.equals(MATCH_PARAM)) {
    226214        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       
    234218    }
    235219    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       
    241222    }
    242223    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   
    250228    // add the param to the list
    251229    if (param != null) {
     
    260238     */
    261239    protected abstract boolean createTextQueryParamList(Element param_list,
    262                             boolean display,
    263240                            String lang);
    264 
    265     /** creates a display element containing all the text strings needed to display
    266     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 service
    270     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 params
    275     if (service.equals(TEXT_QUERY_SERVICE)) {
    276         createTextQueryParamList(display, true, lang);
    277     }
    278 
    279     return display;
    280     }
    281 
    282241
    283242    /** Creates a new documentNode element containing ID, node type
     
    293252    DBInfo info = gdbm_src_.getInfo(node_id);
    294253    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         }
    300254        doc_node.setAttribute(GSXML.DOC_TYPE_ATT, "simple");
    301255        return doc_node;
     
    304258    boolean is_leaf = (children.equals("") ? true : false);
    305259
     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    }
    306265    // set teh node type att
    307266    if (is_top) {
     
    312271        doc_node.setAttribute(GSXML.NODE_TYPE_ATT, GSXML.NODE_TYPE_INTERIOR);
    313272    }
    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   
    321274    if (!is_top) { // we need to look at the top info
    322275        info = gdbm_src_.getInfo(top_id);
Note: See TracChangeset for help on using the changeset viewer.