Changeset 7800

Show
Ignore:
Timestamp:
07/24/09 09:52:34 (12 months ago)
Author:
dragisak
Message:

Fix for browser title on article page.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • head/ambra/webapp/src/main/java/org/topazproject/ambra/struts2/AmbraFreemarkerConfig.java

    r7771 r7800  
    7474   * follow the standard templates.  Creates its own composite configuration by iterating over each 
    7575   * of the configs in the config to assemble a union of pages defined. 
     76   * @param configuration Ambra configuration 
     77   * @throws Exception Exception 
    7678   * 
    7779   */ 
     
    251253 
    252254        final int numPages = configuration.getList(journal + ".page.name").size(); 
    253         int numCss, numJavaScript, j; 
    254         String pageName, page; 
    255  
    256         Map<String, String> titles = jc.getTitles(); 
    257         if (titles == null) { 
    258           titles = new HashMap<String, String>(); 
    259         } 
    260         Map<String, String[]> cssFiles = jc.getCssFiles(); 
    261         if (cssFiles == null) { 
    262           cssFiles = new HashMap<String, String[]>(); 
    263         } 
    264         Map<String, String[]> javaScriptFiles = jc.getJavaScriptFiles(); 
    265         if (javaScriptFiles == null) { 
    266           javaScriptFiles = new HashMap<String, String[]>(); 
    267         } 
    268  
    269         String[] cssArray; 
    270         String[] javaScriptArray; 
    271255 
    272256        for (int i = 0; i < numPages; i++) { 
    273           page = journal + ".page(" + i + ")"; 
    274           pageName = configuration.getString(page + ".name"); 
     257          String page = journal + ".page(" + i + ")"; 
     258          String pageName = configuration.getString(page + ".name"); 
    275259          if (log.isDebugEnabled()) 
    276260            log.debug("Reading config for page name: " + pageName); 
    277261 
    278           if (!titles.containsKey(pageName)) { 
     262          if (!jc.getTitles().containsKey(pageName)) { 
    279263            final String title = configuration.getString(page + ".title"); 
    280264            if (title != null) { 
    281               titles.put(pageName, title); 
     265              jc.getTitles().put(pageName, title); 
    282266            } 
    283267          } 
    284268 
    285           if (!cssFiles.containsKey(pageName)) { 
    286             Object obj = configuration.getProperty(page+".css"); 
    287             final boolean isDefined = (obj != null); 
    288             numCss = configuration.getList(page + ".css.file").size(); 
    289             cssArray = new String[numCss]; 
    290             for (j = 0; j < numCss; j++) { 
    291               cssArray[j] =  dirPrefix + subdirPrefix + 
    292                              configuration.getString(page + ".css.file(" + j + ")"); 
     269          if (!jc.getCssFiles().containsKey(pageName)) { 
     270            if ((configuration.getProperty(page+".css") != null)) { 
     271 
     272              int numCss = configuration.getList(page + ".css.file").size(); 
     273              String[] cssArray = new String[numCss]; 
     274 
     275              for (int j = 0; j < numCss; j++) { 
     276                cssArray[j] =  dirPrefix + subdirPrefix + 
     277                               configuration.getString(page + ".css.file(" + j + ")"); 
     278              } 
     279              jc.getCssFiles().put(pageName, cssArray); 
    293280            } 
    294             if ((numCss > 0) || (numCss == 0 && isDefined)) { 
    295               cssFiles.put(pageName, cssArray); 
     281          } 
     282 
     283          if (!jc.getJavaScriptFiles().containsKey(pageName)) { 
     284            if ((configuration.getProperty(page+".javascript") != null)) { 
     285 
     286              int numJavaScript = configuration.getList(page + ".javascript.file").size(); 
     287              String[] javaScriptArray = new String[numJavaScript]; 
     288 
     289              for (int j = 0; j < numJavaScript; j++) { 
     290                String fileName = configuration.getString(page + ".javascript.file(" + j + ")"); 
     291                String filePath; 
     292                if (fileName.endsWith(".ftl")) { 
     293                  filePath = subdirPrefix + fileName; 
     294                } else { 
     295                  filePath = dirPrefix + subdirPrefix + fileName; 
     296                } 
     297                javaScriptArray[j] =  filePath; 
     298              } 
     299              jc.getJavaScriptFiles().put(pageName, javaScriptArray); 
    296300            } 
    297301          } 
    298  
    299           if (!javaScriptFiles.containsKey(pageName)) { 
    300             Object obj = configuration.getProperty(page+".javascript"); 
    301             final boolean isDefined = (obj != null); 
    302             numJavaScript = configuration.getList(page + ".javascript.file").size(); 
    303             javaScriptArray = new String[numJavaScript]; 
    304  
    305             for (j = 0; j < numJavaScript; j++) { 
    306               String fileName = configuration.getString(page + ".javascript.file(" + j + ")"); 
    307               String filePath; 
    308               if (fileName.endsWith(".ftl")) { 
    309                 filePath = subdirPrefix + fileName; 
    310               } else { 
    311                 filePath = dirPrefix + subdirPrefix + fileName; 
    312               } 
    313               javaScriptArray[j] =  filePath; 
    314             } 
    315             if ((numJavaScript > 0) || (numJavaScript == 0 && isDefined)){ 
    316               javaScriptFiles.put(pageName, javaScriptArray); 
    317             } 
    318           } 
    319         } 
    320         jc.setCssFiles(cssFiles); 
    321         jc.setJavaScriptFiles(javaScriptFiles); 
    322         jc.setTitles(titles); 
     302        } 
    323303      } 
    324304 
     
    371351  public String getTitle(String templateName, String journalName) { 
    372352    JournalConfig jc = journals.get(journalName); 
    373     boolean usingDefault = false; 
    374     if (jc == null) { 
    375       if (log.isDebugEnabled()) { 
    376         log.debug("Failed to get journal for given journalName '" + journalName + 
    377                   "'. Attempting to load default journal '" + defaultJournalName + "'"); 
    378       } 
    379       usingDefault = true; 
    380       jc = journals.get(defaultJournalName); 
    381       if (jc == null) { 
    382         log.error("Failed to get Journal. defaultJournalName '" + defaultJournalName + 
    383                   "'. Attempted to get default Journal when given journal name parameter '" + 
    384                   journalName + "' also returned null. Check your configuration for '" + 
    385                   DEFAULT_JOURNAL_NAME_CONFIG_KEY + "'"); 
    386         return DEFAULT_TITLE; 
    387       } 
    388     } 
     353    JournalConfig defaultJc = journals.get(defaultJournalName); 
     354 
    389355    String defaultTemplateName = "/"+trimJournalFromTemplatePath(templateName); 
    390356 
    391     String title = getJournalTitle(jc, templateName, defaultTemplateName); 
    392  
    393     if ((title == null) && !usingDefault) { 
    394       jc = journals.get(defaultJournalName); 
    395       title = getJournalTitle(jc, templateName, defaultTemplateName); 
    396     } 
    397  
    398     return title != null ? title : DEFAULT_TITLE; 
    399   } 
    400  
    401   private String getJournalTitle(JournalConfig jc, String templateName, String defaultTemplateName) { 
    402     String title = jc.getTitles().get(templateName); 
     357    String title = null; 
     358    if (jc != null) { 
     359      title = jc.getTitles().get(defaultTemplateName); 
     360    } 
     361 
     362    if (title == null && defaultJc != null) { 
     363      title = defaultJc.getTitles().get(defaultTemplateName); 
     364    } 
     365 
     366    if (title == null && jc != null) { 
     367      title = jc.getDefaultTitle(); 
     368    } 
     369 
     370    if (title == null && defaultJc != null) { 
     371      title = defaultJc.getDefaultTitle(); 
     372    } 
     373 
    403374    if (title == null) { 
    404       title = jc.getTitles().get(defaultTemplateName); 
    405       if (title == null) { 
    406         title = jc.getDefaultTitle(); 
    407       } 
    408     } 
     375      title = DEFAULT_TITLE; 
     376    } 
     377 
    409378    return title; 
    410379  } 
     
    618587  /** 
    619588   * Get the article level metrics host 
    620    * @return the ALM host string  
     589   * @return the ALM host string 
    621590   */ 
    622591  public String getALMHost() { 
     
    824793 
    825794    public JournalConfig () { 
    826     } 
     795      cssFiles = new HashMap<String, String[]>(); 
     796      javaScriptFiles = new HashMap<String, String[]>(); 
     797      titles = new HashMap<String, String>(); 
     798    } 
     799 
    827800    /** 
    828801     * @return Returns the cssFiles.