Update of
/var/cvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/services/sitemanagement
In directory
james.mmbase.org:/tmp/cvs-serv20466/src/java/com/finalist/cmsc/services/sitemanagement
Modified Files:
SiteManagementServiceMMBaseImpl.java
Log Message:
CMSC-121 stylesheet override
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.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- SiteManagementServiceMMBaseImpl.java 28 Apr 2008 12:45:05 -0000
1.17
+++ SiteManagementServiceMMBaseImpl.java 11 Sep 2008 10:51:33 -0000
1.18
@@ -184,7 +184,7 @@
// 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);
+// getStylesheetForPage(pagesToRoot, count, stylesheets);
if (!stylesheets.isEmpty()) {
return stylesheets;
@@ -193,27 +193,57 @@
}
else {
// loop through pages
- for (int count = 0; count < pagesToRoot.size(); count++) {
- getStylesheetForPage(pagesToRoot, count, stylesheets);
+ 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);
}
-
}
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);
+ }
+ }
+ }
+
+
protected void getStylesheetForPage(List<Page> pagesToRoot, int count,
- List<Stylesheet> stylesheets) {
+ List<Stylesheet> stylesheets, boolean overrideType) {
Page page = pagesToRoot.get(count);
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);
}
}
+ }
@Override
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs