Update of 
/var/cvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/services/sitemanagement
In directory 
james.mmbase.org:/tmp/cvs-serv28103/cmsc/sitemanagement/src/java/com/finalist/cmsc/services/sitemanagement

Modified Files:
        SiteManagementServiceMMBaseImpl.java 
Log Message:
CMSC-121 New stylesheet option, overwriteable


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/services/sitemanagement
See also: http://www.mmbase.org/jira/browse/CMSC-121


Index: SiteManagementServiceMMBaseImpl.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/services/sitemanagement/SiteManagementServiceMMBaseImpl.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- SiteManagementServiceMMBaseImpl.java        11 Sep 2008 10:51:33 -0000      
1.18
+++ SiteManagementServiceMMBaseImpl.java        16 Oct 2008 13:53:12 -0000      
1.19
@@ -184,7 +184,8 @@
          // loop through pages
          // if override only take the sheets of the last page
          for (int count = pagesToRoot.size()-1; count >= 0; count--) {
-//            getStylesheetForPage(pagesToRoot, count, stylesheets);
+            Page page = pagesToRoot.get(count);
+            stylesheets = getStylesheetForPage(page);
 
             if (!stylesheets.isEmpty()) {
                return stylesheets;
@@ -192,59 +193,41 @@
          }
       }
       else {
+         stylesheets = getStylesheetForPage(pagesToRoot.get(0));
+
          // loop through pages
-         if (pagesToRoot.size() >= 2) {
-                               for (int count = 0; count < pagesToRoot.size() 
- 1; count++) {
-                                       getStylesheetForPage(pagesToRoot, 
count, stylesheets, true);
-                               }
-                               Page curPage = 
pagesToRoot.get(pagesToRoot.size() - 1);
-
-                               List<Integer> curStyleSheets = 
curPage.getStylesheet();
-                               if (curStyleSheets.size() > 0) {
-                                       addStyleSheetToList(stylesheets, 
curStyleSheets, true);
-                               } else {
-                                       Page parentPage = 
pagesToRoot.get(pagesToRoot.size() - 2);
-                                       List<Integer> parentStyleSheets = 
parentPage
-                                                       .getStylesheet();
-                                       addStyleSheetToList(stylesheets, 
parentStyleSheets, false);
-                               }
-                       } else if (pagesToRoot.size() == 1) {
-                               List<Integer> wholeStyleSheets = 
pagesToRoot.get(0)
-                                               .getStylesheet();
-                               addStyleSheetToList(stylesheets, 
wholeStyleSheets, true);
+                       for (int count = 1; count < pagesToRoot.size() - 1; 
count++) {
+                          Page page = pagesToRoot.get(count);
+                          List<Stylesheet> pageSheets = 
getStylesheetForPage(page);
+                          if (!pageSheets.isEmpty()) {
+                             removeOverwriteableStylesheets(stylesheets);
+                             stylesheets.addAll(pageSheets);
+                          }
                        }
                }
      
       return stylesheets;
    }
 
-
-       private void addStyleSheetToList(List<Stylesheet> stylesheets,
-                       List<Integer> curStyleSheets, boolean 
needCheckOverwriteable) {
-               for (Integer tmpStyleSheet : curStyleSheets) {
-                       Stylesheet stylesheet = siteModelManager
-                                       .getStylesheet(tmpStyleSheet);
-                       if (needCheckOverwriteable || 
stylesheet.isOverwriteable()) {
-                               stylesheets.add(stylesheet);
+       private void removeOverwriteableStylesheets(List<Stylesheet> 
stylesheets) {
+      for (Iterator<Stylesheet> iterator = stylesheets.iterator(); 
iterator.hasNext();) {
+         Stylesheet stylesheet = iterator.next();
+         if (stylesheet.isOverwriteable()) {
+            iterator.remove();
                        }
                }
        }
 
-
-   protected void getStylesheetForPage(List<Page> pagesToRoot, int count,
-         List<Stylesheet> stylesheets, boolean overrideType) {
-      Page page = pagesToRoot.get(count);
-
+   private List<Stylesheet> getStylesheetForPage(Page page) {
+          List<Stylesheet> stylesheets = new ArrayList<Stylesheet>();
       List<Integer> stylesheetNumbers = page.getStylesheet();
       for (int j = 0; j < stylesheetNumbers.size(); j++) {
          Integer stylesheetNumber = stylesheetNumbers.get(j);
          Stylesheet stylesheet = 
siteModelManager.getStylesheet(stylesheetNumber.intValue());
-         if(stylesheet.isOverwriteable()== overrideType || 
"all".equals(overrideType)){
                 stylesheets.add(stylesheet);
          }
+      return stylesheets;
       }
-   }
-
 
    @Override
    public NavigationItem getNavigationItemFromPath(String path) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to