Changeset 13916 for trunk/gsdl3/src


Ignore:
Timestamp:
2007-02-15T10:53:23+13:00 (17 years ago)
Author:
kjdon
Message:

levels now use displayItems for display text in the same way that indexes do.

Location:
trunk/gsdl3/src/java/org/greenstone/gsdl3/service
Files:
4 edited

Legend:

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

    r13911 r13916  
    7575
    7676    protected static final String DEFAULT_LEVEL_ELEM = "defaultLevel";
     77    protected static final String DEFAULT_GDBM_LEVEL_ELEM = "defaultGDBMLevel";
    7778    protected static final String LEVEL_ELEM = "level";
    7879    protected static final String FIELD_ATT = "field";
     
    8788    protected String NOT_OPERATOR = "!";
    8889   
    89    // the default level for retrieval - and we'll use it for searching too
     90   // the default level for searching
    9091    protected String default_level=null;
    91 
     92    // default level for gdbm db
     93    protected String default_gdbm_level = null;
    9294    // which search services will we offer??
    9395    protected boolean plain_search = false;
     
    153155    Element def = (Element) GSXML.getChildByTagName(info, DEFAULT_LEVEL_ELEM);
    154156    if (def != null) {
    155         this.default_level = def.getAttribute(GSXML.NAME_ATT);
     157        this.default_level = def.getAttribute(GSXML.SHORTNAME_ATT);
    156158    }
    157159    if (this.default_level == null || this.default_level.equals("")) {
    158         logger.error("default level not specified!");
    159         return false;
    160     }
    161 
    162    
     160        logger.error("default level not specified!, assuming Doc");
     161        this.default_level = "Doc";
     162    }
     163
     164    // Get the default GDBM level
     165    def = (Element) GSXML.getChildByTagName(info, DEFAULT_GDBM_LEVEL_ELEM);
     166    if (def != null) {
     167        this.default_gdbm_level = def.getAttribute(GSXML.SHORTNAME_ATT);
     168    }
     169    if (this.default_gdbm_level == null || this.default_gdbm_level.equals("")) {
     170        logger.error("default gdbm level not specified!, assuming Sec");
     171        this.default_gdbm_level = "Sec";
     172    }
     173   
     174    // get display info from extra info - for levels
     175    if (extra_info !=null) {
     176        Document owner = info.getOwnerDocument();
     177   
     178        NodeList levels = info.getElementsByTagName(GSXML.LEVEL_ELEM);
     179        Element config_search = (Element)GSXML.getChildByTagName(extra_info, GSXML.SEARCH_ELEM);
     180       
     181        for (int i=0; i<levels.getLength();i++) {
     182        Element lev = (Element)levels.item(i);
     183        String name = lev.getAttribute(GSXML.NAME_ATT);
     184        Element node_extra = GSXML.getNamedElement(config_search,
     185                               GSXML.LEVEL_ELEM,
     186                               GSXML.NAME_ATT,
     187                               name);
     188        if (node_extra == null) {
     189            logger.error("haven't found extra info for level named "+name);
     190            continue;
     191        }
     192       
     193        // get the display elements if any - displayName
     194        NodeList display_names = node_extra.getElementsByTagName(GSXML.DISPLAY_TEXT_ELEM);
     195        if (display_names !=null) {
     196            for (int j=0; j<display_names.getLength(); j++) {
     197            Element e = (Element)display_names.item(j);
     198            lev.appendChild(owner.importNode(e, true));
     199            }
     200        }
     201        } // for each level
     202    }
     203 
    163204    // the format info is the same for all services
    164205    Element format_info = (Element)format_info_map.get(TEXT_QUERY_SERVICE);
     
    330371    NodeList levels = level_list.getElementsByTagName(LEVEL_ELEM);
    331372    for (int i=0; i<levels.getLength(); i++) {
    332         level_ids.add(((Element)levels.item(i)).getAttribute(GSXML.NAME_ATT));
    333         level_names.add(getTextString("level."+level_ids.get(i), lang));
    334     }
    335    
     373        Element level = (Element)levels.item(i);
     374        String shortname = level.getAttribute(GSXML.SHORTNAME_ATT);
     375        if (shortname.equals("")) {
     376        continue;
     377        }
     378        level_ids.add(shortname);
     379        String display_name = GSXML.getDisplayText(level, GSXML.DISPLAY_TEXT_NAME, lang, "en");
     380        if (display_name.equals("")) {
     381        // we'll use the name, and the dictionary
     382        display_name = level.getAttribute(GSXML.NAME_ATT);
     383        if (display_name.equals("")) {
     384            display_name = shortname;
     385        } else {
     386            display_name = getTextString("level."+display_name, lang);
     387        }
     388        }
     389        level_names.add(display_name);
     390    }
    336391    }
    337392
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2LuceneRetrieve.java

    r13576 r13916  
    8787    Element def = (Element) GSXML.getChildByTagName(info, DEFAULT_LEVEL_ELEM);
    8888    if (def != null) {
    89         this.default_level = def.getAttribute(GSXML.NAME_ATT);
     89        this.default_level = def.getAttribute(GSXML.SHORTNAME_ATT);
    9090    }
    9191    if (this.default_level == null || this.default_level.equals("")) {
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2MGPPRetrieve.java

    r13575 r13916  
    7272    Element def = (Element) GSXML.getChildByTagName(info, DEFAULT_LEVEL_ELEM);
    7373    if (def != null) {
    74         this.default_level = def.getAttribute(GSXML.NAME_ATT);
     74        this.default_level = def.getAttribute(GSXML.SHORTNAME_ATT);
    7575    }
    7676    if (this.default_level == null || this.default_level.equals("")) {
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/GS2MGPPSearch.java

    r13911 r13916  
    7474    // the default level is also the level which gdbm is expecting
    7575    // this must not be overwritten
    76     this.mgpp_src.setReturnLevel(this.default_level);
     76    this.mgpp_src.setReturnLevel(this.default_gdbm_level);
    7777    // return term info
    7878    this.mgpp_src.setReturnTerms(true);
Note: See TracChangeset for help on using the changeset viewer.