Scarab commit: svn commit: r10132 - trunk/src: java/org/tigris/scarab/reports java/org/tigris/scarab/util/word webapp/WEB-INF/templates/screens/reports

[email protected]
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: dabbous
Date: 2006-06-02 02:06:38-0700
New Revision: 10132

Modified:
   trunk/src/java/org/tigris/scarab/reports/ReportDefinition.java
   trunk/src/java/org/tigris/scarab/reports/ReportHeading.java
   trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java
   trunk/src/webapp/WEB-INF/templates/screens/reports/XModuleList.vm

Log:
when generating reports, the GUI exposed
all attributes available in the current set of
issueTypes where only the common set of attributes
should be used.

Fixed the problem and refactored some of the Report classes
without changing their internal standard behaviour. But in
case of unexpected inputs they now behave  more gracefully...

Modified: trunk/src/java/org/tigris/scarab/reports/ReportDefinition.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/reports/ReportDefinition.java?view=diff&rev=10132&p1=trunk/src/java/org/tigris/scarab/reports/ReportDefinition.java&p2=trunk/src/java/org/tigris/scarab/reports/ReportDefinition.java&r1=10131&r2=10132
==============================================================================
--- trunk/src/java/org/tigris/scarab/reports/ReportDefinition.java	(original)
+++ trunk/src/java/org/tigris/scarab/reports/ReportDefinition.java	2006-06-02 02:06:38-0700
@@ -662,13 +662,20 @@
         if (headings != null) 
         {
             int size = headings.size();
-            if (size > 0)
+            if(size > 1)
             {
-                if ( size != 1 || 
-                     !(((ReportHeading)headings.get(0))
-                       .get(0) instanceof ReportDate)) 
+                count += size;
+            }
+            else if (size == 1)
+            {
+                ReportHeading firstHeading = (ReportHeading)headings.get(0);
+                if (firstHeading != null && firstHeading.size() > 0)
                 {
-                    count += size;                                
+                    Object firstEntry = firstHeading.get(0);
+                    if ( !(firstEntry instanceof ReportDate)) 
+                    {
+                        count += 1;                                
+                    }
                 }
             }                        
         }

Modified: trunk/src/java/org/tigris/scarab/reports/ReportHeading.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/reports/ReportHeading.java?view=diff&rev=10132&p1=trunk/src/java/org/tigris/scarab/reports/ReportHeading.java&p2=trunk/src/java/org/tigris/scarab/reports/ReportHeading.java&r1=10131&r2=10132
==============================================================================
--- trunk/src/java/org/tigris/scarab/reports/ReportHeading.java	(original)
+++ trunk/src/java/org/tigris/scarab/reports/ReportHeading.java	2006-06-02 02:06:38-0700
@@ -140,24 +140,112 @@
 
     public Object get(int i)
     {
+        // FIXME: This method looks quite suspicious to me.
+        //        i reengineered it in order to avoid OutOfBoundExceptions...
+        //        Some questions raise:
+        //        what is the relation between the object type and the index ? 
+        //        What happens if multiple lists contain an item at index i ?
+        //        Maybe John can put some light here ?     
+        Object obj = getItemFromReportGroups(i);
+        if ( obj== null) 
+        {    
+            obj = getItemFromReportOptionAttributes(i);
+            if(obj == null)
+            {
+                obj = getItemFromReportUserAttributes(i);
+                if(obj == null)
+                {
+                    obj = getItemFromReportDates(i);
+                    if(obj == null)
+                    {
+                        obj = getItemFromReportDateRanges(i);
+                    }
+                }
+            }
+        }
+        return obj;
+    }
+
+    private Object getItemFromReportDates(int i)
+    {
         Object obj = null;
-        if (getReportGroups() != null) 
+        List reportDates = getReportDates();
+        if (reportDates != null)
         {
-            obj = getReportGroups().get(i);
+            int size = reportDates.size();
+            if(size > i)
+            {
+                obj = reportDates.get(i);
+            }
         }
-        else if (getReportOptionAttributes() != null) 
+        return obj;
+    }
+    
+    private Object getItemFromReportDateRanges(int i)
+    {
+        Object obj = null;
+        List reportDateRanges = getReportDateRanges();
+        if (reportDateRanges != null)
         {
-            obj = getReportOptionAttributes().get(i);
+            int size = reportDateRanges.size();
+            if(size > i)
+            {
+                obj = reportDateRanges.get(i);
+            }
         }
-        else if (getReportUserAttributes() != null) 
+        return obj;
+    }
+
+    private Object getItemFromReportUserAttributes(int i)
+    {
+        Object obj = null;
+        List reportUserAttributes = getReportUserAttributes();
+        if ( reportUserAttributes != null)
         {
-            obj = getReportUserAttributes().get(i);
+            int size = reportUserAttributes.size();
+            if(size > i)
+            {
+                obj = reportUserAttributes.get(i);
+            }
         }
-        // need to sort out dates !FIXME!
-        else if (getReportDates() != null ||  getReportDateRanges() != null)
+        return obj;
+    }
+
+    /**
+     * get item from reportOptionAttributes if available.
+     * @param i
+     * @return
+     */
+    private Object getItemFromReportOptionAttributes(int i)
+    {
+        Object obj = null;
+        List reportOptionAttributes = getReportOptionAttributes();
+        if ( reportOptionAttributes != null)
         {
-            obj = getReportDates().get(i);
-        }
+            int size = reportOptionAttributes.size();
+            if(size > i)
+            {
+                obj = reportOptionAttributes.get(i);
+            }
+        } 
+        return obj;
+    }
+
+    /**
+     * get item from reportGroups if available.
+     * @param i
+     * @return
+     */
+    private Object getItemFromReportGroups(int i)
+    {
+        Object obj = null;
+        List reportGroups = getReportGroups();
+        if (reportGroups != null) 
+        {
+            int size = reportGroups.size();
+            if (size > i)
+            obj = reportGroups.get(i);
+        }        
         return obj;
     }
 

Modified: trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java?view=diff&rev=10132&p1=trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java&p2=trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java&r1=10131&r2=10132
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java	(original)
+++ trunk/src/java/org/tigris/scarab/util/word/IssueSearch.java	2006-06-02 02:06:38-0700
@@ -446,8 +446,8 @@
     {
     	LinkedMap result = null;
 
-        //List attributes = mitList.getCommonAttributes(false);
-        List attributes = mitList.getAttributes(false,false);
+        List attributes = mitList.getCommonAttributes(false);
+        //List attributes = mitList.getAttributes(false,false);
         Map siaValuesMap = getAttributeValuesMap();
         if (attributes != null) 
         {

Modified: trunk/src/webapp/WEB-INF/templates/screens/reports/XModuleList.vm
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/webapp/WEB-INF/templates/screens/reports/XModuleList.vm?view=diff&rev=10132&p1=trunk/src/webapp/WEB-INF/templates/screens/reports/XModuleList.vm&p2=trunk/src/webapp/WEB-INF/templates/screens/reports/XModuleList.vm&r1=10131&r2=10132
==============================================================================
--- trunk/src/webapp/WEB-INF/templates/screens/reports/XModuleList.vm	(original)
+++ trunk/src/webapp/WEB-INF/templates/screens/reports/XModuleList.vm	2006-06-02 02:06:38-0700
@@ -20,7 +20,7 @@
      value="reports,Info.vm" />
 
 
-<p>$l10n.format("ToQuery", $buttonName)</p>
+<p>$l10n.format("ToQuery", $l10n.Done)</p>
 <h3>$l10n.PreviouslySelectedIssueTypes</h3>
 
 ##
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.