User: rt      
Date: 2008-06-16 13:14:35+0000
Modified:
   dba/reportdesign/java/com/sun/star/report/pentaho/output/StyleUtilities.java

Log:
 INTEGRATION: CWS rptchart02 (1.5.4); FILE MERGED
 2008/05/27 08:06:16 oj 1.5.4.3: #i77610# handle keep-with-next and 
may-break-between-rows and keep-together
 2008/04/16 06:23:38 oj 1.5.4.2: RESYNC: (1.5-1.6); FILE MERGED
 2008/03/12 09:42:51 oj 1.5.4.1: impl chart handling and some code refactoring

File Changes:

Directory: /dba/reportdesign/java/com/sun/star/report/pentaho/output/
=====================================================================

File [changed]: StyleUtilities.java
Url: 
http://dba.openoffice.org/source/browse/dba/reportdesign/java/com/sun/star/report/pentaho/output/StyleUtilities.java?r1=1.7&r2=1.8
Delta lines:  +43 -1
--------------------
--- StyleUtilities.java 2008-05-05 14:32:15+0000        1.7
+++ StyleUtilities.java 2008-06-16 13:14:32+0000        1.8
@@ -38,6 +38,7 @@
 import com.sun.star.report.pentaho.model.OfficeStyle;
 import com.sun.star.report.pentaho.model.OfficeStyles;
 import com.sun.star.report.pentaho.model.OfficeStylesCollection;
+import java.util.ArrayList;
 import java.util.Set;
 import org.jfree.report.ReportProcessingException;
 import org.jfree.report.structure.Element;
@@ -448,7 +449,7 @@
 
         // now copy the common style ..
         final OfficeStyles commonStyles = commonCollection.getCommonStyles();
-        if (!commonStyles.containsStyle(styleFamily, styleName) )
+        if (!commonStyles.containsStyle(styleFamily, styleName))
         {
             copyStyleInternal(commonStyle, commonStyles,
                     commonCollection, commonCollection, predefCollection,
@@ -500,6 +501,46 @@
                 styleName, sectionName, propertyNamespace, propertyName, new 
HashSet());
     }
 
+    public static OfficeStyle queryStyleByProperties(final 
OfficeStylesCollection predefCollection,
+            final String styleFamily,
+            final String sectionName,
+            final ArrayList propertyNamespace,
+            final ArrayList propertyName,
+            final ArrayList propertyValues)
+    {
+        if ( propertyNamespace.size() != propertyName.size())
+            return null;
+        final OfficeStyle[] styles = 
predefCollection.getAutomaticStyles().getAllStyles();
+        for (int i = 0; i < styles.length; i++)
+        {
+            final OfficeStyle officeStyle = styles[i];
+            if ( officeStyle.getStyleFamily().equals(styleFamily) )
+            {
+                final Element section = 
officeStyle.findFirstChild(OfficeNamespaces.STYLE_NS, sectionName);
+                if (section != null)
+                {
+                    int j = 0;
+                    for (; j < propertyNamespace.size(); j++)
+                    {
+                        final String ns = (String)propertyNamespace.get(j);
+                        final String prop = (String)propertyName.get(j);
+                        final Object obj = section.getAttribute(ns, prop);
+                        final Object value = propertyValues.get(j);
+                        if ( obj == null && value == null)
+                            continue;
+                        if (!propertyValues.get(j).equals(obj))
+                            break;
+                    }
+                    if ( j == propertyName.size() )
+                    {
+                        return officeStyle;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
     private static String queryStyle(final OfficeStylesCollection 
predefCollection,
             final String styleFamily,
             final String styleName,
@@ -518,6 +559,7 @@
         if (style == null)
         {
             return null; // no such style
+
         }
         final Element section = 
style.findFirstChild(OfficeNamespaces.STYLE_NS, sectionName);
         if (section != null)




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to