Changeset 30634

Show
Ignore:
Timestamp:
28.07.2016 12:58:54 (3 years ago)
Author:
kjdon
Message:

modifying the way levels, indexes, classifier buttons are displayed. displayItem with specific lang takes priority, then displayItem with a key for dictionary lookup, then if no displayItems lookup the level/index name in hte dictionary

Location:
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractBrowse.java

    r29989 r30634  
    234234                Element cl = (Element) classifiers.item(i); 
    235235                Element new_cl = (Element) doc.importNode(cl, false); // just import this node, not the children 
    236  
    237                 //String content = cl.getAttribute(GSXML.CLASSIFIER_CONTENT_ATT); 
    238  
     236                cl_list.appendChild(new_cl); 
     237 
     238                // have we got a displayItem for the classifier title? 
     239                String text = getDisplayText(cl, GSXML.DISPLAY_TEXT_NAME, lang, "en", "metadata_names"); 
    239240                //get the classify title  from the database 
    240241                String class_id = cl.getAttribute(GSXML.NAME_ATT); 
    241242                String content = getMetadata(class_id, "Title"); 
    242  
    243                 cl_list.appendChild(new_cl); 
    244                 String text = GSXML.getDisplayText(cl, GSXML.DISPLAY_TEXT_NAME, lang, "en"); 
    245                 if (text == null || text.equals("")) 
    246                 { 
    247                     // no display element was specified, use the metadata name 
    248                     // for now this looks in the class properties file 
    249                     // this needs to use a general metadata thing instead 
    250                     text = getMetadataNameText(content + ".buttonname", lang); 
    251                 } 
    252                 if (text == null) 
    253                 { 
    254                     text = content; 
    255                 } 
    256  
     243                if (text == null || text.equals("")) { 
     244                 
     245                  // no display element was specified, use the metadata name 
     246                  if (!content.equals("")) { 
     247                     
     248                    text = getTextString(content + ".buttonname", lang, "metadata_names"); 
     249                    if (text == null) { 
     250                       
     251                      text = content; 
     252                    } 
     253                  } 
     254                   
     255                  if (text == null) { 
     256                    text=class_id; 
     257                  } 
     258                } 
    257259                Element cl_name = GSXML.createDisplayTextElement(doc, GSXML.DISPLAY_TEXT_NAME, text); 
    258260                new_cl.appendChild(cl_name); 
     
    260262                // description 
    261263 
    262                 String meta_name = getMetadataNameText(content, lang); 
     264                String meta_name = getTextString(content, lang, "metadata_names"); 
    263265                if (meta_name == null) 
    264266                { 
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractGS2TextSearch.java

    r29558 r30634  
    253253            } 
    254254            index_ids.add(shortname); 
    255             String display_name = GSXML.getDisplayText(index, GSXML.DISPLAY_TEXT_NAME, lang, "en"); 
     255            String display_name = getDisplayText(index, GSXML.DISPLAY_TEXT_NAME, lang, "en", "metadata_names"); 
    256256            if (display_name.equals("")) 
    257257            { 
     
    261261                    display_name = shortname; 
    262262                } 
     263                String d_name = getTextString(display_name+".buttonname", lang, "metadata_names"); 
     264                if (d_name == null) { 
     265                  d_name = getTextString(cleanUpMetadata(display_name)+".buttonname", lang, "metadata_names"); 
     266                } 
     267                if (d_name == null) { 
     268                  d_name = getTextString(display_name, lang, "metadata_names"); 
     269                } 
     270                if (d_name != null) { 
     271 
     272                  display_name = d_name; 
     273                } 
    263274            } 
    264275            index_names.add(display_name); 
     
    266277    } 
    267278 
     279  protected String cleanUpMetadata(String meta) { 
     280    // remove namespace, and only take the first item if there is a list of them. 
     281     
     282    logger.error("clean up "+meta); 
     283    String[] parts = meta.split("[,;]"); 
     284    String cleaned = parts[0]; 
     285    if (cleaned.lastIndexOf('.') != -1) { 
     286      cleaned = cleaned.substring(cleaned.lastIndexOf('.')+1); 
     287    } 
     288    logger.error("returning "+cleaned); 
     289    return cleaned; 
     290     
     291  } 
    268292    protected void getIndexSubcollectionData(ArrayList<String> index_sub_ids, ArrayList<String> index_sub_names, String lang) 
    269293    { 
     
    282306            } 
    283307            index_sub_ids.add(shortname); 
    284             String display_name = GSXML.getDisplayText(indexsub, GSXML.DISPLAY_TEXT_NAME, lang, "en"); 
     308            String display_name = getDisplayText(indexsub, GSXML.DISPLAY_TEXT_NAME, lang, "en"); 
    285309            if (display_name.equals("")) 
    286310            { 
     
    311335            } 
    312336            index_lang_ids.add(shortname); 
    313             String display_name = GSXML.getDisplayText(indexlang, GSXML.DISPLAY_TEXT_NAME, lang, "en"); 
     337            String display_name = getDisplayText(indexlang, GSXML.DISPLAY_TEXT_NAME, lang, "en", "metadata_names"); 
    314338            if (display_name.equals("")) 
    315339            {