using NB styled table, each user statistic
authorjsedek@netbeans.org
Wed, 16 Jan 2008 09:19:42 +0000
changeset 2808d2c21c873432
parent 2807 22a9de07e318
child 2809 e76f7965d578
using NB styled table, each user statistic
logger/uihandlerserver/src/java/org/netbeans/server/uihandler/statistics/TimeToFailture.java
logger/uihandlerserver/test/org/netbeans/server/uihandler/statistics/TimeToFailtureTest.java
logger/uihandlerserver/web/graph/timetofailture.jsp
     1.1 --- a/logger/uihandlerserver/src/java/org/netbeans/server/uihandler/statistics/TimeToFailture.java	Tue Jan 15 15:17:27 2008 +0000
     1.2 +++ b/logger/uihandlerserver/src/java/org/netbeans/server/uihandler/statistics/TimeToFailture.java	Wed Jan 16 09:19:42 2008 +0000
     1.3 @@ -177,6 +177,22 @@
     1.4          return times;
     1.5      }
     1.6  
     1.7 +    public static List<TTFData> groupData(List<TTFData> list, int factor){
     1.8 +        List<TTFData> result = new ArrayList<TTFData>();
     1.9 +        int leftBorder = 0;
    1.10 +        int rightBorder = 1;
    1.11 +        while (rightBorder <= list.size()){
    1.12 +            int count = list.get(leftBorder).getCount();
    1.13 +            for (int i = leftBorder+1; i < rightBorder; i++){
    1.14 +                count += list.get(i).getCount();
    1.15 +            }
    1.16 +            result.add(new TTFData(list.get(rightBorder - 1).getTime(), count));
    1.17 +            leftBorder = rightBorder;
    1.18 +            rightBorder = rightBorder * factor;
    1.19 +        }
    1.20 +        return result;
    1.21 +    }
    1.22 +    
    1.23      public static class TTFData implements Comparable<TTFData>{
    1.24  
    1.25          public static final int ROUND_CONST = 1000 * 60;//ms -> 5 min interval
     2.1 --- a/logger/uihandlerserver/test/org/netbeans/server/uihandler/statistics/TimeToFailtureTest.java	Tue Jan 15 15:17:27 2008 +0000
     2.2 +++ b/logger/uihandlerserver/test/org/netbeans/server/uihandler/statistics/TimeToFailtureTest.java	Wed Jan 16 09:19:42 2008 +0000
     2.3 @@ -27,6 +27,7 @@
     2.4   */
     2.5  package org.netbeans.server.uihandler.statistics;
     2.6  
     2.7 +import java.util.ArrayList;
     2.8  import java.util.List;
     2.9  import java.util.logging.Level;
    2.10  import java.util.logging.LogRecord;
    2.11 @@ -83,10 +84,25 @@
    2.12          verify(result5, SECOND_TIME, 4);
    2.13      }
    2.14      
    2.15 +    public void testGroupData() throws Exception{
    2.16 +        int testItemsCount = 10000;
    2.17 +        List<TimeToFailture.TTFData> testData = new ArrayList<TimeToFailture.TTFData>(testItemsCount);
    2.18 +        for (int i = 0; i < testItemsCount; i++){
    2.19 +            testData.add(new TimeToFailture.TTFData(i * TimeToFailture.TTFData.ROUND_CONST, 1));
    2.20 +        }
    2.21 +        int factor = 2;
    2.22 +        testData = TimeToFailture.groupData(testData, factor);
    2.23 +        for (TimeToFailture.TTFData tTFData : testData) {
    2.24 +            if (tTFData.getTrimmedTime() > 0 ){
    2.25 +                assertEquals((tTFData.getTrimmedTime()+1)/2, tTFData.getCount());
    2.26 +            }
    2.27 +        }
    2.28 +
    2.29 +    }
    2.30 +    
    2.31      private void verify(List<TimeToFailture.TTFData> res, int key, int value){
    2.32          assertNotNull(res);
    2.33          assertTrue("KEY", res.contains(new TimeToFailture.TTFData(key, value)));
    2.34 -//        assertEquals("VALUE", value, res.get(key));
    2.35      }
    2.36      
    2.37  }
     3.1 --- a/logger/uihandlerserver/web/graph/timetofailture.jsp	Tue Jan 15 15:17:27 2008 +0000
     3.2 +++ b/logger/uihandlerserver/web/graph/timetofailture.jsp	Wed Jan 16 09:19:42 2008 +0000
     3.3 @@ -10,7 +10,7 @@
     3.4  
     3.5  <c:set var="path" value='/ <a href="../index.jsp">Analytics</a> / Graph / Time To Failture'/>
     3.6  <%@include file="/WEB-INF/jspf/header.jspf" %>
     3.7 -<%! static int COLUMNS_NO = 5; %>
     3.8 +<%! static int COLUMNS_NO = 1;%>
     3.9  <div class="f-page-cell bg-sky" >
    3.10      <h2>Time to Failture NetBeans statistics</h2>
    3.11      
    3.12 @@ -31,18 +31,71 @@
    3.13                          collection="results"
    3.14                          category="trimmedTime"
    3.15                          value="count"
    3.16 -                        title="Time to Failture"
    3.17 +                        title="Middle time between failtures"
    3.18                          />
    3.19              <p>
    3.20                  This is the overall statistics of all the submitted data.
    3.21              </p>
    3.22          </td>
    3.23          <td>
    3.24 -            <table style="border:2px solid;border-spacing:0px">
    3.25 -                <thead>
    3.26 +            <table>
    3.27 +                <thead class="tblheader">
    3.28                      <% for (int j = 0; j < COLUMNS_NO; j++) {%>
    3.29                      <th>
    3.30 -                        Time to failture (mins)
    3.31 +                        Middle time between failtures &nbsp;
    3.32 +                    </th>
    3.33 +                    <th>
    3.34 +                        Number of events
    3.35 +                    </th>
    3.36 +                    <% }%>
    3.37 +                </thead>
    3.38 +                <tbody>
    3.39 +                    <% data = TimeToFailture.groupData(data, 2);
    3.40 +        int column = data.size() / COLUMNS_NO;
    3.41 +        int previousTime = 0;
    3.42 +        for (int i = 0; i < column; i++) {%>
    3.43 +                    <tr>
    3.44 +                        <%
    3.45 +                        for (int j = 0; j < COLUMNS_NO; j++) {
    3.46 +                            TimeToFailture.TTFData dat = data.get(column * j + i);
    3.47 +                        %>
    3.48 +                        <td class="tbltd1"><%= previousTime %> mins - <%= dat.getTrimmedTime()%> mins</td>
    3.49 +                        <td class="tbltd1"><%= dat.getCount()%></td>
    3.50 +                        <%
    3.51 +                            previousTime = dat.getTrimmedTime();
    3.52 +                        }
    3.53 +                        %>
    3.54 +                    </tr>
    3.55 +                    
    3.56 +                    <%}%>
    3.57 +                </tbody>
    3.58 +            </table>
    3.59 +        </td>
    3.60 +    </tr>
    3.61 +    <% }%>
    3.62 +    <%
    3.63 +            data = (List<TimeToFailture.TTFData>) pageContext.getAttribute("userTimeToFailture");
    3.64 +            if (data != null) {
    3.65 +                pageContext.setAttribute("userResults", data);
    3.66 +    %>
    3.67 +    <tr>
    3.68 +        <td align="center" width="480">
    3.69 +            <chart:line serie="serie"
    3.70 +                        collection="userResults"
    3.71 +                        category="trimmedTime"
    3.72 +                        value="count"
    3.73 +                        title="Middle time between failtures"
    3.74 +                        />
    3.75 +            <p>
    3.76 +                This is the statistic of all your submitted data.
    3.77 +            </p>
    3.78 +        </td>
    3.79 +        <td>
    3.80 +            <table>
    3.81 +                <thead class="tblheader">
    3.82 +                    <% for (int j = 0; j < COLUMNS_NO; j++) {%>
    3.83 +                    <th>
    3.84 +                        Middle time between failtures (mins)
    3.85                      </th>
    3.86                      <th>
    3.87                          Number of events
    3.88 @@ -57,8 +110,8 @@
    3.89                          for (int j = 0; j < COLUMNS_NO; j++) {
    3.90                              TimeToFailture.TTFData dat = data.get(column * j + i);
    3.91                          %>
    3.92 -                        <td style="border:1px solid; border-left:5px solid"><%= dat.getTrimmedTime()%></td>
    3.93 -                        <td style="border:1px solid"><%= dat.getCount()%></td>
    3.94 +                        <td class="tbltd1"><%= dat.getTrimmedTime()%></td>
    3.95 +                        <td class="tbltd1"><%= dat.getCount()%></td>
    3.96                          <%}%>
    3.97                      </tr>
    3.98                      
    3.99 @@ -68,7 +121,6 @@
   3.100          </td>
   3.101      </tr>
   3.102      <% } %>
   3.103 -    
   3.104  </table>
   3.105  
   3.106  <%@include file="/WEB-INF/jspf/footer.jspf" %> 
   3.107 \ No newline at end of file