Changeset 26279

Show
Ignore:
Timestamp:
04.10.2012 10:15:44 (6 years ago)
Author:
sjm84
Message:

Adding months to date list

Location:
main/trunk/greenstone3
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/XSLTUtil.java

    r26253 r26279  
    4444    protected static HashMap<String, ArrayList<String>> _foundTableValues = new HashMap<String, ArrayList<String>>(); 
    4545    static Logger logger = Logger.getLogger(org.greenstone.gsdl3.util.XSLTUtil.class.getName()); 
    46  
     46    protected static HashMap<String, String> _stringVariables = new HashMap<String, String>(); 
     47 
     48    public static void storeString(String name, String value) 
     49    { 
     50        _stringVariables.put(name, value); 
     51    } 
     52     
     53    public static String getString(String name) 
     54    { 
     55        return _stringVariables.get(name); 
     56    } 
     57     
    4758    /* some tests */ 
    4859    public static boolean equals(String s1, String s2) 
     
    393404    public static String formatDate(String date, String lang) 
    394405    { 
    395  
    396406        String in_pattern = "yyyyMMdd"; 
    397407        String out_pattern = "dd MMMM yyyy"; 
     
    414424        } 
    415425 
     426    } 
     427 
     428    public static String getDetailFromDate(String date, String detail, String lang) 
     429    { 
     430        String in_pattern = "yyyyMMdd"; 
     431        if (date.length() == 6) 
     432        { 
     433            in_pattern = "yyyyMM"; 
     434        } 
     435 
     436        SimpleDateFormat formatter = new SimpleDateFormat(in_pattern, new Locale(lang)); 
     437        try 
     438        { 
     439            Date d = formatter.parse(date); 
     440            if (detail.toLowerCase().equals("day")) 
     441            { 
     442                formatter.applyPattern("dd"); 
     443            } 
     444            else if (detail.toLowerCase().equals("month")) 
     445            { 
     446                formatter.applyPattern("MMMM"); 
     447            } 
     448            else if (detail.toLowerCase().equals("year")) 
     449            { 
     450                formatter.applyPattern("yyyy"); 
     451            } 
     452            else 
     453            { 
     454                return ""; 
     455            } 
     456            return formatter.format(d); 
     457        } 
     458        catch (Exception ex) 
     459        { 
     460            return ""; 
     461        } 
    416462    } 
    417463 
  • main/trunk/greenstone3/web/interfaces/default/transform/classifiertools.xsl

    r26150 r26279  
    7474                        <xsl:choose> 
    7575                            <xsl:when test="name()='documentNode'"> 
     76                                <xsl:if test="../@childType = 'DateList'"> 
     77                                    <xsl:variable name="prevMonth"><xsl:value-of select="util:getString('prevMonth')"/></xsl:variable> 
     78                                    <xsl:variable name="currentDate"><gsf:metadata name="Date"/></xsl:variable> 
     79                                    <xsl:variable name="currentMonth"><xsl:value-of select="util:getDetailFromDate($currentDate, 'month', /page/@lang)"/></xsl:variable> 
     80                                    <xsl:value-of select="util:storeString('prevMonth', $currentMonth)"/> 
     81                                    <td> 
     82                                        <xsl:if test="not($currentMonth = $prevMonth)"> 
     83                                            <xsl:value-of select="$currentMonth"/> 
     84                                        </xsl:if> 
     85                                        <xsl:text> </xsl:text> 
     86                                    </td> 
     87                                </xsl:if> 
    7688                                <td> 
    7789                                    <table id="div{@nodeID}"><tr>